Google DeepMind AlphaGO分析(2018-05-18)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Google DeepMind AlphaGO分析

AlphaGO是第一個(gè)擊敗人類職業(yè)圍棋選手、第一個(gè)戰(zhàn)勝圍棋世界冠軍的人工智能程序允蚣,由谷歌(Google)旗下DeepMind公司戴密斯·哈薩比斯領(lǐng)銜的團(tuán)隊(duì)開發(fā)于颖。其主要工作原理是深度學(xué)習(xí)。以下是對(duì)其實(shí)現(xiàn)過程及算法的簡(jiǎn)析嚷兔。

圍棋棋盤是19x19路森渐,所以一共是361個(gè)交叉點(diǎn),每個(gè)交叉點(diǎn)有三種狀態(tài)冒晰,可以用1表示黑子同衣,-1表示白字,0表示無子壶运,考慮到每個(gè)位置還可能有落子的時(shí)間耐齐、這個(gè)位置的氣等其他信息,可以用一個(gè)361 * n維的向量來表示一個(gè)棋盤的狀態(tài)蒋情。將一個(gè)棋盤狀態(tài)向量記為s埠况。

當(dāng)狀態(tài)s時(shí),在不考慮某位置無法落子的情況下棵癣,可供下一步落子的空間也是361個(gè)辕翰,因此將下一步的落子的行動(dòng)也用361維的向量來表示,記為a狈谊。

至此喜命,可將設(shè)計(jì)圍棋人工智能的程序轉(zhuǎn)換成為在任意給定一個(gè)s狀態(tài)下,尋找最好的應(yīng)對(duì)策略a河劝,使程序按照該策略可獲得棋盤上最大的地盤的程序壁榕。

一、深度卷積神經(jīng)網(wǎng)絡(luò)


深度卷積神經(jīng)網(wǎng)絡(luò)早在98年就攻克了手寫數(shù)字識(shí)別丧裁,近年在人臉識(shí)別、圖像分類含衔、天氣預(yù)報(bào)等領(lǐng)域亦有顯著突破煎娇,接連達(dá)到或超過人類的水平二庵。2015年,AlphaGO主要設(shè)計(jì)師黃士杰在ICLR的論文發(fā)表利用“深度神經(jīng)網(wǎng)絡(luò)”從圍棋對(duì)戰(zhàn)平臺(tái)KGS獲取人類選手的圍棋對(duì)弈的棋局進(jìn)行學(xué)習(xí)缓呛,實(shí)現(xiàn)人機(jī)交戰(zhàn)的論文催享。

在這些棋局中,每一個(gè)狀態(tài)s哟绊,都會(huì)有一個(gè)人類做出的落子a(訓(xùn)練樣本)因妙。將s看做一個(gè)19x19的二維圖像(實(shí)際為19x19 x n,其中n表示其他feature)票髓,輸入一個(gè)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類攀涵,分類的目標(biāo)是落子向量a’,不斷訓(xùn)練網(wǎng)絡(luò)洽沟,盡可能讓計(jì)算機(jī)得到的a’接近人類高手的落子結(jié)果a以故,既可得到了一個(gè)初步模擬人類棋手下圍棋的神經(jīng)網(wǎng)絡(luò)。

設(shè)置一可以模擬人類棋手的策略函數(shù)P_human裆操,對(duì)于給定的某個(gè)棋局狀態(tài)s怒详,計(jì)算出人類選手可能在棋盤上落子的概率分布a = P_human(s),如下圖:


紅圈既P_human認(rèn)定的最好的落子方案踪区。每一步都選擇概率最高的落子昆烁,對(duì)方對(duì)子后再重新計(jì)算一遍,如此往復(fù)就可以得到一個(gè)棋風(fēng)類似人類的圍棋程序缎岗。經(jīng)檢測(cè)静尼,P_human方案達(dá)到的圍棋水平在人類選手業(yè)余6段左右,但未能超過彼時(shí)最強(qiáng)的電腦程序CrazyStone[1,5](利用MCTS實(shí)現(xiàn))密强。

二茅郎、蒙特卡洛搜索樹MCTS


蒙特卡洛搜索樹(Monte-Carlo Tree Search)由黃士杰的老師Remi Coulum于2006年提出,是圍棋AI史上的重大突破或渤。

面對(duì)一個(gè)空白棋盤S0系冗,假設(shè)所有落子方法分值都相等,設(shè)為1薪鹦。從361種落子方法中隨機(jī)選擇一個(gè)走法a0掌敬,落子之后,棋盤狀態(tài)變成S1池磁。假設(shè)對(duì)手進(jìn)行相同操作奔害,隨機(jī)落子,棋盤狀態(tài)變成S2地熄。至Sn時(shí)华临,分出勝負(fù)r,贏r記為1端考,輸則為0雅潭。

