5
本文作者: 小芹菜 | 2016-03-15 10:07 |
按:本文作者田淵棟,已獲授權(quán)。
第四局李世石的78手L11挖被大家譽(yù)為“神之一手”,在DarkForest的策略網(wǎng)絡(luò)輸出里排第31位,而J11靠排第10位。因此我覺得可能是AlphaGo沒有算到這一步。如果對方下了一手機(jī)器沒算到的棋,則蒙特卡羅(MCTS)搜索樹會清空,然后重新開始搜索,不應(yīng)該會太快做出結(jié)論。李喆六段告訴我K10這一手是秒下,那有可能是時間管理子系統(tǒng)在搜索樹清空時有程序上的漏洞,因此過早地將搜索結(jié)果返回了。MCTS在一開始搜索的時候,因?yàn)槟M次數(shù)不夠多,每步的勝率方差非常大,所以返回一個不夠好的著法如K10是很正常的(在DarkForest里面這著排在前四)。這個比較容易修正。
另一種可能是,AlphaGo的估值網(wǎng)絡(luò)出了問題。因?yàn)楣乐稻W(wǎng)絡(luò)的權(quán)重是0.5,而不管快速走子從一個局面開始重復(fù)了多少次,它的權(quán)值也是0.5。對于一個局面,估值網(wǎng)絡(luò)只得到一個數(shù),而從這個局面往下走子,走多后會得到很多個數(shù),統(tǒng)計(jì)上應(yīng)該更為重要,但是AlphaGo不是這樣想的,兩邊各自算得勝率后直接對半平均了。所以如果估值網(wǎng)絡(luò)對某個局面得到的結(jié)果不對,則會極大地影響對該局面的勝率估計(jì)。注意這里得到很多個數(shù)的原因是按照文章,葉結(jié)點(diǎn)在積累了一定盤數(shù)后(40)才展開,而不是第一次訪問就展開,以提高DCNN的效率。DarkForest沒有用到估值網(wǎng)絡(luò),在L11的挖之后正確地返回了L12和L10這兩個應(yīng)手,據(jù)李喆六段說,都是正確的應(yīng)手,這間接支持了這個推斷。AlphaGo在87手之后才意識到自己已經(jīng)大大落后,可能也是由于同樣的問題,比如說把右邊的黑大龍看成活的。
那為什么估值網(wǎng)絡(luò)會出問題呢?可能是用于訓(xùn)練估值網(wǎng)絡(luò)的自學(xué)習(xí)(Self-Play)的樣本分布有盲點(diǎn)。為了提高樣本生成速度,AlphaGo的自學(xué)習(xí)樣本是通過用兩個純粹的DCNN互搏來生成的(完全沒有搜索),而DCNN下出來的棋因?yàn)槭羌兡J阶R別,一個大問題是死活不正確,經(jīng)常是在死棋里面下子。如果黑白兩方都犯了死活不分的毛病,然后一方比如說白僥幸勝了,那估值網(wǎng)絡(luò)就會認(rèn)為方才白的死棋局面是好的。這樣估值網(wǎng)絡(luò)就會染上同樣毛病,在中盤復(fù)雜的對殺局面中判斷失誤。若是這種情況就不好處理,AlphaGo下一局可能還會有同樣的問題。這里可以看到,電腦本身也不是靠窮舉來下棋的,圍棋畢竟太復(fù)雜,每一步都要剪枝,離當(dāng)前局面近的仔細(xì)剪(用DCNN),離當(dāng)前局面遠(yuǎn)的快速剪(快速走子),直到終局得到勝負(fù)為止。剪枝的好壞直接關(guān)系到棋力的高低,DCNN只是一個有大局觀的非常好的剪枝手段,它的盲點(diǎn)也會通過敗著反映出來。
關(guān)于DCNN+MCTS打劫。首先因?yàn)镸CTS是全局估計(jì)分?jǐn)?shù)的,劫爭本身和其它局面在程序看來沒有本質(zhì)區(qū)別,都只是一步棋而已。劫的特殊性在DarkForest上表現(xiàn)為碰到有劫可提的情況時,DCNN經(jīng)常會以非常高的概率(0.8以上)返回提劫這一手??赡艿脑蚴牵冱c(diǎn)是作為單獨(dú)的特征輸入的,所以DCNN學(xué)習(xí)到了它和輸出(提劫)的強(qiáng)關(guān)聯(lián)性。這樣在MCTS搜索時會強(qiáng)烈偏向這一手。這在很多情況下是正確的,但有時劫很小可以不予理會,或者碰到兩個或者多個劫需要放棄一個,那“遇劫必提”的偏向性就會給搜索帶來麻煩。有時連環(huán)劫電腦反復(fù)提就是這個原因。AlphaGo可能會有這個問題,或者是反向的問題(比如說提劫概率很?。?,這樣在下棋時大家就會感覺到它在避免開劫,或者在含劫的變化中計(jì)算失誤。
關(guān)于地平線效應(yīng)(Horizon Effect)。國象的AI里面會有這個效應(yīng),比如說只搜索10步,計(jì)算到別人的后被自己的后吃了結(jié)束,然后用簡單的加和法估計(jì)下盤面發(fā)現(xiàn)自己多個后特別爽,覺得這個分支特別好。其實(shí)再往下走一步自己的后也被別人吃了,或者掉入陷阱,這樣就誤算盤面價值。但是圍棋因?yàn)槊看文M都是走到底的,可能前30步是用DCNN,之后就是用快速走子,雖然走子質(zhì)量上有差距,但是大方向上不會錯,所以地平線效應(yīng)在某種程度上是減弱了。而且這次AlphaGo的失誤在20步以內(nèi),應(yīng)該還在DCNN的范圍里面,所以地平線效應(yīng)的可能性比較低。
應(yīng)大家要求,這里放Game3的勝率,李世石毫無機(jī)會。
Game4的還沒空全跑,以下是關(guān)鍵的一段。注意DarkForest只是5d,所以沒有及早看出來黑掛了也是正常的。
編者一起放上作者的DarkForest對AlphaGo和李世石前兩局每步的勝率估計(jì):
首先說明一下每個數(shù)據(jù)點(diǎn)是DF在當(dāng)前局面下給出最優(yōu)應(yīng)手,同時給出的勝率。這個最優(yōu)應(yīng)手和選手的應(yīng)手不一定一樣。如果大家要看DF給的應(yīng)手,可以下載以下兩個文件:
yuandong-tian.com/win_rate1.txt
yuandong-tian.com/win_rate2.txt
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。