Re: [心得] 圍棋AI AlphaGo 之我見

作者: kafai (豬仔包 PigSonBow)   2016-03-14 13:17:21
感謝f大的發文,我也是長知識了
我得再次承認我對NN的理解太膚淺,這是我做得不好的
一方面是因為我是做RFIC的,我沒那個能力時間把 NN 和 MCTS 的結合寫得精確
(我就只是在一月ASP-DAC做了 turorial 的 chair 聽了一整天NN,和看了那份 Nature
寫這篇也參考了那個台大資工教授的文章)
另一方面是由於我所寫的出發點是在,我希望借助我有的圍棋知識和我比較熟知的 MCS
還有一些對於 AyaBot 的經驗,去推估 AlphaGo(AG) 的可能弱點
而不是要告訴人 NN 如何在 AG 發揮作用,所以引出你這篇好文啊 XD
只是我不能同意 NN 是 AG 強的關鍵,
因為 NN 和 MCTS 是一起配合的,只有一方的情況下,過去的經驗會告訴你它會弱很多
只有 NN 的話可以想像有可能發生,在第一局第7手下出未見過的佈局,
AG 下一手就開始不會下,然後脆敗
我知道 NN 是協助 MCTS 更有效率地找出最佳解 (類似 MC 跟 MCMC 的分別)
用圍棋的話來說,NN 相當於一個形勢判斷 + 一個不強的算路 (相當於棋手第一感)
MCTS 就是在 NN 的協助下加強算路的能力,其實跟棋手的思維模式是很接近的
那麼我將 NN 的助益完全算進 MCTS 的 sims 數提高,去估算 AG 的算路深度是合理的
第四盤我看完圍棋TV張東岳的講法,
我會說如果 78手 是勝著,那麼 35手 虎 就是敗著,沒有虎而是黏,後面就不會有78了
也就是我上篇估計的三四十手算路
當然由於它有 MCTS 的關係,它在沒改 code 的情況下,遇到同樣的 78手,
它有可能會平安運轉
我的看法是 Google 太小看李世石,如果1000台 server 增到2000台,說不定就夠了
有人可能說 distributed 版跟單機版的勝率才77%,
但從十番棋的角度3勝1敗已經接近把對方打降級了)
從兩個現象看來,你不能抹殺 MCTS 的作用
1. 第二局的那個五路肩衝,那大概不是 NN 提供的優先選擇吧,非得 MCTS 掃出來
當然五路肩衝在職業譜也不會沒有,
我記憶中武宮有五五肩衝星位的棋吧,那更是對兩邊來說都是五路肩衝,
最近的棋也好像有吧,不過沒有在佈局的那麼早段下
而是其他很多地方都定型後再肩衝五路的場合下法
但樣本數少到單用 NN 是不可能建議你去下這種棋的,
但那個小機率權重讓它能在 MCTS 中脫穎而出
2. 昨天敗定後,AG 下出很多到無禮程度的業餘下法,那也是 MCTS 的「功勞」
它相當於下出很俗的打將式絕對先手,然後期望對方氣合脫先,從而得益
這在機率上就說得通了,但在下得很業餘這個點上,它就變成丟下 NN 的 AI 了
作者: AmibaGelos (Amiba Gelos)   2016-03-14 13:22:00
推!實際上去估一下cNN讀取時間就會發現分析深度超級淺MCTS後段才是處理手筋的重點所在
作者: aaaba (小強)   2016-03-14 14:00:00
MC 跟 MCMC 的異同是什麼?
作者: sck921 (The Fate)   2016-03-14 14:05:00
因為這領域真的滿專業的吧
作者: mike0227 (我又小看了那複雜的世界)   2016-03-14 14:45:00
Alphago是強在MCTS+"三套"NN know-how也都在那三套的訓練跟整合你要說是增加sims數目也不能說錯 但是NN有機會給你相當於算到局末的價值 不是純粹1000->5000這樣倍率的進步而已
作者: kafai (豬仔包 PigSonBow)   2016-03-14 14:57:00
回aaaba,相似點在「提高 MC 的效率」m大,那就相當於職業棋手的形勢判斷,至於準不準呢...它就是職業的加權平均水準
作者: fallcolor (秋天走了)   2016-03-14 15:01:00
我也覺得MCTS很重要 但既然不熟就不敢評論它的重要性至於NN 純粹是認為你對NN求的最佳解理解為平均這概念是錯的 所以才想介紹ML基礎原理Kalman filter的話...恩...它跟NN複雜度差太多..不要這樣推論比較好
作者: kafai (豬仔包 PigSonBow)   2016-03-14 15:08:00
複雜是一回事 比較好是一回事,昨天神就丟顆骰子砸死AG了XD
作者: fool5566 (愚者56)   2016-03-14 15:12:00
比較同意f大的看法 NN應該是MCTS的前提 前提錯了就跟只有MCTS一樣 我覺得要如何下出讓Value network估算錯的棋才是問題
作者: kafai (豬仔包 PigSonBow)   2016-03-14 15:13:00
而加權平均的假設在這幾盤棋是沒有實驗數據的找個佈局下得好的棋手下就不同了我沒說NN不是前提,但只有NN沒MCTS 實力就只有業餘低段記者會上說AG是按勝率最大去下的,所以更像NN提供權重讓MCTS去找,那找到錯的,不一定是NN錯,是進入了一個稀有事件,所以我會說神丟個骰子砸死了AG
作者: bbbtri (cycling)   2016-03-14 15:38:00
無禮還是無理?
作者: aaaba (小強)   2016-03-14 15:39:00
看論文就知道分支的分數是綜合nn和rollout,nn低分不見得就會被忽略。例如第二局五路肩沖那手
作者: kafai (豬仔包 PigSonBow)   2016-03-14 15:40:00
已經無理到無禮的地步了對啊,所以我說NN 低分,還是可能在MCTS 出來是條件機率的概念
作者: bbbtri (cycling)   2016-03-14 15:43:00
請問有辦法估讓AlphaGo跑自我訓練 得到一組勝率的數據需要吃多少資源嗎 @ @?
作者: kafai (豬仔包 PigSonBow)   2016-03-14 15:44:00
因為自我訓練相當於在平時做窮舉,COMPUTER GO DIGEST上說自我訓練在起始會有作用,但慢慢就會收歛
作者: birdy590 (Birdy)   2016-03-14 15:46:00
請先看一下 7779
作者: kafai (豬仔包 PigSonBow)   2016-03-14 15:47:00
因為圍棋複雜度是10^170次方,是沒機會掃好掃滿的bir大,我再說一次,我是在估 AG 的弱點,計算深度
作者: bbbtri (cycling)   2016-03-14 15:54:00
http://zhuanlan.zhihu.com/yuandong/206076847779是轉貼這篇之前就有版友給的連結
作者: kafai (豬仔包 PigSonBow)   2016-03-14 15:56:00
我知道 NN 可以提高MCTS效率,就反過來相當於節省了硬件我不是在描述 AG 的技術 details
作者: birdy590 (Birdy)   2016-03-14 15:59:00
這裡的"自我訓練"沒那麼神, 其實只是訓練估值網路的過程
作者: bbbtri (cycling)   2016-03-14 15:59:00
自我訓練的收歛是...不明顯但仍然向上增長 還是會到瓶頸?
作者: birdy590 (Birdy)   2016-03-14 16:00:00
在這裡面有很多名堂要注意, 並不是棋譜倒進去那麼簡單eg "每一盤棋只取一個樣本來訓練以避免過擬合"
作者: bbbtri (cycling)   2016-03-14 16:08:00
只取一個樣本是什麼意思呀?只計算一次?
作者: birdy590 (Birdy)   2016-03-14 16:13:00
看原文啊 有解釋... 現在的做法好壞其實是未知 XD這一塊應該算是還沒開拓過的領域, 如果 DeepMind 不知道世界上也沒人會知道, 只有花大量時間下去實驗才會有結論(高級軟體測試工程師 get)
作者: bbbtri (cycling)   2016-03-14 16:27:00
但到底要再投入多資源才能有效證明這個「假設」?
作者: aegis43210 (宇宙)   2016-03-14 16:34:00
大量的硬體資源和足夠強的棋手呀,正在實驗中
作者: bbbtri (cycling)   2016-03-14 16:36:00
......就當作是職業棋手的天劫吧= =
作者: fallcolor (秋天走了)   2016-03-14 17:01:00
那你就這樣認為吧 以後你對ML懂更多就會改變想法了
作者: aaaba (小強)   2016-03-14 17:47:00
所以現在在爭什麼?
作者: kafai (豬仔包 PigSonBow)   2016-03-14 17:56:00
f大認為NN可以到達training 樣本(職棋)的最強水平甚至更強
作者: fallcolor (秋天走了)   2016-03-14 19:02:00
我沒這麼說 我是說平均這概念不對 請別腦補 謝謝
作者: ddavid (謊言接線生)   2016-03-14 19:16:00
嚴格來說NN是「feature」的多層加權平均(線性組合),但不會是「instances」的加權平均所以不會是職業(棋譜)的加權平均水準另外就算論feature,因為這邊的「加權」可以為負值也可以為超大的正值,所以「平均」的概念也不是非常好
作者: aaaba (小強)   2016-03-14 19:43:00
樓上大致正確,但局限於非最後一層裡的前半段也就是通過activation function以前
作者: ddavid (謊言接線生)   2016-03-14 19:58:00
對,你說的比較精確XD

Links booklink

Contact Us: admin [ a t ] ucptt.com