歡迎回來!

我們準備了親子幣小紅包要送給你!

  • 勾選2個喜歡的活動
  • 送出,立即登入領取親子幣100點
  1. 學校教育
  2. 親子教養
  3. 健康
  4. 閱讀
  5. 購物消費
  6. 玩具
  7. 桌遊
  8. 童書
  9. 教育書
  10. 戶外活動
  11. 旅遊
  12. 藝文活動
  13. 料理
  14. 優惠訊息
  15. 折價券
  16. 紅利點數
  17. 現金抵用
  18. 第二件折扣
  19. 進修
  20. 社群活動
  21. 投資理財
成語好難!作文好怕!交給無痛高效的學習法

台大教授:「戰勝自己」對AlphaGo而言,不只是口號


台大教授:「戰勝自己」對AlphaGo而言,不只是口號

翻攝自Google DeepMind官網

世界圍棋棋王李世乭和電腦AlphaGo的「人機大戰」引起舉世關注,台大資工系教授林守德分析:跟 AlphaGo學習「如何學」,或許是這場大戰中觀察到的不一樣的收獲。

我對圍棋一竅不通,過去也對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來表達的盤面。

*本文轉載自SHOU-DE LIN臉書

立即加入親子天下 LINE

您覺得這篇文章...愛投票 +5

您可能會喜歡

親子熱門影音

分享你的想法,送親子幣

NEW!試試看最新的親子貼圖

  • 讚
  • 謝謝 謝謝
  • 大推 大推
  • 借分享 借分享
  • 啾咪 啾咪
  • 有啟發 有啟發
  • 苦惱 苦惱
  • 哭哭 哭哭
  • 感謝 感謝

7則留言

+ 看前期討論
關閉視窗
回頁首

您的發問已送出,專家會盡快回答,感謝您耐心等候。我們會寄發通知email;或請您時常登入會員區,確認專家是否回答了唷!


請您為這次的「發問流程」評分?

目前問題的「分類」,您覺得:

送出

您想刪除發問的原因是?

已經知道答案
透露個人資訊
不想問了
其他原因
刪除問題
HashTag 檢舉