假設(shè)這第一次r=1揭厚。將上一次的落子方法(S0,a0)記錄下來,分值進(jìn)行以下修改:

新分?jǐn)?shù)=初始分+ r

此時(shí)r=1扶供,新分?jǐn)?shù)=2筛圆。將隨機(jī)出的局面所對(duì)應(yīng)落子方法(Si,ai)的分?jǐn)?shù)設(shè)為2。既除(S0, a0)的分值是2外椿浓,其他落子方法的分?jǐn)?shù)仍為1太援。再次選擇a0的概率比其他方法略高。

設(shè)置對(duì)手也用同樣的方法更新其新分?jǐn)?shù)扳碍,假設(shè)選擇一個(gè)a1作為應(yīng)對(duì)提岔,繼續(xù)第一次的操作。假設(shè)此次結(jié)果仍為贏左腔,繼續(xù)調(diào)整模擬路徑上相應(yīng)的分?jǐn)?shù)唧垦,將其均+1。隨著模擬棋局?jǐn)?shù)量增加液样,優(yōu)秀的落子方案分?jǐn)?shù)會(huì)越來越高振亮,而這些落子方案越是有前途,就會(huì)被更多的選中進(jìn)行推演鞭莽,既可得到最優(yōu)秀的落子方案坊秸。

蒙特卡洛搜索樹存在的兩個(gè)優(yōu)點(diǎn):

1)沒有任何人工的feature,完全依靠規(guī)則本身澎怒,通過不斷想象自對(duì)弈來提高能力褒搔。

2)MCTS可以連續(xù)運(yùn)行,在對(duì)手思考對(duì)策的同時(shí)自己也可以思考對(duì)策喷面。在下完第一步后星瘾,不必要停下,可以繼續(xù)進(jìn)行模擬對(duì)弈惧辈,直到對(duì)手落子琳状,隨后從對(duì)手落子之后的狀態(tài)開始計(jì)算。因?yàn)閷?duì)手的落子可能出現(xiàn)在之前的模擬對(duì)弈中盒齿,所以之前的模擬對(duì)弈可以保留念逞。

蒙特卡洛搜索樹存在的缺點(diǎn):

初始策略太簡(jiǎn)單,需要更高效地隨機(jī)落子边翁。

三翎承、深度卷積神經(jīng)網(wǎng)絡(luò)蒙特卡洛搜索樹結(jié)合


改進(jìn)MCTS,先根據(jù)P_human的計(jì)算結(jié)果得到a可能的概率分布符匾,以此概率挑選下一步的動(dòng)作叨咖。新分?jǐn)?shù)按照如下方式更新:

新分?jǐn)?shù)=調(diào)整后的初始分+ 通過模擬得到的贏棋概率

如某一步被隨機(jī)到很多次,就應(yīng)該主要依據(jù)模擬得到的概率而非P_human,因此調(diào)整P_human的初始分算法:

調(diào)整后的初始分= P_human/(被隨機(jī)到的次數(shù)+ 1)

調(diào)整后可用P_human快速定位較好的落子方案甸各,并給其他位置一定的概率仰剿。

當(dāng)前問題為P_human()計(jì)算過慢。一次P_human()計(jì)算需要3ms痴晦,相對(duì)于隨機(jī)落子的不到1us,速度慢了3000倍琳彩。如果不能快速模擬對(duì)局誊酌,棋力就不能提高。

訓(xùn)練簡(jiǎn)化版的P_human_fast()露乏,把神經(jīng)網(wǎng)絡(luò)層數(shù)碧浊、輸入特征都減少,耗時(shí)下降到了2us瘟仿,基本滿足了要求箱锐。先以P_human()開局,落子越20步后劳较,使用P_human_fast()快速走到最后驹止,兼顧了準(zhǔn)確度和效率。

圍棋軟件所使用的神經(jīng)網(wǎng)絡(luò)和蒙特卡洛方法都可以隨著訓(xùn)練集的增長(zhǎng)和計(jì)算力的加強(qiáng)而同步增強(qiáng)观蜗,可以實(shí)現(xiàn)棋力的穩(wěn)步提升臊恋。

四、左右互搏墓捻,自我進(jìn)化

同年2月抖仅,由Deepmind團(tuán)隊(duì)在頂級(jí)學(xué)術(shù)期刊nature上發(fā)表的《用神經(jīng)網(wǎng)絡(luò)打游戲》一文中提出,為進(jìn)一步提高M(jìn)CTS的棋力指明了前進(jìn)的新方向砖第。

