10月19日迅矛,deepmind在Nature雜志上發(fā)表了重磅文章《Mastering the Game of Go without Human Knowledge》牵触,介紹了其在強(qiáng)化學(xué)習(xí)領(lǐng)域的新進(jìn)展跋炕。讀過(guò)了朋友圈相關(guān)報(bào)道之后结榄,新算法的效果確實(shí)讓人印象深刻,主要體現(xiàn)在:
- 更強(qiáng)的準(zhǔn)確性舔痕,以100:0擊敗Alphago Lee(就是擊敗李世石的那一版算法)魏滚。
- 不需要人類棋譜镀首,僅保留圍棋的基本規(guī)則,即可在自我博弈中進(jìn)步鼠次。
- 極高的訓(xùn)練效率蘑斧,在4個(gè)TPU(赤裸裸的植入廣告)上訓(xùn)練3天就可以擊敗Alphago Lee(后者在48個(gè)TPU上訓(xùn)練數(shù)月之久)。
大致閱讀了Nature上的文章须眷,對(duì)新算法有了一個(gè)大致的了解竖瘾,下面是論文筆記。因?yàn)椴欢畤寤牛杂懻撍惴ㄏ嚓P(guān)內(nèi)容捕传。
tips:為了區(qū)分版本,以下將擊敗樊麾的版本稱為fan扩劝,擊敗李世石的版本稱為lee庸论,擊敗柯潔的版本稱為master职辅,這篇論文中算法稱為zero。
一聂示、與之前版本的不同
由于沒有找到lee的詳細(xì)資料域携,所以主要與上一篇論文《Mastering the Game of Go with Deep Neural Networks and Tree Search》中提到的alphago fan進(jìn)行比較。
- 沒有采用人類棋譜和也沒有手工設(shè)計(jì)的特征鱼喉,即未利用除了規(guī)則的先驗(yàn)知識(shí)(文末將討論這個(gè)問(wèn)題)秀鞭。
- 將policy network和value network融合為一個(gè)網(wǎng)絡(luò)一起訓(xùn)練。
- zero采用了受深度網(wǎng)絡(luò)指導(dǎo)的啟發(fā)式蒙特卡洛搜索樹扛禽。
二锋边、算法分析
1.啟發(fā)式蒙特卡洛搜索樹
alphago同樣采用蒙特卡洛搜索樹(MCTS)進(jìn)行走子。與之前算法不同的是zero在evaluation采用了價(jià)值網(wǎng)絡(luò)的輸出來(lái)替代rollouts编曼。
fan版本
在執(zhí)行MCTS時(shí)豆巨,不斷執(zhí)行以下步驟的模擬:
-
選擇(select)。在每次模擬時(shí)掐场,從當(dāng)前根結(jié)點(diǎn)開始往下走往扔,總是選擇“最感興趣”的動(dòng)作(action),其評(píng)價(jià)公式為:
其中:
該系數(shù)的作用是鼓勵(lì)探索未走過(guò)的節(jié)點(diǎn)熊户,同時(shí)盡量去走SL網(wǎng)絡(luò)判斷可能性較大的節(jié)點(diǎn)瓤球。
- 擴(kuò)展(expand)。當(dāng)我們走到一個(gè)未拓展的節(jié)點(diǎn)時(shí)敏弃,我們根據(jù)SL策略網(wǎng)絡(luò)的概率輸出隨機(jī)拓展一個(gè)子節(jié)點(diǎn)。
-
評(píng)價(jià)(evaluate)噪馏。對(duì)于新創(chuàng)建的子節(jié)點(diǎn)麦到,需要評(píng)估該節(jié)點(diǎn)所代表的狀態(tài)的價(jià)值。在fan版本的算法中欠肾,采用混合機(jī)制對(duì)狀態(tài)價(jià)值進(jìn)行估計(jì):
其中瓶颠,第一部分是以節(jié)點(diǎn)狀態(tài)為輸入價(jià)值網(wǎng)絡(luò)的輸出,第二部分是從該節(jié)點(diǎn)狀態(tài)開始使用快速走子策略(fast rollout policy)走出的勝負(fù)結(jié)果刺桃,若超過(guò)一定的步數(shù)粹淋,則計(jì)算分?jǐn)?shù)。
-
回溯(backup)瑟慈。
最后桃移,根據(jù)拓展節(jié)點(diǎn)的價(jià)值估計(jì),更新所有經(jīng)過(guò)節(jié)點(diǎn)的動(dòng)作價(jià)值Q(s,a):
(在實(shí)際應(yīng)用中做了修改)
最后葛碧,在多次模擬后借杰,選擇從根結(jié)點(diǎn)狀態(tài)出發(fā),訪問(wèn)最多的action完成落子进泼。在進(jìn)行下一步時(shí)蔗衡,當(dāng)前搜索樹被復(fù)用纤虽,下一個(gè)狀態(tài)成為根結(jié)點(diǎn)。
zero版本
zero也通過(guò)MCTS進(jìn)行落子绞惦,與fan版本的不同主要體現(xiàn)在evaluate步驟上逼纸,具體模擬步驟如下:
- 選擇(select)。見fan版本济蝉。
- 擴(kuò)展(expand)杰刽。基本與fan版本一致堆生,只不過(guò)zero版本使用的是融合網(wǎng)絡(luò)的策略輸出隨機(jī)拓展子節(jié)點(diǎn)专缠。
- 評(píng)價(jià)(evaluate)。與fan版本不同淑仆,zero版本只使用融合網(wǎng)絡(luò)的價(jià)值輸出作為拓展節(jié)點(diǎn)的價(jià)值估計(jì)涝婉。所以zero版本中不需要rollouts,也不需要訓(xùn)練依賴人類棋譜的fast rollout policy蔗怠。
- 回溯(backup)墩弯。在完成價(jià)值估計(jì)后,對(duì)動(dòng)作價(jià)值函數(shù)進(jìn)行更新:
在多次模擬后寞射,選擇從根結(jié)點(diǎn)狀態(tài)出發(fā)渔工,訪問(wèn)最多的action完成落子。
2.策略網(wǎng)絡(luò)與價(jià)值網(wǎng)絡(luò)的結(jié)合
在網(wǎng)絡(luò)結(jié)構(gòu)上桥温,master與zero有著相同的網(wǎng)絡(luò)結(jié)構(gòu)引矩,它們與fan、lee相比主要由兩個(gè)區(qū)別:
- 將價(jià)值網(wǎng)絡(luò)和策略網(wǎng)絡(luò)合并為一個(gè)網(wǎng)絡(luò)侵浸。
- 網(wǎng)絡(luò)結(jié)構(gòu)采用residual network結(jié)構(gòu)旺韭,而不是一般的convolutional結(jié)構(gòu)。
fan版本
fan版本算法機(jī)構(gòu)中有兩種網(wǎng)絡(luò):策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)掏觉。
策略網(wǎng)絡(luò)使用人類棋譜KGS數(shù)據(jù)集訓(xùn)練的SL網(wǎng)絡(luò)進(jìn)行初始化区端,使用自我博弈數(shù)據(jù)進(jìn)行訓(xùn)練。價(jià)值網(wǎng)絡(luò)主要通過(guò)特定策略下的自我博弈數(shù)據(jù)進(jìn)行訓(xùn)練澳腹。
網(wǎng)絡(luò)的輸入都為多通道[19,19]矩陣织盼,每個(gè)通道代表的feature如下:
zero版本
zero版本策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)相結(jié)合,僅使用自我博弈的數(shù)據(jù)進(jìn)行訓(xùn)練酱塔,網(wǎng)絡(luò)采用res結(jié)構(gòu)沥邻。
輸入是shape為[19,19,17]的矩陣,其中8通道矩陣表示現(xiàn)在時(shí)刻及從此時(shí)開始的前7個(gè)時(shí)刻當(dāng)前玩家的棋子位置羊娃,8通道矩陣表示現(xiàn)在時(shí)刻及從此時(shí)開始的前7個(gè)時(shí)刻當(dāng)前對(duì)手的棋子位置谋国,最后一個(gè)常數(shù)通道表示現(xiàn)在走棋的顏色(黑色為1,白色為0)迁沫。
三芦瘾、訓(xùn)練過(guò)程
zero在訓(xùn)練上也與fan有著不同淘衙。在訓(xùn)練過(guò)程中黔衡,zero包含著三個(gè)過(guò)程:
- 神經(jīng)網(wǎng)絡(luò)的優(yōu)化旨椒,就是一個(gè)有監(jiān)督網(wǎng)絡(luò)的訓(xùn)練枯夜。
- 從不同時(shí)間點(diǎn)產(chǎn)生的網(wǎng)絡(luò)中選擇最優(yōu)網(wǎng)絡(luò)(best player)。
- 使用最優(yōu)的網(wǎng)絡(luò)走子產(chǎn)生self-play數(shù)據(jù)用于訓(xùn)練祷愉。
四窗宦、一些記錄
- 論文中提到之前在線上以60連勝的戰(zhàn)績(jī)擊敗人類職業(yè)選手的alphago master與zero有著相同的算法結(jié)構(gòu),不同的是master利用了人類棋譜以及手工設(shè)計(jì)的特征作為輸入二鳄。在與zero的100場(chǎng)對(duì)弈中赴涵,zero以89比11戰(zhàn)勝了master。
- 論文中討論了不通過(guò)MCTS订讼,只通過(guò)策略網(wǎng)絡(luò)進(jìn)行走子(選用最大p值的走子方法)髓窜,相當(dāng)于人類不思考推理,純粹靠直覺進(jìn)行走子的方式欺殿。采用這樣的策略算法性能會(huì)有所下降寄纵,大概下降到能擊敗歐洲冠軍的地步(fan版本的性能)。
五脖苏、問(wèn)題
疑問(wèn):為什么沒有使用人類棋譜反而算法性能提升了程拭?
個(gè)人理解:先說(shuō)結(jié)論,用沒用人類棋譜其實(shí)并沒有太大影響棍潘,不使用人類棋譜最大的作用是讓論文的題目更炫酷恃鞋。首先看一下不同版本下alphago的算法表現(xiàn)。
在這里zero與master采用了相同的算法結(jié)構(gòu)亦歉,區(qū)別主要在于master采用了人類棋譜對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練并采用了部分手工設(shè)計(jì)特征恤浪,zero未使用人類棋譜對(duì)于網(wǎng)路預(yù)訓(xùn)練并只采用黑白子位置作為輸入。從上面的圖中可以看到鳍徽,其實(shí)兩者的性能差距并不大(在圍棋中極小的準(zhǔn)確度提升就會(huì)帶來(lái)壓倒性的勝率優(yōu)勢(shì))。而zero相對(duì)于lee版本的性能提升主要是由于算法機(jī)構(gòu)的優(yōu)化(網(wǎng)絡(luò)融合敢课、res機(jī)構(gòu)替代conv結(jié)構(gòu)等)阶祭。
這里說(shuō)到了人類數(shù)據(jù)對(duì)算法的影響,我認(rèn)為從lee版本開始直秆,人類棋譜對(duì)算法的性能的提升就有限了濒募。但是在fan版本中,人類棋譜還是對(duì)算法性能影響比較大圾结,
疑問(wèn):為什么將策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)融合提升了算法性能瑰剃?
個(gè)人理解:首先來(lái)看看論文中的比較。
論文中提到了將策略網(wǎng)絡(luò)與價(jià)值網(wǎng)絡(luò)融合后筝野,略微降低了策略網(wǎng)絡(luò)的準(zhǔn)確性晌姚,提高了價(jià)值網(wǎng)絡(luò)的準(zhǔn)確性粤剧,最終提升了算法在對(duì)弈時(shí)的表現(xiàn)。帶來(lái)這種提升的主要原因是雙重相關(guān)任務(wù)訓(xùn)練使上層特征得到了多次訓(xùn)練挥唠,即在訓(xùn)練策略網(wǎng)絡(luò)時(shí)上層特征參與了一次訓(xùn)練抵恋,在價(jià)值策略網(wǎng)絡(luò)時(shí)上層特征參與了一次訓(xùn)練,從而得到了“更好”的上層特征的表達(dá)宝磨。
疑問(wèn):增強(qiáng)學(xué)習(xí)在沒有人類知識(shí)的情況下就這么強(qiáng)弧关,人工智能會(huì)不會(huì)毀滅人類呢?
個(gè)人理解:至少目前來(lái)看唤锉,還需要很長(zhǎng)的時(shí)間世囊。圍棋是一個(gè)可觀測(cè)到“完全信息”的游戲,它符合馬爾可夫過(guò)程窿祥,目前的強(qiáng)化學(xué)習(xí)的基礎(chǔ)大都建立在馬爾可夫過(guò)程之上株憾。而現(xiàn)實(shí)生活中的任務(wù)許多不符合馬爾可夫過(guò)程,所以算法并沒有在圍棋中展現(xiàn)的令人驚嘆的性能壁肋。
還有一個(gè)問(wèn)題就是号胚,目前強(qiáng)化學(xué)習(xí)的依賴多次模擬(或者在真實(shí)條件下實(shí)驗(yàn)),但是現(xiàn)實(shí)中的任務(wù)(譬如駕駛)浸遗,沒有辦法完美的模擬也沒有辦法多次實(shí)驗(yàn)(不能讓一輛自動(dòng)駕駛汽車上二環(huán)多撞幾次來(lái)采集數(shù)據(jù))猫胁,所以很難像圍棋這樣構(gòu)建端到端的解決方案。所以跛锌,目前增強(qiáng)學(xué)習(xí)的應(yīng)用場(chǎng)景還極其有限弃秆,監(jiān)督學(xué)習(xí)依然是主流。