所選期刊
VOL:16期

AlphaGo走出好棋步

寄居蟹的換殼人生科學少年編輯部

電腦圍棋程式終於擊敗了人類圍棋高手。

今年3月初,圍棋電腦程式AlphaGo和韓國的九段職業高手對局五盤,以四比一獲勝,讓全世界的人都驚呆了(認真)!轟動程度超過當年電腦擊敗西洋棋冠軍。圍棋那麼難,為什麼電腦可以贏人類?

對於電腦來說,圍棋當然比西洋棋難多了。西洋棋的格數有64格,圍棋有361格,棋局的總排列組合數高達10的171次方。另一個差異是西洋棋、象棋之類的棋局,棋子有下法的限制,例如兵、卒就只能往前走,圍棋棋子則是「空降」在棋盤上的任何一個空格上。最後,隨著棋局的演進,西洋棋盤面上的棋子通常愈來愈少,但是圍棋卻愈來愈多,愈下盤面愈複雜。所以要真正計算出必勝步法,電腦實際上還做不到。

那麼AlphaGo是怎樣擊敗人類的呢?它運用了二種新穎的計算策略。首先是「卷積神經網路」,這種結構有學習的能力,之前是用來進行圖像辨識的,例如你可能在網路上使用過的「以圖找圖」功能。程式如果要辨認人臉,會先注意圖片中是否有眼睛、鼻子、嘴巴之類的特徵,而不去理會沒有這些特徵的圖,這樣就會省下許多力氣了。下圍棋也是一樣,AlphaGo可以經過學習後知道棋盤上哪些區域是要優先考慮落子的。所以AlphaGo得持續下棋,然後自己「學會」下棋的邏輯。

另一個計算策略叫做「蒙地卡羅搜尋樹」。蒙地卡羅這個地方有很多賭場,賭場骰子出現的點數是靠機率的,蒙地卡羅搜尋樹也是靠機率,先隨機產生一個下法,然後再回頭驗算這個下法的獲勝機率有多高,挑選高的棋步下。這時AlphaGo會計算自己與對手的棋步,然後找出最佳棋步。
這樣電腦不就好棒棒,天下無敵了?但是實際上電腦輸了一盤。因為這些演算方式無法找出「絕對正確」的棋步,而是找出「最佳」棋步。所謂「最佳」是指在時間、計算能力有限制的情況下所得到的最好結果,但那不一定是絕對會贏的結果。所以啦!AlphaGo只是厲害的下圍棋程式而已,它要下西洋棋的話還得重新學一次。如果要它指揮機器手臂,好好從樹上摘下已經成熟的蘋果,那更是辦不到!

[更多詳細內容請參閱《科學少年》2016年5月 ]