AlphaGo的神奇全靠它 詳解人工神經(jīng)網(wǎng)絡(luò)!
三生路
Alphago在不被看好的情況下,以4比1擊敗了圍棋世界冠軍李世石,令其名震天下。隨著AlphaGo知名度的不斷提高,人們不禁好奇,究竟是什么使得AlphaGo得以戰(zhàn)勝人類(lèi)大腦?AlphaGo的核心依托——人工神經(jīng)網(wǎng)絡(luò)。
什么是神經(jīng)網(wǎng)絡(luò)?
人工神經(jīng)網(wǎng)絡(luò)是一種模仿生物神經(jīng)網(wǎng)絡(luò)(動(dòng)物的中樞神經(jīng)系統(tǒng),特別是大腦)的結(jié)構(gòu)和功能的數(shù)學(xué)模型或計(jì)算模型。神經(jīng)網(wǎng)絡(luò)由大量的人工神經(jīng)元聯(lián)結(jié)進(jìn)行計(jì)算。大多數(shù)情況下人工神經(jīng)網(wǎng)絡(luò)能在外界信息的基礎(chǔ)上改變內(nèi)部結(jié)構(gòu),是一種自適應(yīng)系統(tǒng)。現(xiàn)代神經(jīng)網(wǎng)絡(luò)是一種非線(xiàn)性統(tǒng)計(jì)性數(shù)據(jù)建模工具,常用來(lái)對(duì)輸入和輸出間復(fù)雜的關(guān)系進(jìn)行建模,或用來(lái)探索數(shù)據(jù)的模式。
神經(jīng)網(wǎng)絡(luò)是一種運(yùn)算模型,由大量的節(jié)點(diǎn)(或稱(chēng)“神經(jīng)元”,或“單元”)和之間相互聯(lián)接構(gòu)成。每個(gè)節(jié)點(diǎn)代表一種特定的輸出函數(shù),稱(chēng)為激勵(lì)函數(shù)。每?jī)蓚€(gè)節(jié)點(diǎn)間的連接都代表一個(gè)對(duì)于通過(guò)該連接信號(hào)的加權(quán)值,稱(chēng)之為權(quán)重,這相當(dāng)于人工神經(jīng)網(wǎng)絡(luò)的記憶。網(wǎng)絡(luò)的輸出則依網(wǎng)絡(luò)的連接方式,權(quán)重值和激勵(lì)函數(shù)的不同而不同。而網(wǎng)絡(luò)自身通常都是對(duì)自然界某種算法或者函數(shù)的逼近,也可能是對(duì)一種邏輯策略的表達(dá)。
例如,用于手寫(xiě)識(shí)別的一個(gè)神經(jīng)網(wǎng)絡(luò)是被可由一個(gè)輸入圖像的像素被激活的一組輸入神經(jīng)元所定義的。在通過(guò)函數(shù)(由網(wǎng)絡(luò)的設(shè)計(jì)者確定)進(jìn)行加權(quán)和變換之后,這些神經(jīng)元被激活然后被傳遞到其他神經(jīng)元。重復(fù)這一過(guò)程,直到最后一個(gè)輸出神經(jīng)元被激活。這樣決定了被讀取的字。
它的構(gòu)筑理念是受到人或其他動(dòng)物神經(jīng)網(wǎng)絡(luò)功能的運(yùn)作啟發(fā)而產(chǎn)生的。人工神經(jīng)網(wǎng)絡(luò)通常是通過(guò)一個(gè)基于數(shù)學(xué)統(tǒng)計(jì)學(xué)類(lèi)型的學(xué)習(xí)方法得以?xún)?yōu)化,所以人工神經(jīng)網(wǎng)絡(luò)也是數(shù)學(xué)統(tǒng)計(jì)學(xué)方法的一種實(shí)際應(yīng)用,通過(guò)統(tǒng)計(jì)學(xué)的標(biāo)準(zhǔn)數(shù)學(xué)方法我們能夠得到大量的可以用函數(shù)來(lái)表達(dá)的局部結(jié)構(gòu)空間,另一方面在人工智能學(xué)的人工感知領(lǐng)域,我們通過(guò)數(shù)學(xué)統(tǒng)計(jì)學(xué)的應(yīng)用可以來(lái)做人工感知方面的決定問(wèn)題(也就是說(shuō)通過(guò)統(tǒng)計(jì)學(xué)的方法,人工神經(jīng)網(wǎng)絡(luò)能夠類(lèi)似人一樣具有簡(jiǎn)單的決定能力和簡(jiǎn)單的判斷能力),這種方法比起正式的邏輯學(xué)推理演算更具有優(yōu)勢(shì)。
人工神經(jīng)網(wǎng)絡(luò)是一個(gè)能夠?qū)W習(xí),能夠總結(jié)歸納的系統(tǒng),也就是說(shuō)它能夠通過(guò)已知數(shù)據(jù)的實(shí)驗(yàn)運(yùn)用來(lái)學(xué)習(xí)和歸納總結(jié)。人工神經(jīng)網(wǎng)絡(luò)通過(guò)對(duì)局部情況的對(duì)照比較(而這些比較是基于不同情況下的自動(dòng)學(xué)習(xí)和要實(shí)際解決問(wèn)題的復(fù)雜性所決定的),它能夠推理產(chǎn)生一個(gè)可以自動(dòng)識(shí)別的系統(tǒng)。與之不同的基于符號(hào)系統(tǒng)下的學(xué)習(xí)方法,它們也具有推理功能,只是它們是建立在邏輯算法的基礎(chǔ)上,也就是說(shuō)它們之所以能夠推理,基礎(chǔ)是需要有一個(gè)推理算法則的集合。
2AlphaGo的原理回頂部
AlphaGo的原理
首先,AlphaGo同優(yōu)秀的選手進(jìn)行了150000場(chǎng)比賽,通過(guò)人工神經(jīng)網(wǎng)絡(luò)找到這些比賽的模式。然后通過(guò)總結(jié),它會(huì)預(yù)測(cè)選手在任何位置高概率進(jìn)行的一切可能。AlphaGo的設(shè)計(jì)師通過(guò)讓其反復(fù)的和早期版本的自己對(duì)戰(zhàn)來(lái)提高神經(jīng)網(wǎng)絡(luò),使其逐步提高獲勝的機(jī)會(huì)。
從廣義上講,神經(jīng)網(wǎng)絡(luò)是一個(gè)非常復(fù)雜的數(shù)學(xué)模型,通過(guò)對(duì)其高達(dá)數(shù)百萬(wàn)參數(shù)的調(diào)整來(lái)改變的它的行為。神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的意思是,電腦一直持續(xù)對(duì)其參數(shù)進(jìn)行微小的調(diào)整,來(lái)嘗試使其不斷進(jìn)行微小的改進(jìn)。在學(xué)習(xí)的第一階段,神經(jīng)網(wǎng)絡(luò)提高模仿選手下棋的概率。在第二階段,它增加自我發(fā)揮,贏得比賽的概率。反復(fù)對(duì)極其復(fù)雜的功能進(jìn)行微小的調(diào)整,聽(tīng)起來(lái)十分瘋狂,但是如果有足夠長(zhǎng)的時(shí)間,足夠快的計(jì)算能力,非常好的網(wǎng)絡(luò)實(shí)施起來(lái)并不苦難。并且這些調(diào)整都是自動(dòng)進(jìn)行的。
經(jīng)過(guò)這兩個(gè)階段的訓(xùn)練,神經(jīng)網(wǎng)絡(luò)就可以同圍棋業(yè)余愛(ài)好者下一盤(pán)不錯(cuò)的棋了。但對(duì)于職業(yè)來(lái)講,它還有很長(zhǎng)的路要走。在某種意義上,它并不思考每一手之后的幾步棋,而是通過(guò)對(duì)未來(lái)結(jié)果的推算來(lái)決定下在哪里。為了達(dá)到職業(yè)級(jí)別,AlphaGp需要一種新的估算方法。
為了克服這一障礙,研究人員采取的辦法是讓它反復(fù)的和自己進(jìn)行對(duì)戰(zhàn),以此來(lái)使其不斷其對(duì)于勝利的估算能力。盡可能的提高每一步的獲勝概率。(在實(shí)踐中,AlphaGo對(duì)這個(gè)想法進(jìn)行了稍微復(fù)雜的調(diào)整。)然后,AlphaGo再結(jié)合多線(xiàn)程來(lái)使用這一方法進(jìn)行下棋。
我們可以看到,AlphaGo的評(píng)估系統(tǒng)并沒(méi)有基于太多的圍棋知識(shí),通過(guò)分析現(xiàn)有的無(wú)數(shù)場(chǎng)比賽的棋譜,以及無(wú)數(shù)次的自我對(duì)戰(zhàn)練習(xí),AlphaGo的神經(jīng)網(wǎng)絡(luò)進(jìn)行了數(shù)以十億計(jì)的微小調(diào)整,即便每次只是一個(gè)很小的增量改進(jìn)。這些調(diào)整幫助AlphaGp建立了一個(gè)估值系統(tǒng),這和那些出色圍棋選手的直覺(jué)相似,對(duì)于棋盤(pán)上的每一步棋都了如指掌。
此外AlphaGo也使用搜索和優(yōu)化的思想,再加上神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)功能,這兩者有助于找到棋盤(pán)上更好的位置。這也是目前AlphaGo能夠高水平發(fā)揮的原因。
3神經(jīng)網(wǎng)絡(luò)的延伸和限制回頂部
神經(jīng)網(wǎng)絡(luò)的延伸和限制
神經(jīng)網(wǎng)絡(luò)的這種能力也可以被用在其他方面,比如讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)一種藝術(shù)風(fēng)格,然后再將這種風(fēng)格應(yīng)用到其他圖像上。這種想法很簡(jiǎn)單:首先讓神經(jīng)網(wǎng)絡(luò)接觸到大量的圖像,然后來(lái)確認(rèn)這些圖像的風(fēng)格,接著將新的圖像帶入這種風(fēng)格。
這雖然不是偉大的藝術(shù),但它仍然是一個(gè)顯著的利用神經(jīng)網(wǎng)絡(luò)來(lái)捕捉直覺(jué)并且應(yīng)用在其他地方的例子。
在過(guò)去的幾年中,神經(jīng)網(wǎng)絡(luò)在許多領(lǐng)域被用來(lái)捕捉直覺(jué)和模式識(shí)別。許多項(xiàng)目使用神經(jīng)這些網(wǎng)絡(luò),涉及的任務(wù)如識(shí)別藝術(shù)風(fēng)格或好的視頻游戲的發(fā)展戰(zhàn)略。但也有非常不同的網(wǎng)絡(luò)模擬的直覺(jué)驚人的例子,比如語(yǔ)音和自然語(yǔ)言。
由于這種多樣性,我看到AlphaGo本身不是一個(gè)革命性的突破,而是作為一個(gè)極其重要的發(fā)展前沿:建立系統(tǒng),可以捕捉的直覺(jué)和學(xué)會(huì)識(shí)別模式的能力。此前計(jì)算機(jī)科學(xué)家們已經(jīng)做了幾十年,沒(méi)有取得長(zhǎng)足的進(jìn)展。但現(xiàn)在,神經(jīng)網(wǎng)絡(luò)的成功已經(jīng)大大擴(kuò)大,我們可以利用電腦攻擊范圍內(nèi)的潛在問(wèn)題。
事實(shí)上,目前現(xiàn)有的神經(jīng)網(wǎng)絡(luò)的理解能力是非常差的。神經(jīng)網(wǎng)絡(luò)很容易被愚弄。用神經(jīng)網(wǎng)絡(luò)識(shí)別圖像是一個(gè)不錯(cuò)的手段。但是實(shí)驗(yàn)證明,通過(guò)對(duì)圖像進(jìn)行細(xì)微的改動(dòng),就可以愚弄圖像。例如,下面的圖像左邊的圖是原始圖,研究人員對(duì)中間的圖像進(jìn)行了微小的調(diào)整后,神經(jīng)網(wǎng)絡(luò)就無(wú)法區(qū)分了,就將原圖顯示了出來(lái)。
另一個(gè)限制是,現(xiàn)有的系統(tǒng)往往需要許多模型來(lái)學(xué)習(xí)。例如,AlphaGo從150000場(chǎng)對(duì)戰(zhàn)來(lái)學(xué)習(xí)。這是一個(gè)很龐大額度數(shù)字!很多情況下,顯然無(wú)法提供如此龐大的模型案例。