「戰勝自己」對於AlphaGo而言不只是口號 - 圍棋
By Joe
at 2016-03-14T11:49
at 2016-03-14T11:49
Table of Contents
這是台大資工林守德老師在他FB寫的一篇文章,是他看過Nature那篇論文之後寫的感想
個人認為高手解讀應該有助於釐清大家對AlphaGo行為模式的理解
原文連結:https://goo.gl/m8cBHn (FB連結,不喜誤入)
「戰勝自己」對於AlphaGo而言不只是口號 ─ “Mastering the game of Go with deep
neural networks and tree search” Nature 2016 讀後感想
SHOU-DE LIN·2016年3月12日
我對圍棋一竅不通,過去也對AI-Game沒有特別研究,拜近日來AlphaGo重創人類在圍棋上
領先的地位之賜,特別把這篇Nature上的論文拿來看了一下。
這是一篇非常有趣的論文,摘錄心得如下:
1. AlphaGo 決策過程跟過去的棋類程式不大一樣。它裡面每一個stage單獨的方法都是不
是新的創見,只是它組合這些方法的framework很特別。它的learning結果(不管是DNN或
是RL)都只是中間產物,最後用來幫助搜尋最好的棋步。
2. 它的learning分三個階段,第一個階段「天下棋手為我師」,它主要希望建構一個13
層的DNN來學「圍棋專家」的棋步(policy),也就是根據這個盤面預測過去歷史資料中
大家會怎麼下。第一階段訓練出來的SL系統就可以下棋,但是結果不是很好,因為其實就
只是個模仿專家的系統。
3. 而第二階段「超越過去的自己」是一個Reinforcement Learning的系統,藉由跟過去
的自己對戰來refine第一階段學到的policy,而且需要跟過去不同版本的對手對戰avoid
overfitting。在這個RL的階段,才首度把勝負當成reward在訓練model。第二階段訓練出
來的policy已經有85%的機會贏過state-of-the-art二段的程式。
4. 第三階段我戲稱為「機率算盡太聰明」。其宗旨在預估每個盤面的價值。所謂盤面的
價值,就是從這個盤面開始,假設對手能夠窮舉所有可能的下法找到最佳解,AlphaGo的
獲勝機率有多高。當然我們無法知道無懈可擊的對手會怎麼下,所以退而求其次,
AlphaGo模擬跟自己下的過程決定每個盤面的「勝率」有多少,然後用有限的盤面與勝率
當成Training data再去Train一個DNN來估計所有盤面的價值。在這個階段還有一個trick
,也就是這些當成training data不能用第一階段資料庫蒐集的棋局盤面,因為同一局的
盤面有高的dependency以及一樣的reward,會造成學習中的「記憶」效應,而是要用「與
自己下棋」中每一局單獨抽取的獨立盤面來訓練。
5. 前三個階段都是AlphaGo的「訓練」過程,這些都是offline可以做的。訓練好的
AlphaGo已經可以贏過一般的對手。
6. 雖然訓練好的第三階段AlphaGo就可以仗劍大殺四方,但是還不足以贏過高段的對手。
因為實戰中的盤面有很大的機率是在訓練中沒有看過(圍棋的盤面總數高達250的150次方
之多),對於它們價值的預測其實不一定準。真正在實戰中,AlphaGo採取「靈機應變,
無招勝有招」的戰術,不堅持使用之前學習到的棋步,反而利用過去學到的policy 結合
了蒙地卡羅樹狀搜尋(MCTS)的方法找出最好棋步。也就是在實戰中對現在盤面進行模擬下
棋(再度假設對手就是自己),在模擬的過程中把所有經歷的盤面重新計算它們的價值,
在有限的思考時間內盡量進行模擬,最後選擇模擬過程中最穩定的棋步(不是價值最高的
棋步)。在這個過程中需要快速的運算,越多的模擬就會讓盤面價值的計算越準,
AlphaGo利用平行化計算加上GPU達成高速運算的目的。
7. 演算法總結:AlphaGo第一階段的訓練過程就像是把一個人關在房間裡,不告訴他圍棋
是什麼,也不告訴他圍棋的規則,甚至連圍棋最後怎麼算勝負都不跟他說,只拿一大堆過
去專家下棋的棋譜給他看。然後等它看完棋譜後,第二階段就讓他自己跟自己下棋,從中
學習更好的下法,最後第三階段它只要看到某個盤面就知道這個盤面的勝率,雖然從頭到
尾它還是不知道圍棋的規則。
真正在下棋的時候,AlphaGo還是沈浸在自己的世界裡。每當對手下完一步,它就開始模
擬接下來可能的數步(模擬的時候就是假設對手是自己,所以對手是誰對AlphaGo而言完
全不重要,他也完全不去預測對手會怎麼下),在模擬的過程中,它就重新對於未來可能
面對棋局來估算勝率,最後選擇最穩定最有可能獲勝的棋步。它的風格就像是金庸筆下的
獨孤九劍,不拘於定式,而是當下根據對手的招式才決定最佳的進擊策略。
8. AlphaGo並沒有針對對手的棋步訓練系統,我不確定在他使用的Data裡面有沒有李世石
的棋譜,不過就算是有,應該占的比例也應該微乎其微。「自我學習」(與自己對戰)才
是AlphaGo的主軸。
9. 看起來AlphaGo所使用的所有Tricks跟方法是缺一不可,paper裡面還有一些decision
的detail並沒有講清楚,但是相信是嘗試錯誤後決定的。
10. 後記1:AlphaGo的唯一目的是最後的勝利,所以在過程中它並不在乎下某一子的短期
利益(會贏多少地盤),它甚至對於這些短期損益完全沒有認知,在訓練的過程中也不在
乎「贏幾目」。在與人類對決的時候,我們看到棋評會指出它犯了一個「失誤」,或是它
不喜歡某種策略如「打劫」。其實如果瞭解AlphaGo的決策模式,就會知道他其實沒有「
策略」以及「失誤」的概念,對它而言,棋類等遊戲就是對於每個盤面精確且快速的估算
其通往勝利的機率。
11. 後記2:因為AlphaGo在下棋的過程中會看到越來越多的盤面,所以它只會愈來愈進步
。未來如果人類想從與其對奕中取得勝利,必須要能夠走出前所未見的局面,降低它對於
盤面估測的準確度才會有機會。這也不是完全不可能,因為圍棋的複雜度太高。其實要更
理解AlphaGo,必須要去研究它present每一個盤面所用的features,我因為不懂圍棋,所
以沒有辦法comment。但是理論上如果它遺漏了某個重要的feature,表示它無法利用這個
資訊判斷盤面的價值,人類可以利用這個資訊去進攻,盡量去創造某個比較不容易被已有
的feature來表達的盤面。
--
個人認為高手解讀應該有助於釐清大家對AlphaGo行為模式的理解
原文連結:https://goo.gl/m8cBHn (FB連結,不喜誤入)
「戰勝自己」對於AlphaGo而言不只是口號 ─ “Mastering the game of Go with deep
neural networks and tree search” Nature 2016 讀後感想
SHOU-DE LIN·2016年3月12日
我對圍棋一竅不通,過去也對AI-Game沒有特別研究,拜近日來AlphaGo重創人類在圍棋上
領先的地位之賜,特別把這篇Nature上的論文拿來看了一下。
這是一篇非常有趣的論文,摘錄心得如下:
1. AlphaGo 決策過程跟過去的棋類程式不大一樣。它裡面每一個stage單獨的方法都是不
是新的創見,只是它組合這些方法的framework很特別。它的learning結果(不管是DNN或
是RL)都只是中間產物,最後用來幫助搜尋最好的棋步。
2. 它的learning分三個階段,第一個階段「天下棋手為我師」,它主要希望建構一個13
層的DNN來學「圍棋專家」的棋步(policy),也就是根據這個盤面預測過去歷史資料中
大家會怎麼下。第一階段訓練出來的SL系統就可以下棋,但是結果不是很好,因為其實就
只是個模仿專家的系統。
3. 而第二階段「超越過去的自己」是一個Reinforcement Learning的系統,藉由跟過去
的自己對戰來refine第一階段學到的policy,而且需要跟過去不同版本的對手對戰avoid
overfitting。在這個RL的階段,才首度把勝負當成reward在訓練model。第二階段訓練出
來的policy已經有85%的機會贏過state-of-the-art二段的程式。
4. 第三階段我戲稱為「機率算盡太聰明」。其宗旨在預估每個盤面的價值。所謂盤面的
價值,就是從這個盤面開始,假設對手能夠窮舉所有可能的下法找到最佳解,AlphaGo的
獲勝機率有多高。當然我們無法知道無懈可擊的對手會怎麼下,所以退而求其次,
AlphaGo模擬跟自己下的過程決定每個盤面的「勝率」有多少,然後用有限的盤面與勝率
當成Training data再去Train一個DNN來估計所有盤面的價值。在這個階段還有一個trick
,也就是這些當成training data不能用第一階段資料庫蒐集的棋局盤面,因為同一局的
盤面有高的dependency以及一樣的reward,會造成學習中的「記憶」效應,而是要用「與
自己下棋」中每一局單獨抽取的獨立盤面來訓練。
5. 前三個階段都是AlphaGo的「訓練」過程,這些都是offline可以做的。訓練好的
AlphaGo已經可以贏過一般的對手。
6. 雖然訓練好的第三階段AlphaGo就可以仗劍大殺四方,但是還不足以贏過高段的對手。
因為實戰中的盤面有很大的機率是在訓練中沒有看過(圍棋的盤面總數高達250的150次方
之多),對於它們價值的預測其實不一定準。真正在實戰中,AlphaGo採取「靈機應變,
無招勝有招」的戰術,不堅持使用之前學習到的棋步,反而利用過去學到的policy 結合
了蒙地卡羅樹狀搜尋(MCTS)的方法找出最好棋步。也就是在實戰中對現在盤面進行模擬下
棋(再度假設對手就是自己),在模擬的過程中把所有經歷的盤面重新計算它們的價值,
在有限的思考時間內盡量進行模擬,最後選擇模擬過程中最穩定的棋步(不是價值最高的
棋步)。在這個過程中需要快速的運算,越多的模擬就會讓盤面價值的計算越準,
AlphaGo利用平行化計算加上GPU達成高速運算的目的。
7. 演算法總結:AlphaGo第一階段的訓練過程就像是把一個人關在房間裡,不告訴他圍棋
是什麼,也不告訴他圍棋的規則,甚至連圍棋最後怎麼算勝負都不跟他說,只拿一大堆過
去專家下棋的棋譜給他看。然後等它看完棋譜後,第二階段就讓他自己跟自己下棋,從中
學習更好的下法,最後第三階段它只要看到某個盤面就知道這個盤面的勝率,雖然從頭到
尾它還是不知道圍棋的規則。
真正在下棋的時候,AlphaGo還是沈浸在自己的世界裡。每當對手下完一步,它就開始模
擬接下來可能的數步(模擬的時候就是假設對手是自己,所以對手是誰對AlphaGo而言完
全不重要,他也完全不去預測對手會怎麼下),在模擬的過程中,它就重新對於未來可能
面對棋局來估算勝率,最後選擇最穩定最有可能獲勝的棋步。它的風格就像是金庸筆下的
獨孤九劍,不拘於定式,而是當下根據對手的招式才決定最佳的進擊策略。
8. AlphaGo並沒有針對對手的棋步訓練系統,我不確定在他使用的Data裡面有沒有李世石
的棋譜,不過就算是有,應該占的比例也應該微乎其微。「自我學習」(與自己對戰)才
是AlphaGo的主軸。
9. 看起來AlphaGo所使用的所有Tricks跟方法是缺一不可,paper裡面還有一些decision
的detail並沒有講清楚,但是相信是嘗試錯誤後決定的。
10. 後記1:AlphaGo的唯一目的是最後的勝利,所以在過程中它並不在乎下某一子的短期
利益(會贏多少地盤),它甚至對於這些短期損益完全沒有認知,在訓練的過程中也不在
乎「贏幾目」。在與人類對決的時候,我們看到棋評會指出它犯了一個「失誤」,或是它
不喜歡某種策略如「打劫」。其實如果瞭解AlphaGo的決策模式,就會知道他其實沒有「
策略」以及「失誤」的概念,對它而言,棋類等遊戲就是對於每個盤面精確且快速的估算
其通往勝利的機率。
11. 後記2:因為AlphaGo在下棋的過程中會看到越來越多的盤面,所以它只會愈來愈進步
。未來如果人類想從與其對奕中取得勝利,必須要能夠走出前所未見的局面,降低它對於
盤面估測的準確度才會有機會。這也不是完全不可能,因為圍棋的複雜度太高。其實要更
理解AlphaGo,必須要去研究它present每一個盤面所用的features,我因為不懂圍棋,所
以沒有辦法comment。但是理論上如果它遺漏了某個重要的feature,表示它無法利用這個
資訊判斷盤面的價值,人類可以利用這個資訊去進攻,盡量去創造某個比較不容易被已有
的feature來表達的盤面。
--
Tags:
圍棋
All Comments
By Tracy
at 2016-03-14T17:45
at 2016-03-14T17:45
By Puput
at 2016-03-17T00:07
at 2016-03-17T00:07
By Eden
at 2016-03-18T20:27
at 2016-03-18T20:27
By Odelette
at 2016-03-20T18:17
at 2016-03-20T18:17
By Adele
at 2016-03-20T20:00
at 2016-03-20T20:00
By Hamiltion
at 2016-03-23T10:31
at 2016-03-23T10:31
By Sarah
at 2016-03-26T04:52
at 2016-03-26T04:52
By Delia
at 2016-03-28T13:24
at 2016-03-28T13:24
By Todd Johnson
at 2016-04-01T04:27
at 2016-04-01T04:27
By Edith
at 2016-04-05T16:31
at 2016-04-05T16:31
By Wallis
at 2016-04-10T02:36
at 2016-04-10T02:36
By Hedwig
at 2016-04-11T17:39
at 2016-04-11T17:39
By Elizabeth
at 2016-04-14T02:50
at 2016-04-14T02:50
By Puput
at 2016-04-17T04:48
at 2016-04-17T04:48
By Hedy
at 2016-04-17T18:37
at 2016-04-17T18:37
By Poppy
at 2016-04-19T11:15
at 2016-04-19T11:15
By Leila
at 2016-04-21T01:57
at 2016-04-21T01:57
By Eartha
at 2016-04-25T19:21
at 2016-04-25T19:21
By Hedwig
at 2016-04-28T20:35
at 2016-04-28T20:35
By Olive
at 2016-05-02T11:45
at 2016-05-02T11:45
By Oscar
at 2016-05-05T18:50
at 2016-05-05T18:50
By Edwina
at 2016-05-06T07:37
at 2016-05-06T07:37
By Isabella
at 2016-05-09T16:29
at 2016-05-09T16:29
By Frederica
at 2016-05-11T03:56
at 2016-05-11T03:56
By Sandy
at 2016-05-11T14:53
at 2016-05-11T14:53
By Isla
at 2016-05-16T04:38
at 2016-05-16T04:38
By Dora
at 2016-05-17T04:29
at 2016-05-17T04:29
Related Posts
電腦和圍棋高手對弈 可以取勝 不足為怪
By Suhail Hany
at 2016-03-14T11:19
at 2016-03-14T11:19
人機對戰的熱潮後,要如何推廣圍棋呢?
By Ursula
at 2016-03-14T11:14
at 2016-03-14T11:14
張東岳解說李世石獲勝第四盤
By Kristin
at 2016-03-14T08:56
at 2016-03-14T08:56
古今世界圍棋高手的比較 / 圍棋基本理解
By Zanna
at 2016-03-14T08:16
at 2016-03-14T08:16
李世勝利至少5層內涵 圍棋將迎黃金時代?
By Noah
at 2016-03-14T06:14
at 2016-03-14T06:14