電腦與人 圍棋路上(2-2)
圍棋彷彿神賜予的黑白密碼,讓古今凡人忘神解讀,前仆後繼進入十九路的棋盤裡,踏上追逐極致的道路。只是,圍棋雖經過千世的輪迴,多少人費心苦苦追尋,至今千年的迷宮仍不見盡頭。而在人腦的開發達到極限後,最後到達終點的未必是人類棋士。電腦棋士可能將取代人類,衝向極致。
少了七情六慾 電腦擊敗人類
電腦戰勝人腦的例子首先發生在西洋棋身上。1997年,由IBM研發的超級電腦「深藍」(Deep Blue)挑戰西洋棋世界冠軍卡斯帕羅夫 (Garri Vaynshteyn),並以3.5比2.5的成績成功擊敗世界棋王,從此西洋棋邁入電腦時代。
西洋棋的人機大戰中,人類一下子從衛冕者變成挑戰者。九年後,人類棋王捲土重來,這次由俄國棋王克拉姆尼克(Vladimir Kramnik),對上由德國公司「西洋棋基礎」研發的「深沉德國兵」(Deep Fritz)。雖然人類棋王勝劵在握,但西洋棋電腦已非吳下阿蒙,最後棋王挑戰終告失敗。自此電腦等於稱霸西洋棋界,再也沒有人能在64格的棋盤上戰勝電腦,此番成就也讓許多人把圍棋的未來寄託在電腦上,希望某天電腦能代替人類達成神乎其技的目標。
比起電腦,人類棋手有先天的限制。如在80年代,單槍匹馬連敗日本棋手,為中國拿下三屆中日擂台賽優勝的中國棋聖聶衛平,就曾在自傳中公開表示:「自己有先天性心臟疾病,疲勞時腦袋容易缺氧,所以他參加比賽時常自備氧氣筒以防不時之需。」有一次棋聖聶衛平在迎戰日本大竹英雄九段時一度以為自己盤面情勢大好,沒想到吸氧回來後才驚覺形勢不妙,最後總算靠著冷靜著手才有驚無險的贏得勝利,令在場棋迷們為他捏了一把冷汗。
另外,下棋不僅僅是挑戰棋手的計算能力,更是一場心理戰;有時棋手會因心理壓力大而過度緊張,或是震於對手的氣勢而落敗,更多時候,棋手會因為一時大意或情緒受影響而痛失好局。日本圍棋九段依田纪基就以喜好在棋盤上「拍子」聞名,每當形勢危急時,依田就喜歡在落子時發出啪、啪的聲音,藉此擾人心神,增強氣勢,常能在劣勢中反敗為勝。
但「拍子」的策略對電腦可能就無法產生影響了。職業棋士周平強認為,「電腦不受外在條件的影響,比人類更能以平常心下棋。」電腦是機械構造,不會因體能的限制或是七情六慾而受干擾,或是失常,又具備優於人腦的計算能力,理應能在棋盤上做出作出最客觀的判斷,擁有比人腦更出色的表現。
圍棋變化多端 電腦難超越
但事實卻未必如此。雖然電腦在西洋棋的比賽中取得驚人的成績,圍棋電腦則不然。日本70年代的圍棋九段石田芳夫擁有優秀的精算能力,能在短時間內判斷形勢,算出最正確的棋路,曾多次獲得名人、本因坊等頭銜的他,被棋界譽為「人間電腦」,以此來形容他異於常人的細算能力。
早在60年代,電腦程式工程師便開始著手研究電腦圍棋,主要是用來測試深奧的數學題目,並在1970年由宙伯思Zobrist設計出第一個能與人類對弈的程式軟體,可是圍棋電腦的棋力一直不強,不但實力遜於職業棋士,連業餘棋士的程度都望塵莫及。而由於圍棋主要盛行於亞洲,鮮少有國際舞台,圍棋電腦的發展也一直未受到重視,直到電腦在20世紀末首度在西洋棋盤上打敗人腦,才有人開始問:「為什麼西洋棋電腦可以,圍棋電腦不行?」,臺灣應氏基金會甚至在1998年懸賞140萬美金,期待程式設計師能在21世紀來臨前設計出具有擊敗世界圍棋冠軍實力的電腦程式,但在西洋棋電腦首度擊敗人腦的15年後,圍棋電腦依然不是職業棋士的對手。
為什麼圍棋與西洋棋會有這麼大的差別?長榮大學資訊工程系教授許舜欽認為,「圍棋棋盤比西洋棋棋盤大的多,變化相對也多得多。」圍棋遊戲一般從19x19的棋盤上展開,開局之初共有361點供玩家選擇,並隨著遊戲進行遞減,換句話說,圍棋的變化是361的階乘,其解答是一個連計算機都放棄的天文數字。
如果硬是要算出圍棋變化的總數,東華大學資工所博士生周政緯表示,就算是學界也只有粗估的答案。就讀中文系的周政緯因大學三年級時迷上圍棋,而毅然決定轉換跑道,考進資訊工程研究所,專門研究電腦圍棋。對圍棋充滿熱忱的他說,學界公認的圍棋變化估計值為10的360次方(10^360),遠超過日本將棋(10^226),中國象棋(10^150)與西洋棋(10^123)。由此可知圍棋變化之多,古人形容為「千古無同局」。臺南大學電子計算機技士王惠民也認為,以現階段的電腦設備,配上無限的記憶體,「就算讓電腦算到地球毀滅那一天,也算不完圍棋的所有變化。」王惠民這樣形容。
灰色地帶 電腦也沒轍
不像西洋棋是從有到無,棋子會隨玩家棋步變得越來越少,圍棋是從無到有,棋子隨棋步增加,只會變得越來越多,而且每一顆棋子的功能多元。在西洋棋棋盤上,棋子的功能分明,騎士走「日」字,城堡走縱橫向,主教走斜向等;同時西洋棋的勝利方法也很具體:只要吃到國王就代表遊戲結束。因為走法一致,程式設計師能依照盤面棋子的位置、身份、以及棋子對國王的威脅度,為盤面打分數。電腦程式就能仰賴這些「審局函數」判斷最有利的下一步。
極小極大搜尋法假設電腦玩家在遊戲中有A和B兩種下法,電腦會先依照「審局函數」為兩個選項打分數,例如A的分數加上A(1)的分數大於B的分數加上B(1)的分數,電腦就會自動剔除B選項,選擇A下法。
(資料提供/周政緯;製圖/陳熙文)
(資料提供/周政緯;製圖/陳熙文)
程式設計師因此發展出一套電腦獨有的下棋思維,稱為極小極大搜尋法(Mini-Max)。極小極大搜尋法的好處就是,只要「審局函數」的設定越貼近現實,電腦的預測能力就越高,對抗人腦的勝率也就越高。
極小極大搜尋法賦予西洋棋電腦出乎意料的棋力,不但能有效壓制對手,甚至能遠遠超越人類玩家,但如此有效率的演算法在圍棋裡毫無用武之地。東華大學資訊工程系教授顏士淨說,「在圍棋的世界裡,棋子的功能全仰賴遊戲的變化,而判斷棋的好壞又全憑玩家的主觀意識。」如果要比較,他說:「西洋棋就像是一道有正解的選擇題,圍棋就像是一道沒有正確答案的申論題,任何下法都有它的道理。」人類無法提供電腦明確的參數,電腦也就無從計算。周政緯認為,發展圍棋電腦最大的挑戰就是如何教會電腦下棋。
在圍棋裡,每一手棋沒有對錯,只有主觀的好壞判斷。這和電腦的邏輯有很大的差別。臺南大學研究發展處研發長李健興表示,「電腦只知道0和1,只知道對與錯,無法理解『可能性』。」他認為,許多圍棋著手不是為了眼前的實利,而是考慮到未來的發展性。如「棄子爭先」就是老手經常訓誡後輩新手的圍棋教條,但棄子本身是損己利人的行為,電腦無法了解為什麼做一件對自身不利的事情能夠帶來有利的局面,也不明白先手的價值。就算設計師為電腦輸入「棄子爭先」的設定,要何時「棄子爭先」,何時「保子求生」,這個問題就連設計師自己都難以回答。圍棋雖然只分黑白,卻有許多模糊的灰色地帶,這些都成了電腦要學會下棋最難逾越的障礙。
一線之隔難斷定
其實,就算是職業棋士對每一手棋的好壞也都沒有定論。在棋界,棋士之間對一手棋的判斷有出入是常有的事情。有時甚至一手好棋也可能變成惡手。在2008年第十屆韓國農心盃中,日本山田規三生九段在第六局對上韓國姜東潤九段,山田原本穩操勝算,沒想到對局進入中盤,山田的局部好手反倒變成惡手,最後只好投子認輸。對職業棋士來說,好手與惡手的差別也只有一線之隔,如果人類都無法找出一個圍棋通用的準則,電腦又該如何判斷棋步的好壞?
中國數學家吳文俊曾說,「圍棋要做到真正能夠進行數學處理,首先要考慮建立數量的關係,就是要『定量』。」如果無法做到這一點,要讓電腦學會如何下棋就變得相當困難。有專家大膽推測,圍棋電腦如果要戰勝職業棋士,起碼還要再等一百年。正當大家對圍棋電腦的前景一致看壞,圍棋電腦的棋力突然有了長足的進步,甚至直逼職業棋士的程度。
蒙地卡羅法 電腦圍棋的曙光
蒙地卡羅方法是一個在40年代發展而成,以機率為基礎的電腦演算法,並在70年代首次運用在圍棋電腦上。基本上,這個方法就是將問題作隨機的抽樣調查,進而釐清實驗對象的行為和特性。蒙地卡羅方法等於將圍棋的每一個點隨機測試1000次,將每一點的勝率作為「審局函數」,最後推論出最好的棋步。周政緯表示,「蒙地卡羅法雖是一種可行的辦法,但要測試每一種可能的下法不僅耗時,而且勝率高的棋步也未必是正確解答。」
於是在蒙地卡羅法的基礎上,2006年分別來自匈牙利的柯西斯(Levente Kocsis)和加拿大的季佩斯伐利(Csaba Szepesvari)兩位教授合作發展出蒙地卡羅方法的進化版,「樹狀結構信賴上界法」(Upper Confidence Bound for Tree Search, 簡稱UCT)
比起UCT,蒙地卡羅法就像是一名菜鳥刑警,把每一位奉公守法的市民都當作嫌疑犯,進行調查。反觀UCT如同一名有經驗的警探,它會優先調查有前科的嫌犯,再慢慢擴大調查的對象。
UCT(樹狀結構信賴上界法)的原理在於將圍棋裡每一個可能的下法化作一台台吃角子老虎機,每一台機器都有不同的回收率,電腦的任務就是要在200台吃角子老虎機中得到最大的收益。
(資料提供/周政緯;製圖/陳熙文)
(資料提供/周政緯;製圖/陳熙文)
顏士淨認為,UCT更像一名玩吃角子老虎機的投機賭徒,它必須不斷嘗試新的機器,並累積經驗來決定哪一台吃角子老虎機的勝率最高。他說,「透過UCT的加持,再針對某些下法予以加權,圍棋電腦的下法就越接近人類,棋力也突飛猛進。」
周政緯表示,當今最厲害的圍棋電腦大概是由日本民間企業自行研發的Zen,大約有業餘六段的棋力。Zen不僅在軟體之間表現突出,更在今年3月挑戰日本圍棋九段武宮正樹,在讓四子局中意外連勝對方兩局;並在今年六月,在讓六子局中連敗台灣圍棋四段張凱馨和圍棋六段周平強,顯示圍棋電腦的實力已直追職業棋士。王惠民直言,圍棋電腦可能在未來十年內與職業棋士分庭抗禮。
人腦結合電腦 追求巔峰
或許,在追求神乎其技的道路上,電腦並非人類的對手,而是伙伴。2005年,線上西洋棋網站Playchess. 舉辦了一場有趣的西洋棋錦標賽。參賽選手可以自由與其他選手或和電腦組隊參賽。在比賽中,人類加電腦的組合竟然所向披靡,甚至成功打敗超級西洋棋電腦「九頭蛇」(Hydra)。電腦與人類合作或許能在圍棋中上演!
李健興表示,「這是一個非常有趣的想法,也是未來發展電腦圍棋的目標!」周平強也說,「現階段,電腦圍棋確實還不如人類棋手,但如果棋手利用電腦作為輔助的工具,棋力必將大增,畢竟電腦的計算能力比人類強得多。」在不久的將來,人類和電腦或許將共同攜手走向神乎其技的終點。
註:本文與「科博文」網站同步聯播。
沒有留言:
張貼留言