Deepmind團(tuán)隊(duì)通過“強(qiáng)化學(xué)習(xí)”方法訓(xùn)練的程序在類似紅白機(jī)的游戲機(jī)上打通了200多個(gè)游戲撤卢,大多數(shù)得分超過人類玩家。


“強(qiáng)化學(xué)習(xí)”是一類機(jī)器學(xué)習(xí)方法梧兼,Agent通過和環(huán)境s的交互放吩,選擇下一步的動(dòng)作a,這個(gè)動(dòng)作會(huì)影響環(huán)境s袱院,給Agent一個(gè)reward屎慢,Agent然后繼續(xù)和環(huán)境交互。游戲結(jié)束的時(shí)候忽洛,Agent得到一個(gè)最后總分r腻惠。將環(huán)境狀態(tài)s、動(dòng)作a匹配起來得到一系列欲虚,設(shè)定目標(biāo)為最后的總得分r集灌,可以訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)擬合在狀態(tài)s下,做動(dòng)作a的總得分。下一次進(jìn)行游戲時(shí)欣喧,就可以根據(jù)當(dāng)前狀態(tài)s腌零,去選擇最后總得分最大的動(dòng)作a。通過不斷進(jìn)行游戲唆阿,對(duì)下總得分的估計(jì)會(huì)越來越準(zhǔn)確益涧,游戲得分會(huì)越來越好。

以打磚塊游戲?yàn)槔北睿瑥?qiáng)化學(xué)習(xí)的程序在600盤以后闲询,學(xué)到球在快要把墻打穿的時(shí)候評(píng)價(jià)函數(shù)v的分值會(huì)急劇上升,既球打到墻的后面去浅辙,球會(huì)自動(dòng)反彈得分扭弧。


在圍棋中引入一個(gè)評(píng)價(jià)函數(shù)v(s),在P_human()模擬開局20步后记舆,不需要搜索到底鸽捻,通過v(s)就可以直接判斷是否能贏,得到最后的結(jié)果r泽腮,進(jìn)而提高M(jìn)CTS的學(xué)習(xí)速度御蒲。

首先利用P_human和P_human對(duì)弈獲取大量棋譜(如進(jìn)行一萬(wàn)局,就得到了一萬(wàn)個(gè)新棋譜诊赊。)删咱。將棋譜加入到訓(xùn)練集中,訓(xùn)練出P_human_1(此時(shí)訓(xùn)練方法較之前稍有不同豪筝,P_human盡可能的模仿人類棋手下棋痰滋,而不區(qū)分每一步棋的好壞。P_human和P_human對(duì)弈之后续崖,記錄下狀態(tài)s啊研、下一步落子位置a慎冤、以及最終勝負(fù)情況z蚕钦,得到一個(gè)訓(xùn)練數(shù)據(jù)(s,a,z)温艇。如果z=1, 表示我方贏棋,則盡可能模仿此時(shí)自我對(duì)弈中的下棋位置像吻;反之則盡可能避免選擇自我對(duì)弈中的下棋位置峻黍。)。然后再使P_human_1和P_human_1對(duì)局拨匆,得到大量的新棋譜姆涩,以訓(xùn)練出P_human_2。如此往復(fù)惭每,可以得到P_human_n骨饿。P_human_n得到了最多的訓(xùn)練,棋力理應(yīng)比原來更強(qiáng),將該策略記作P_human_plus宏赘。這時(shí)绒北,P_human_plus和P_human對(duì)局,在不用任何搜索的情況下勝率可達(dá)80%察署,不加任何搜索策略的P_human_plus和開源的MCTS相比也有85%的勝率闷游。


將P_human_plus代入MCTS中,用P_human_plus開局贴汪,然后用P_human_fast繼續(xù)接下來的操作储藐。因P_human_plus走棋的路數(shù)太集中,而MCTS需要發(fā)散出更多的選擇嘶是,導(dǎo)致結(jié)果棋力反而不如用P_human。

進(jìn)一步改進(jìn)蛛碌,開局仍先用P_human走L步聂喇,以有利于生成更多局面。為了進(jìn)一步擴(kuò)大搜索空間蔚携,在L+1步的時(shí)候希太,隨機(jī)落子,記下當(dāng)前狀態(tài)SL+1酝蜒,然后用P_human_plus對(duì)弈誊辉,直到結(jié)束獲得結(jié)果r。經(jīng)不斷訓(xùn)練亡脑,由于L也是隨機(jī)數(shù)堕澄,可得開局、中盤霉咨、官子不同階段的局面s及其對(duì)應(yīng)的結(jié)果r蛙紫。利用這些訓(xùn)練樣本,使用神經(jīng)網(wǎng)絡(luò)將最后一層的目標(biāo)改成回歸而非分類途戒,得到v( )函數(shù)坑傅。v()可給出下一步落子在棋盤上任意位置后,如雙方均用P_human_plus來落子喷斋,我方贏棋的概率唁毒。


