為什麼AlphaGo不懂圍棋規則也可以擊敗棋王?

為什麼AlphaGo不懂圍棋規則也可以擊敗棋王?
圖片來源:《自然》期刊

我們想讓你知道的是

AlphaGo每下一步棋,都是累積了歷史棋王的功力,並先驗算可能勝率,再決定走法,可說步步為營,步步機關算盡,當然不是人腦可以比擬。

原理簡單,但實務上要怎麼學習?靠深度神經網絡。神經網絡是一種模擬人類腦神經系統的運算流程,有資料輸入端與輸出端,中間則是運算神經元,透過一次次學習,比對輸出資料與正確資料的差異,反饋調整神經元的運算參數,便能學會某種運算技能。

神經網絡在電腦學習的最初運用是手寫文字辨識,將字體寫在10X10方格上,每一小格當成輸入資料,有墨跡是1,沒墨跡是0,然後送往神經元進行運算,最後判斷這是什麼字,再公布答案看差多少,然後據以修正運算參數,以提升正確率。這就是所謂的監督式學習。另外一種是無監督學習,也就是沒有老師只靠自學,也沒有標準答案,而學習目標通常只是把輸入資料做一個分類,沒有對錯問題。

深度神經網絡的意思,就是運算神經元有許多層,每一層處理原始資料的一種特徵,多層加總起來,運算能力更加強大。然而當原始資料很複雜,比如像圍棋棋譜,如果每一個神經元都接受來自所有方格的資料,那麼電腦處理效能容易破表,於是卷積神經網絡出現了。

卷積網絡就是AlphaGo使用的兩種神經網絡之一,另一種是增強式學習網絡。卷積網絡的運算神經元,只接收來自棋盤上鄰近方格的資料,而非棋盤全部資料,大大簡化了處理程序。AlphaGo從棋盤擷取四十八種特徵,也就是布局方式,再利用十三層神經網絡,分層處理各項特徵,然後透過反覆學習調整參數,而學會辨認眼前的棋局。學成以後,只要看到每個棋局,AlphaGo便能辨認,如果是棋王來下,下一步會怎麼走?猜中的機率高達57%。

於是上面提到的,AlphaGo要選擇十幾二十步來做估算,便是透過卷積神經網絡,找出歷史棋王最可能走法的前十幾二十種,來加以演算。此外,為了增強對戰能力,還利用增強學習網絡,讓AlphaGo自己跟自己對戰,或者跟先前下過的棋局對戰,以累積更多實戰經驗。

增強學習網絡是一種半監督式學習,它沒有標準答案,但如果程式下贏了棋局,便會得到正向回饋,下輸了便會被扣分,跟人類學習一樣,由此慢慢累積學習成果,越學習越厲害。實施以後,AlphaGo可以輕易打敗以其他方法做演算的圍棋程式。此外,因為這類學習需要比較久的時間,AlphaGo也另外用傳統演算法實施快速布局網絡,推算棋王下法,雖然命中率只有兩成多,但耗時短上許多。

好了,差不多就是這樣了,至此AlphaGo已經闖過十八銅人陣,可以出少林寺下山挑戰高手了。只要對方下了一步棋,AlphaGo便能算出歷史棋王,比如本因坊秀策,接下來會怎麼走,吳清源會怎麼走,然後將最可能的十幾二十步棋,進行蒙地卡羅樹枝演算,找出勝算最大的一步,做為下一步走法。

須知蒙地卡羅演算法找下一步棋時,並非窮盡所有可能,而是用多臂老虎機演算法,也就是選擇吃角子老虎機器的方法。如果眼前有五台吃角子老虎,要選擇哪一台來玩,可以贏最多錢?一個方法是試了三台以後,選擇勝率最高那台,但其他兩台呢?說不定勝率更高,但也可能較低,於是就要在利用現行優勢與探索新可能之間做一個取捨。蒙地卡羅搜尋法便是依此原理選擇下一個可能走法,再進行接下來的模擬運算。

所以說AlphaGo每下一步棋,都是累積了歷史棋王的功力,並先驗算可能勝率,再決定走法,可說步步為營,步步機關算盡,當然不是人腦可以比擬。但也因為靠的是機率,還是有算錯可能,使得李世乭還能在五盤裡贏得唯一一盤。人腦還是可能下贏AlphaGo,但它的學習能力越來越強,越來越難被打敗。

AlphaGo的成功讓人開了眼界,原來學習也可以是這個樣子,不懂遊戲規則也可以下贏棋王。其實很多時候人們的學習也是如此,比如母語學習,都是不懂語言規則,靠著模仿而來的學習。

人生一局棋,要下每一步前,應像AlphaGo一樣,從成功前輩累積經驗,找出可能獲勝的幾步,然後加以推算,再選出勝算最大的一步,然後努力往前衝刺。

你的人生,下對棋步了嗎?

本文經作者授權刊登,原文發表於沈政男臉書

責任編輯:翁世航
核稿編輯:楊之瑜