yamiyodare 在上篇已經講解清楚演算法了,
我這篇以我理解的方式做個化簡,讓一般人更容易理解,有錯請指正。
下一盤棋最重要的兩件事,
一是盤面形勢判斷,AlphaGo 估計盤面勝率的套件稱為 value network,
二是在當前盤面下,找出最佳落子。
給出最佳落子的候選著手,此套件稱為 policy network,
而最佳落子的選擇,透過 MCTS 驗證,簡單說大量重複由現在盤面玩到結束,
是隨機著手(不是固定著手),由落子候選集合找出勝率最高的落子。
但是圍棋的盤面可能性超過宇宙原子總數,
我們沒有神之盤面形式判斷和神之最佳落子判斷,
所以人們可以不斷地樂此不疲的追求著神之一著。
AlphaGo 是怎麼找出比職業棋士更棒的盤面形勢判斷?給出最佳落子候選呢?
policy network,最佳落子候選集合這部分,AlphaGo 首先是學習人類著手方式,
類神經網路可以學習人類的落子方式,但類神經網路學習時,需要有足夠樣本,
網路世代的來臨給了足夠人類對局樣本,最初的最佳落子候選集合基於人類對局經驗,
由人類經驗開始,透過 3000 萬盤自弈修正發現出更好的落子候選集合。
同樣的,類神經網路透過學習那 3000 萬盤自弈的勝負結果,
value network,盤面形式判斷這部分,就有了比職業棋手更準確的盤面形式判斷依據。
補充一下,AlphaGo 目前的訓練方式並不是無敵,但無敵在人類棋手這部分
有足後的訓練後,AlphaGo 就下出了人類無法到達的高度,在這節錄某段話,
一個棋局是由幾百個落子構成的,每一步的小幅度準確率提升,
經過幾百次不斷累積,那最終結果差異是非常大的,
這就是所謂的「積小勝為大勝」的道理。
這是機器對人很大的一個優勢,因為它穩定,
如果準確率達到一定程度,就不容易出昏招,
只要依靠每一步的小優勢不斷積累就能獲得巨大的累積優勢。
AlphaGo 的機率選擇落子方式,其問題可以明顯的體現在
AlphaGo 單機版對上伺服器版竟然還有 23% 的勝率,
以暴力法的下棋選擇,單機版只會輸不會贏,可惜的是,
AlphaGo 的落子不好的部分,機率上來說人類是無法利用到的,
不過只要出現更強的演算法,新的圍棋軟體就能曝露出 AlphaGo 的弱點,
所以圍棋未來的研究方式,一定會加入演算法的研究,
以追求神之盤面形式判斷和神之落子。
※ 引述《yamiyodare (shantotto)》之銘言:
: ※ 引述《bbbtri (cycling)》之銘言:
: : 本來想問這裡沒有人有可以出來解釋一下這篇(講AlphaGo用的演算法)
: : http://benkampha.us/posts/2016-03-11.html
: : (不過不知道為什麼, 連結好像失效了?)
: : 只大概看了一下, 因為連什麼是hand coded evaluation都一頭霧水啊 XD
: : 其中提到兩種演算法, 一組叫policy network,用來模仿人類的棋步, 很妙
: : 另一組是value network,用以判斷一個棋步有多少價值(應該無關好壞,而是目數)
: : 前者還有分階段, 先supervised後reinforcement
: : 而後者並不是放手讓電腦自行去繞,而是有給點指示
: DeepMind 學習打磚塊的過程
: https://www.youtube.com/watch?v=V1eYniJ0Rnk
: 人類給予的提示只有把分數提高, 自我訓練幾個小時就可以達到專家的水準.
: 一開始 AI 亂數決定移動的方法.
: 後來它會發現到亂到特定的地方不漏接球能提高分數,
: 給予的回饋會強化類神經網路讓它的移動方式盡量不漏接.
: 厲害的在後面, 最後它會學到先鑽通道是最有效的得分方式.
: 這不是人教的, 人只跟它說, 把分數給我打高, 其它自己想辦法.
: 但像圍棋這麼複雜的東西, 直接用亂數下學習的過程太緩慢了.
: AI 的做法是先盡量下的跟高手一樣, 因為高手可能的下法幾乎包含了最佳解.
: AI 從這些候選走法往下找可以節省大量時間空間.
: 透過大量的高手對戰譜訓練出一個迅速模仿高手次一手的 policy network.
: value network 是型勢判斷, 給予一個特定盤面就能夠迅速回報勝率.
: AI 開出千萬分身自我對練高手的棋路到終局 (最後誰贏電腦可以判斷的夠準)
: 然後回溯盤面, 訓練出一個可以估計任何盤面勝率的 value network.
: 目前看起來訓練的越多, 估計的會越準確 (棋力越高)
: 如果任何盤面勝率都可以正確估算, 基本上圍棋就被破解了.
: 因為電腦可以知道從第一手到終盤的最佳走法.
: 拿黑棋如果不貼至少會贏幾目, 而且只有特定棋譜可以達到.
: 有了 policy network 跟 value network,
: AI 就可以試下各種高手次一手, 再加上有效率的蒙地卡羅搜尋法,
: 盡可能把勝率高的次一手展開往下運算, 提高勝率估算的準確度.
: 可以把它想像成很多高手提供次一手的下法, 那就來下下看, 看誰說得對.
: 但要留意, AI 的目標是勝率最高 (反擊手最少), 不是目數最多, 不是棋型最美.
: 看 AlphaGo 下棋會讓我想到以前打道策的譜, 許多著手都是天馬行空.
: 怎麼看都很奇妙, 但最後就是會贏.
: : 大概是這樣, 不過我更想知道這個convolutional neural networks是什麼?
: : 和節點的類神經網路有什麼不一樣啊?
: convolutional neural networks 是類神經網路的一種
: 它的概念是想模仿生物的視覺, 同時具有巨觀跟微觀的觀察能力.
: : 人可以像時間暫停般做收官的, 除了AI, 恐怕還是只有李昌鎬做得到
: : 但現在已經不是李昌鎬的全盛期了....AlphaGo還是來的太晚了
: : 我覺得很可惜啊
: : 好在官子不是圍棋唯一的特色
: : 李世石這個有閱歷又藝高人膽大的, 多變的風格正適合這種前無古人的對局!
: : 在經過兩次對局、探到對手的能耐後, 他會進行什麼樣的布局?
: : 畢竟, AlphaGo會進步, 而李世石也會啊!
: : 期待明天的對奕~
: 我在想甚麼樣的方式可以打敗 AlphaGo
: 因為 AlphaGo 是模擬高手次一手, 人類下出前所未聞的好手 (新定石新型新佈局)
: 才有機會把 AlphaGo 導向勝率估不準的局勢上 (因為對練很少往那邊下缺乏經驗)
: 舉例而言, 應該沒有人比武宮正樹更懂宇宙流.
: 假設 AlphaGo 回到武宮以前的時代砍掉重練, AI 對於宇宙流的局勢不熟.
: 武宮對 AlphaGo 用三連星開局或許可以把 AlphaGo 壓著打.
: 不過壓著打也是一時, 跟武宮下棋 AlphaGo 可以學到宇宙流的各種變化.
: 透過自我對練熟悉宇宙流的各種局勢, 從而做出較準確的估計.
: AlphaGo 你打贏它, 它就會再度進化.
: 人類生命有限, 技藝的傳承速度緩慢.
: AI 可以有效的繼承人類全體的經驗, 加速技藝的提昇.
: 藤澤秀行曾說, 圍棋如果有 100, 他最多懂的不過 6、7.
: 有沒有想過, AI 繼續發展下去可以讓職業九段兩子三子甚至九子?
: 人類要探索圍棋的極限, 得靠 AI 的輔助.