看板 GO 關於我們 聯絡資訊
先說我是個兩日棋迷,可以等同於完全不懂圍棋(可能有十幾級?), 實在班門弄斧..不過想要來講一下我讀AlphaGo論文的心得, (論文連結:http://www.willamette.edu/~levenick/cs448/goNature.pdf ) 希望能對這裡的專業板友提供一點參考價值@@ 然後這論文是一月發的,跟現在的AlphaGo很可能有所不同。 先說下面肯定有不少錯誤,請大家指正orz (更新錯誤:感謝fgkor123的連結,寫得比我好百倍,不過好像原作者關了orz) 感謝countingtls版友的啟發,本來有些看不懂的地方被他指出重點突然就懂了XD - AlphaGo的運作原理(超級簡化版)的四個部分: (1) SL策略網路: (SL=監督式學習) 從數十萬個棋譜學習,讓類神經網路猜測職業棋手在每個盤面會下的一步,不搜尋。 這裡可以達到57%的猜測準確率。 (讓業餘初段的旗手能自由翻閱棋譜來猜頂尖職業棋手的下一步應該可以做得遠遠更好?) 用這個網路而不搜尋,對Pachi(KGS業餘2段)有12%勝率。 (1')展示策略(rollout policy,亂翻一通XD): 類似SL策略網路,但使用簡單許多的棋盤特徵來做判斷。 展示策略只能達到24%的猜測準確率。 呼叫一次展示策略要用0.000002秒,相對於SL策略網路要0.003秒(1500倍)。 (2) RL策略網路: (RL=強化學習) 從SL策略網路開始自我改良,一直自己跟自己的變種下(還是不搜尋)。 每一局下到完為止,下的結果只問勝負不問差幾目。 最後進化出來得到的RL策略網路不搜尋對Pachi有85%勝率。 (大概在這裡可以想成只憑直覺完全不做計算而有至少業餘二段的棋手) 補註: SL和RL策略網路其實不是真的猜最有可能的一步,而是給出每個步數認為的機率。 (3) RL助值網路: 用RL策略網路自己跟自己下棋+搜尋來建立, 這次的目的是建立一個網路來對每個盤面賦予一個分數, 大概類似於『往後計算個幾步,問問RL策略網路對得到的盤面有何看法』。 這個分數誕生於RL策略網路給與的回饋,與目數差無直接關係。 (4) 真AlphaGo: 用(1)SL策略網路,(1')展示策略和(3)RL助值網路一起來做判斷基準, (1), (3)的用法應該就是直接用來評分(兩者具體用法不同,不過我自己還不太懂), 但(1')的使用方法是以當下盤面開始自己跟自己下直到遊戲結束用得到的結果評分。 然後用蒙特卡洛樹搜尋法的變體。我個人的粗淺理解是: (還蠻直覺的我覺得) 越好的落子點(機率越高&分數越高)就去計算越多步, 反過來用計算的結果來定義什麼是好的落子。 最後被計算最徹底的一步,AlphaGo就判定為當下最佳的一手。 - 討論: 1. 文章內有提到AlphaGo對CrazyStone(KGS業餘6段)讓四子的勝率是77%。 我是個大外行,不過如果假設是李世石是不是可以有高得多的勝率? 我的猜測是要讓AlphaGo很好的學會玩讓子還是有點障礙, 因為AlphaGo的力量本源是自己跟自己下來追求進步:p 而自己跟自己下讓子只會是一方慘電另一方,聽起來不是很有學習效率.. 2. AlphaGo並不是嚴格意義上的追求最大勝率;讓我覺得很奇妙與神秘的, 它追求最大勝率以及下起來最像職業棋士(SL策略網路)。 就在下讀到的,它打一開始就不認得什麼是目數差。 但反過來說,它所學習的職業棋士顯然會考慮目數差, 所以某種意義上它還是有『考慮』到的... 3. 論文裡的AlphaGo並沒有提到劫,就算AlphaGo真的很討厭劫, 它多半也不知道他在討厭的東西是劫。 以我這個外行看來,一種可能是: 『引入這種又臭又長的結果會讓我在搜尋範圍內可預見的勝率變低。』之類的@@ 我自己是認為教AlphaGo去刻意避免劫不大可能:他的計算公式是自己生成的, 人類很難重新去讀懂。加入刻意的人工設計多半會弱化它。 4. 由於(1')展示策略的存在,因此不管AlphaGo的搜尋計算(=蒙特卡洛樹)考慮多少盤面, 他其實還有加一個會粗糙的另外計算到底的設計。 所以如果一個劫所展開的變化『不難』,那不管後續有幾百步AlphaGo應該都是能照顧的。 (我猜這是AlphaGo理解循環劫的主要方式) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.16.204.74 ※ 文章網址: https://www.ptt.cc/bbs/GO/M.1457672762.A.2D2.html ※ 編輯: darkseer (192.16.204.74), 03/11/2016 13:13:35
Senkanseiki: AG:這種煩的要死又沒增加多少勝率的東西我才懶得算 03/11 13:12
arnold3: 給AlphaGo打電動打幾天就贏過一堆人類高手 哪知道他怎學 03/11 13:20
※ 編輯: darkseer (192.16.204.74), 03/11/2016 13:23:33
hdjj: 避免打劫的確可以簡化計算. 電腦演算好像是有這種趨勢 03/11 13:27
lwei781: train 久了以後 應該會往勝率偏過去 03/11 13:30
lwei781: 不只打劫, 能簡化的幾乎都會選簡化 就算"損" 03/11 13:31
hdjj: 只是我們所謂的簡化和電腦的簡化可能又有所不同.對我們來說 03/11 13:33
hdjj: 計算十幾步叫多,對電腦而言可能是三四十步 03/11 13:33
Senkanseiki: 根據前幾篇,AG是透過勝率來計算,也就是說除非只有 03/11 13:40
Senkanseiki: 拼劫才能勝,不然沒有必要一定得開劫爭,而且根據高 03/11 13:40
Senkanseiki: 手分析,AG常常選擇花樣少但是也相當有力的步數,可 03/11 13:40
Senkanseiki: 能這種下法也讓花樣多的劫爭變得不利 03/11 13:40
Senkanseiki: 當然身為一個五日棋迷,無法確保自己說的有沒有意義 03/11 13:40
Senkanseiki: ,但是看了很多高手的分析,也隱約覺的自己好像可以 03/11 13:40
Senkanseiki: 看懂其中變化了,這也是圍棋的一道福音不是嗎?讓更 03/11 13:40
Senkanseiki: 多人對圍棋有興趣! 03/11 13:40
sapc87952: 你說會避免打劫有點矛盾 1.第二場是李世石有打劫的機會 03/11 13:42
sapc87952: 而不是AlphaGo 如果小李真的打結了Alphago也不能避免 2 03/11 13:42
sapc87952: .RL跟SL策略網路一定也有把打劫思考進去 因為他是為了 03/11 13:42
sapc87952: 求勝而不是要求穩 況且棋譜肯定也有打劫的部分 03/11 13:42
NaoGaTsu: 若打劫會讓盤面複雜化,從而讓勝率降低(或不易計算勝率) 03/11 13:43
NaoGaTsu: 依阿發狗的演算法,的確會盡量避免打劫。 03/11 13:43
Bingojkt: 迴避劫的觀點我非常認同,就像贏定不會跟對手打半劫一樣 03/11 13:43
NaoGaTsu: 在盤面優勢上避免打劫,我想多數的高段都會這樣下,也理 03/11 13:44
Bingojkt: 因為打劫就會讓盤面複雜度增加,電腦簡化局面一定會避免 03/11 13:44
NaoGaTsu: 所當然,但這都不代表阿發狗不擅打劫。 03/11 13:44
sapc87952: 我覺得現在大家還會覺得打劫會複雜電腦的計算有點小看A 03/11 13:45
sapc87952: ja Huang跟AlphaGo了 03/11 13:45
darkseer: To sapc87952: 抱歉我確實外行XD,我的意思是說如果有 03/11 13:46
sapc87952: 相反來說 那是因為目前AlphaGo沒有在盤面落後過所以不 03/11 13:46
sapc87952: 會主動挑起劫爭 03/11 13:46
aegis43210: 只要接下來三盤棋,希望李世石能打一次劫爭就好了 03/11 13:46
darkseer: 我不知道有沒有,不過我覺得這未必是小看, 03/11 13:46
darkseer: 複雜對AlphaGo應該就是個相對概念,它可能就想要避免 03/11 13:47
sapc87952: 但是如果是人類主動挑起劫爭那就不一樣了 這也是李世 03/11 13:48
sapc87952: 石第二盤可惜的原因 而大家會亂傳有簽保密協定就是因 03/11 13:48
sapc87952: 為目前七盤棋都沒有人類挑起劫爭 03/11 13:48
darkseer: 嗯,我也是猜測AlphaGo優勢時會傾向簡化 03/11 13:49
sapc87952: Alphago會在優勢盤面避免打劫我認同 但人類要打劫的話 03/11 13:49
sapc87952: 他還是得應戰的XD 03/11 13:49
Bingojkt: 話說回來,膜拜原PO數學大神XD 03/11 13:49
darkseer: 這麼一說突然覺得對李九段不太公平,被期待要去製造劫.. 03/11 13:50
darkseer: 不過這應該也是它接下來的合理策略突破點嗎XD 03/11 13:50
darkseer: sorry, 我是說李九段合理的策略突破點 03/11 13:51
NaoGaTsu: 劫爭需要精算,但精算力上,人腦就是不如電腦,就算是職 03/11 13:51
NaoGaTsu: 棋,也很難不對自己的精算力正確與否心生懷疑吧... 03/11 13:51
princeeeeeee: 江哥發文必推 03/11 13:53
darkseer: To lwei781: 有點神祕的是最後的搜尋參考SL策略網路, 03/11 13:53
darkseer: 而非RL策略網路,論文裡有解釋為什麼比較好。 03/11 13:54
darkseer: 類似RL的策略網路是被訓練來找出最高機率而不是一致的 03/11 13:54
darkseer: 判斷機率,不過我還是覺得挺怪.. 03/11 13:55
shellpig: 若第二場有打劫但輸了就會被說精算一定輸電腦劫個屁xD 03/11 14:00
tonyselina: 我要看sky哥點評理工宅darkseer的分數 (滾動) 03/11 14:02
NaoGaTsu: shellpig XDDD 超中肯 XDDDD 03/11 14:04
goldduck: 重點是輸 贏 顆顆 03/11 14:04
TaiwanUp: 其他軟體的打劫能力如何? 是不是跟alphago一樣? 03/11 14:07
NaoGaTsu: Zen不是還不會打劫嗎 03/11 14:13
MicroB: 所以這RL分數算是用結果評價了古往今來的布局讓AG選個最猛 03/11 14:22
MicroB: 的來用嗎? 03/11 14:24
TaiwanUp: zen不會打劫 那AlphaGo應該也選不到太多劫爭的盤面 03/11 14:26
TaiwanUp: 自我對局的資料庫裡面沒什麼劫爭的棋局(?) 03/11 14:27
NaoGaTsu: AlphaGo若有被餵過譜,不可能沒有對劫爭上的理解。 03/11 14:29
NaoGaTsu: aja也不會放掉這一塊弱區不去處理。 03/11 14:29
darkseer: To MicroB: 我的理解是SL網路是學棋譜,RL是自我改良版 03/11 14:30
darkseer: 不過SL不真的『用結果評價』,它就是直接學的樣子.. 03/11 14:31
darkseer: 當然可能AlphaGo再選擇"學哪些"的時候參考了結果 03/11 14:32
darkseer: 如我沒理解錯RL也不參考歷史結果,而是『自己試試看』XD 03/11 14:33
TaiwanUp: 可是如果zen不會打劫 那餵再多棋譜 他還是會避開 03/11 14:33
darkseer: 棋譜應該不是來自Zen,沒有提到(或是我漏看? orz) 03/11 14:34
darkseer: 有提到來自KGS,我猜應該是真人棋譜 03/11 14:35
aegis43210: 所以SL網路會餵所有李世石的棋譜? 03/11 14:36
MicroB: 恩 用"自己試試看"的結果來評價哪個地方該厚該薄 蠻有意思 03/11 14:37
MicroB: 的 之前有人說讓兩個一段互下幾千盤可以升到兩段 但升不到 03/11 14:38
MicroB: 上段 看來那是下的不夠 XD 互下幾千萬盤然後有系統的評價 03/11 14:39
MicroB: 就上九段了 XD 03/11 14:39
darkseer: 那兩個兩段互下幾千盤可以升到三段嗎XD 03/11 14:40
darkseer: To aegis43210: 李九段這樣的大師找的到應該就會餵吧 03/11 14:41
MicroB: 是說兩個系統升上去後會越來越接近就收斂了 03/11 14:42
darkseer: 不過我認為AlphaGo不太可能專門為了李九段去優化多少, 03/11 14:42
darkseer: 我比較傾向這次AlphaGo根本不知道它在跟李九段下棋,理由 03/11 14:43
darkseer: 和關於劫爭的討論一樣-AlphaGo已經自成一體了XD 03/11 14:43
※ 編輯: darkseer (192.16.204.74), 03/11/2016 14:44:00
MicroB: 不過看來九段和一段的棋感差距 可以用"勤能補拙"來彌補 03/11 14:44
MicroB: 只要多試幾次 然後每次都記下來不犯一樣的錯(輸給另一個AG 03/11 14:45
hdjj: 五級的一方通行殺兩萬個妹妹可以昇到六級.(錯棚 03/11 14:45
MicroB: 的譜) 只懂一段的厚薄 大局觀 也可以贏九段的大局觀 03/11 14:46
wukevinboy: 推你,明顯有做過功課發問! 03/11 15:12
ggoutoutder: 重點是小李為什麼不走打劫拚搏的這種氣勢 沒有出來 03/11 15:15
ggoutoutder: 能不能贏當然不知道 但選擇安樂死實在是失望 03/11 15:15
ggoutoutder: 打入黑地那邊的劫爭彈性 和後來的夾碰劫爭的下法沒有 03/11 15:16
ggoutoutder: 下出來 難免讓職業選手感到不解 03/11 15:17
darkseer: 對了,可以問大家討論1.的那個勝率正常嗎? 03/11 15:39
darkseer: 對KGS業餘六段的Crazystone AI勝率77%那個 03/11 15:39
darkseer: (讓四子,忘了講XD) 03/11 15:41
lwei781: 那是以前吧, 現在可能更高 03/11 15:54
darkseer: 嗯,就是說我沒有概念要怎樣程度的職業棋士可以有77%的 03/11 15:57
darkseer: 勝率讓四子贏KGS業餘六段,主要想估計AG有沒有遇強則強 03/11 15:58
darkseer: 不過像你說的,也不知道這段時間AG進化了多少.. 03/11 16:00
lwei781: 大量對戰時, AI 的 bug 點會被抓 03/11 16:01
lwei781: 所以總量要考慮 03/11 16:01
lwei781: 100盤 77勝 和 10000盤 7700 勝不太一樣 03/11 16:02
lwei781: 萬盤case 後面搞不好是5000盤連勝 03/11 16:02
kennyluck: 問問darkseer支不支持Thomas Hales這些人的工作? 03/11 16:43
kennyluck: 早點把AI推到形式數學去。 03/11 16:43
darkseer: 我...口頭支持orz 03/11 16:52
lwei781: Hales 對的話 欠他一個 fields 啊 03/11 17:07
darkseer: 現在才看懂SL策略網路那一節有兩個部分orz,趕快改.. 03/12 04:39
※ 編輯: darkseer (192.16.204.74), 03/12/2016 04:40:13