[討論] alphago能進化成betago嗎

作者: fallcolor (秋天走了)   2016-03-15 20:07:36
人機大戰結束了。感覺人類棋手已經勘破一些alphago的破綻,大致掌握了戰略走向,只
是實踐起來仍有非常難度。假如說李世石在五場對弈中取得進步,那麼alphago呢?或者
說alphago背後的google工程師呢?
評論alphago在唯一敗局中展露的缺點,應該以FB工程師田淵棟的分析最具公信力。畢竟
他手上有一套darkforest隨時可以佐證棋步的勝率估計,更重要的是他本身就是頂尖ML演
算法工程師,對演算法缺失的直覺應該同等於李世石對圍棋勝負的理解。他提出了兩種面
向,一種是MCTS搜索過早結束,一種是對葉節點的勝率估計出了問題。然而相同的猜測是
,這兩種失誤都容易在盤面需要複雜計算才能算清的情況下出現。假設google事後調閱
log檔發現原因果真如此,這個工程問題該如何解決呢?
也許一般人會想,換掉訓練資料就好啦,這次挑選一些複雜盤面的棋譜再對兩個神經網路
重新或增強訓練,還不把人類棋手趕盡殺絕?不過要訓練出一個好的ML模型並不是真的狂
灌資料就能辦到了。假如模型複雜度不足,卻硬吃太多資料變異性,相當於加偏差
(biased)資料下去,可能降低模型的泛化能力。反過來說,一味提升模型複雜度則會造成
訓練過程困難。雖說ML研究本來就有一些經驗法則的味道,但工程師困在這種try and
error的迴圈裡不是google這種等級應該花時間幹的事。以下試著提供三點從工程師思維
出發的解決方案:
1. 目前論文上的MCTS搜尋策略還是有缺點的。當搜尋樹抵達一定深度時,就開始對葉節
點進行勝率估計。若沒看漏細節alphago並沒有對這個搜尋深度進行動態調整,但當棋局
陷入難以算清的盤面時,棋手本來就該投入更多思考時間分析最佳解,例如第四局李世石
的40分鐘78手就如是。所以最直覺的做法是一旦陷入這種局面,alphago的搜尋深度就得
在考慮時間限制之下盡可能提高。
2. 勝率估計出問題可能原因有二。一個是價值網路預測不準,一個是快速走子模擬勝負
的結果不佳,最糟的情況是如前面一篇分析文章的作者陳經所說的兩者皆差(順帶一提我
覺得他的分析很不錯)。論文中對勝率估計的權重設計相當偷懶,就是一半一半。Google
工程師若事後檢查,發現在難以算清的盤面上其中一種估計品質極差,就該根據盤面複雜
度動態調整權重值。若不幸的是worst case兩者皆差,那麼我建議在時間限制許可下啟用
policy network進行走子勝負預測。
3. 採用前兩點補丁都有一個前提:如何決定盤面複雜度?這裡就是很主觀的個人看法了
,我認為google可以再訓練一個風險網路(risk network),專門根據盤面判斷此時落子的
風險程度。這個模型的預測目標與勝率無關,所以與價值網路/走棋網路的性質應該要起
到互補作用,專門泛化那些一觸及發的棋局的pattern。當然這個做法的問題是如何定義
與生成訓練資料,但這件事對有豐富圍棋知識背景的開發團隊而言應該不難解決。
基本上工程師思維就是主要框架不動,並且在方法原本精神下(ML+MCTS)提供可靠的補丁
機制。以google現在擁有的資源,完成這些事應該不用三個月。三個月後……alphgo可能
真的可以變身betago了。
作者: birdy590 (Birdy)   2016-03-15 20:10:00
通常快速走子的結果不會太差, 至少會比評估網路準很多所以最怕是關鍵棋步被根本沒下去算(邏輯等同於被剪掉)
作者: wadashi1 (阿拉丁)   2016-03-15 20:12:00
訪問的時候好像聽到是第18版,應該再改版不會改名字吧!
作者: birdy590 (Birdy)   2016-03-15 20:13:00
我們不會區分 李世石2016 跟 李世石2015, 一樣道理吧 :)或許時間控制子系統也需要納入訓練的概念, 前中後盤
作者: fallcolor (秋天走了)   2016-03-15 20:14:00
恩 所以搜尋樹深度很重要
作者: birdy590 (Birdy)   2016-03-15 20:14:00
人類採用的策略會不同, 對機器來說似乎也有必要
作者: fallcolor (秋天走了)   2016-03-15 20:15:00
不過我記得快速走子好像單獨使用才24%左右 這..算準嗎
作者: birdy590 (Birdy)   2016-03-15 20:15:00
hmm... 依田淵棟的說法, 快速走子的廣度也很重要不需要它準 開發了 RL 卻不用(最後只用在訓練估值網路)應該也是這個道理
作者: tonyparker18 (tonyparker183)   2016-03-15 20:16:00
想看貝他狗虐柯KJ
作者: fallcolor (秋天走了)   2016-03-15 20:17:00
如果是廣度問題 那就要更換MCTS的UCT策略了
作者: birdy590 (Birdy)   2016-03-15 20:21:00
這點我完全不擔心 路人甲工程師想的到的開發團隊當然更不可能漏掉 不涉及重複訓練的話 測試時間應該都很快
作者: fallcolor (秋天走了)   2016-03-15 20:26:00
我倒是覺得大家不用妄自菲薄 都是對ML有想法的人罷了
作者: roisac   2016-03-15 20:27:00
還會變成omegago哦
作者: aaaba (小強)   2016-03-15 21:31:00
風險網路的訓練資料是?如果kgs的棋譜有時間記錄,那還有機會,看盤面猜下一手會想多久才落子想得久就比較複雜
作者: fallcolor (秋天走了)   2016-03-15 21:45:00
這個建議不錯耶
作者: BRANFORD (請保佑我的父親)   2016-03-15 22:08:00
下網路棋到一半接電話泡咖啡拉屎老闆來了 也是有的
作者: birdy590 (Birdy)   2016-03-15 22:34:00
棋譜沒有記載思考時間吧 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com