為了達(dá)到這個目標(biāo),神經(jīng)網(wǎng)絡(luò)的模型就顯得太慢,還是要用傳統(tǒng)的局部特征匹配(local pattern matching)加線性回歸(logisticregression)的方法,這辦法雖然不新但非常好使,幾乎所有的廣告推薦,競價排名,新聞排序,都是用的它。與更為傳統(tǒng)的基于規(guī)則的方案相比,它在吸納了眾多高手對局之后就具備了用梯度下降法自動調(diào)參的能力,所以性能提高起來會更快更省心。AlphaGo用這個辦法達(dá)到了2微秒的走子速度和24.2%的走子準(zhǔn)確率。24.2%的意思是說它的最好預(yù)測和圍棋高手的下子有0.242的概率是重合的,相比之下,走棋網(wǎng)絡(luò)在GPU上用2毫秒能達(dá)到57%的準(zhǔn)確率。這里,我們就看到了走子速度和精度的權(quán)衡。
和訓(xùn)練深度學(xué)習(xí)模型不同,快速走子用到了局部特征匹配,自然需要一些圍棋的領(lǐng)域知識來選擇局部特征。對此AlphaGo只提供了局部特征的數(shù)目(見Extended Table 4),而沒有說明特征的具體細(xì)節(jié)。我最近也實(shí)驗(yàn)了他們的辦法,達(dá)到了25.1%的準(zhǔn)確率和4-5微秒的走子速度,然而全系統(tǒng)整合下來并沒有復(fù)現(xiàn)他們的水平。我感覺上24.2%并不能完全概括他們快速走子的棋力,因?yàn)橹灰咤e關(guān)鍵的一步,局面判斷就完全錯誤了;而圖2(b)更能體現(xiàn)他們快速走子對盤面形勢估計(jì)的精確度,要能達(dá)到他們圖2(b)這樣的水準(zhǔn),比簡單地匹配24.2%要做更多的工作,而他們并未在文章中強(qiáng)調(diào)這一點(diǎn)。
在AlphaGo有了快速走子之后,不需要走棋網(wǎng)絡(luò)和估值網(wǎng)絡(luò),不借助任何深度學(xué)習(xí)和GPU的幫助,不使用增強(qiáng)學(xué)習(xí),在單機(jī)上就已經(jīng)達(dá)到了3d的水平(見Extended Table 7倒數(shù)第二行),這是相當(dāng)厲害的了。任何使用傳統(tǒng)方法在單機(jī)上達(dá)到這個水平的圍棋程序,都需要花費(fèi)數(shù)年的時間。在AlphaGo之前,Aja Huang曾經(jīng)自己寫過非常不錯的圍棋程序,在這方面相信是有很多的積累的。
3. 估值網(wǎng)絡(luò)
AlphaGo的估值網(wǎng)絡(luò)可以說是錦上添花的部分,從Fig 2(b)和ExtendedTable 7來看,沒有它AlphaGo也不會變得太弱,至少還是會在7d-8d的水平。少了估值網(wǎng)絡(luò),等級分少了480分,但是少了走棋網(wǎng)絡(luò),等級分就會少掉800至1000分。特別有意思的是,如果只用估值網(wǎng)絡(luò)來評估局面(2177),那其效果還不及只用快速走子(2416),只有將兩個合起來才有更大的提高。我的猜測是,估值網(wǎng)絡(luò)和快速走子對盤面估計(jì)是互補(bǔ)的,在棋局一開始時,大家下得比較和氣,估值網(wǎng)絡(luò)會比較重要;但在有復(fù)雜的死活或是對殺時,通過快速走子來估計(jì)盤面就變得更重要了。考慮到估值網(wǎng)絡(luò)是整個系統(tǒng)中最難訓(xùn)練的部分(需要三千萬局自我對局),我猜測它是最晚做出來并且最有可能能進(jìn)一步提高的。
關(guān)于估值網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)的生成,值得注意的是文章中的附錄小字部分。與走棋網(wǎng)絡(luò)不同,每一盤棋只取一個樣本來訓(xùn)練以避免過擬合,不然對同一對局而言輸入稍有不同而輸出都相同,對訓(xùn)練是非常不利的。這就是為什么需要三千萬局,而非三千萬個盤面的原因。對于每局自我對局,取樣本是很有講究的,先用SL network保證走棋的多樣性,然后隨機(jī)走子,取盤面,然后用更精確的RLnetwork走到底以得到最正確的勝負(fù)估計(jì)。當(dāng)然這樣做的效果比用單一網(wǎng)絡(luò)相比好多少,我不好說。
一個讓我吃驚的地方是,他們完全沒有做任何局部死活/對殺分析,純粹是用暴力訓(xùn)練法訓(xùn)練出一個相當(dāng)不錯的估值網(wǎng)絡(luò)。這在一定程度上說明深度卷積網(wǎng)絡(luò)(DCNN)有自動將問題分解成子問題,并分別解決的能力。
另外,我猜測他們在取訓(xùn)練樣本時,判定最終勝負(fù)用的是中國規(guī)則。所以說三月和李世石對局的時候也要求用中國規(guī)則,不然如果換成別的規(guī)則,就需要重新訓(xùn)練估值網(wǎng)絡(luò)(雖然我估計(jì)結(jié)果差距不會太大)。至于為什么一開始就用的中國規(guī)則,我的猜測是編程非常方便(我在寫DarkForest的時候也是這樣覺得的)。