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