五、AlphaGO


在MCTS框架之上融合局面評(píng)估函數(shù)v()星爪。用P_human作為初始分開局浆西,每局選擇分?jǐn)?shù)最高的方案落子,下到第L步之后顽腾,改用P_human_fast將剩余棋局走完室谚,同時(shí)調(diào)用v(SL),評(píng)估局面的獲勝概率。按照如下規(guī)則更新樹的分?jǐn)?shù):

新分?jǐn)?shù)=調(diào)整后的初始分+ 0.5 * 通過模擬得到的贏棋概率 + 0.5 * 局面評(píng)估分

前兩項(xiàng)與原來相同秒赤,如待更新的節(jié)點(diǎn)即為葉子節(jié)點(diǎn)猪瞬,則局面評(píng)估分即是v(SL)。如為待更新的節(jié)點(diǎn)是上級(jí)節(jié)點(diǎn)入篮,局面評(píng)估分是該節(jié)點(diǎn)所有葉子節(jié)點(diǎn)v()的平均值陈瘦。

假設(shè)v()表示大局觀,“P_human_fast模擬對(duì)局”表示快速驗(yàn)算潮售,則方法為大局觀和快速模擬驗(yàn)算并重痊项。至此,AlphaGO初步實(shí)現(xiàn)酥诽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鞍泉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肮帐,更是在濱河造成了極大的恐慌咖驮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件训枢,死亡現(xiàn)場(chǎng)離奇詭異托修,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)恒界,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門睦刃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人十酣,你說我怎么就攤上這事涩拙。” “怎么了耸采?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵吃环,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我洋幻,道長(zhǎng)郁轻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任文留,我火速辦了婚禮好唯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘燥翅。我一直安慰自己骑篙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布森书。 她就那樣靜靜地躺著靶端,像睡著了一般谎势。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杨名,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天脏榆,我揣著相機(jī)與錄音,去河邊找鬼台谍。 笑死须喂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趁蕊。 我是一名探鬼主播坞生,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼掷伙!你這毒婦竟也來了是己?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤任柜,失蹤者是張志新(化名)和其女友劉穎卒废,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乘盼,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年俄烁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绸栅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡页屠,死狀恐怖粹胯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辰企,我是刑警寧澤风纠,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站牢贸,受9級(jí)特大地震影響竹观,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潜索,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一臭增、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竹习,春花似錦誊抛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瞎领。三九已至,卻和暖如春随夸,著一層夾襖步出監(jiān)牢的瞬間九默,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工逃魄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荤西,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓伍俘,卻偏偏與公主長(zhǎng)得像邪锌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子癌瘾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 這篇文章以比較通俗的語(yǔ)言簡(jiǎn)單介紹了AlphaGo的工作原理觅丰,可以先看看了解大概,會(huì)發(fā)現(xiàn)AlphaGo也沒有那么神秘...
    Founting閱讀 13,076評(píng)論 0 7
  • 來源:TalkingData furion推薦 參考:Nature妨退;DeepMind妇萄;新智元 【作者】葉杰生 De...
    銳眼看世界閱讀 1,505評(píng)論 0 0
  • 本文系《文工團(tuán)》約稿冠句,禁止一切形式的未授權(quán)轉(zhuǎn)載,謝謝合作幸乒。這篇是約稿的第二版懦底,第一版可以點(diǎn)這里。 圍棋罕扎,是一項(xiàng)中國(guó)...
    LostAbaddon閱讀 2,571評(píng)論 7 10
  • 本文是學(xué)人工神經(jīng)網(wǎng)絡(luò)后試圖理解人工智能領(lǐng)域最熱門的AlphaGo對(duì)弈應(yīng)用聚唐。綜合濃縮了眾多博主的觀點(diǎn)。 由于狀態(tài)空間...
    輕舟閱讀 1,468評(píng)論 0 2
  • 你沒有用微信了腔召,也沒有用微博杆查。我猜你一定過得很好吧,因?yàn)橄胝f話的人就在身邊臀蛛。 一亲桦、 小M是個(gè)挺熱愛朋友圈的人,兩天...
    阿妞閱讀 414評(píng)論 0 0