0
本文作者: 彭博 | 2017-02-17 17:41 |
雷鋒網(wǎng)注:本文作者彭博,Blink·稟臨科技聯(lián)合創(chuàng)始人。文章由雷鋒網(wǎng)整理自作者知乎專欄,獲授權(quán)發(fā)布,未經(jīng)允許禁止轉(zhuǎn)載。
前段時間騰訊的AI “絕藝” 在野狐圍棋越殺越勇,勝率接近90%,戰(zhàn)績一片紅色,充分展示了強(qiáng)化學(xué)習(xí)自我進(jìn)化的威力。但就在2月10日畫風(fēng)突變,被幾位棋手連殺幾局,隨后就下線調(diào)整去了:
細(xì)看棋譜,職業(yè)棋手很有想法,確實找到了電腦的一個比較本質(zhì)的缺陷。例如這盤,電腦持白,對持黑的潛伏(柯潔九段):
白棋的大龍從右下被黑棋緊盯著殺到中腹,最后竟然做不出兩眼,郁郁而亡。其余幾盤也均是以電腦大龍被殺告終。
這是深度卷積網(wǎng)絡(luò)的一個 BUG:電腦對于局部的死活很敏感,但是對于大龍的死活不一定看得清。最近我在訓(xùn)練網(wǎng)絡(luò)時也發(fā)現(xiàn),深度卷積網(wǎng)絡(luò)在此有一個"信息傳遞困難癥"。這首先有兩個原因:
第一,AlphaGo v13 的網(wǎng)絡(luò)層數(shù)實際是不夠的。如果按照 AlphaGo v13 的架構(gòu),5x5往上面長11層3x3,相當(dāng)于27x27,看上去夠大了吧?錯,這樣的半徑只有14。因此,如果大龍的長或?qū)挸?4,那么它的尾就和頭沒有任何直接聯(lián)系了。實際上,卷積核要至少長到37x37才保險,也就是16層3x3才夠。
第二,由于網(wǎng)絡(luò)的結(jié)構(gòu)是往上一層層生長,如果只長幾層,一般不會丟失重要信息,但如果一直長上去,就會越來越容易出現(xiàn)問題。所以,大龍甚至都不用長到14,電腦就已經(jīng)不一定"知道"自己的大龍是一條聯(lián)通的大龍了。
舉個與之相關(guān)的例子:按照 AlphaGo v13 的架構(gòu),如果大龍只在一端有兩個真眼,另一端就甚至不一定知道自己已經(jīng)活了(它只會知道自己有兩口氣,而這是網(wǎng)絡(luò)輸入告訴它的)...... 不可思議吧,我自己訓(xùn)練時看到這個現(xiàn)象也很驚訝,然后一想確實是這樣。
以上這兩個問題,電腦換成足夠深的殘差網(wǎng)絡(luò)或許就可以基本解決,不過意味著要重新訓(xùn)練。
但實際還有兩個問題:
第三,如果仔細(xì)看網(wǎng)絡(luò)本身輸入的特征設(shè)計,會發(fā)現(xiàn)網(wǎng)絡(luò)容易被帶入一個誤區(qū):它會傾向于認(rèn)為氣很多的棋塊就是活的。對于局部死活,這沒有問題,但對于大龍死活,這是不足夠的。網(wǎng)絡(luò)實際并沒有清晰的眼位概念。
第四,這里的局面在人人對局中少見,在電腦自我對局中也會同樣少見。關(guān)鍵在于,棋塊小的時候,可能出現(xiàn)的形狀不多,而且許多形狀經(jīng)常在對局中出現(xiàn),因此容易被神經(jīng)網(wǎng)絡(luò)學(xué)會。而大龍越大,其可能出現(xiàn)的形狀就越多,網(wǎng)絡(luò)不一定能學(xué)會。事實上,目前的深度卷積網(wǎng)絡(luò)并不擅長學(xué)會拓?fù)涓拍?。?xì)長的大龍、分叉的大龍、卷曲的大龍,會尤其是它的弱點。棋手可以多嘗試讓電腦或自己的棋變成這樣,電腦就會更容易看不清死活。
以上兩個問題,電腦也可以通過有針對性的訓(xùn)練改善自己。具體效果如何,我們看“絕藝”上線后的表現(xiàn)。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。