2017年2月3日 星期五

【雜文】五目與連珠:淺談西方與東方的文化風格暨談無運氣棋盤遊戲中的ai

【五目與連珠:淺談西方與東方的文化風格暨談無運氣棋盤遊戲中的ai

一、無運氣棋盤遊戲為何困難:以圍棋為例

  五目和連珠是兩種現代的五子棋,最簡單的區分方式就是禁手的有無。在我們切入這個主題之前,我想先談談一個和五子棋很像的棋類:圍棋。對於圍棋我認識不多,九路還勉強可以有一點樣子(然後才被殺爆),十九路的話,在布局階段基本上就沒辦法了。有太多東西是需要反覆記憶與練習的,在開始理解之前,早就兩眼昏花。去理解圍棋的困難在思辨層次上是很有趣的。就規則上,圍棋非常簡單(除了「打劫」是初學者比較沒辦法自己了解的之外):輪流下棋、被圍住的子提掉、圍到最多地的人贏。照道理來說相當簡單。然而十九路棋盤非常大,有19x19的著棋點,下法的變化有很大的空間,就這點來說又很複雜。而雖然這麼多種下法,經歷這麼多年,人們也早就知道下哪裏比較好,下哪裏比較不好。例如說吳清源當年下第一手33或第一手天元都被斥為邪魔歪道。長年的研究之後,棋譜多了,下棋也出現了大量的定式。某種意義下,對定式研究的深的人就有決定性的優勢,在這個意義下,圍棋又變簡單了,因為它沒有(如卡牌遊戲或骰子遊戲的)隨機性。

  當然,真正的職業對決絕對不只是定式的對決,然而就理論上來說,具備越完整的棋譜的一方,就越有可能勝出。但就像前面提到的,對於圍棋的初學者而言,大量的棋譜要能全部吸收需要付出非常多的時間與心力。除了研究棋譜,還需要透過對弈來融會貫通。即便是極具天份的職業棋士,可以全心投入地學習,也很難在短時間內提升棋力。但在這幾年裡面,一個傑出的棋手卻在短時間內爬到了世界頂尖的位置。那個棋手也就是大家眾所周知的AlphaGoAlphaGo如何成為一個強大的棋手呢?其實也就是先把一大堆棋譜「背起來」,然後再透過跟自己對下來「學習」怎麼應用。基本上和人類的學習方式已經相當接近了。但隨著運算能力的增強,再過幾年它應該能下出更「奔放」且離棋譜越來越遠的棋了。[1]所以,雖然現在的升級版AlphaGo「可能」還不能百分之百勝過人類,只要它繼續升級(提高運算量、吃更多棋譜、對弈更多局),不用幾年它就能夠得勝了。但在目前,最強的五子棋ai還是被人類冠軍虐。[2]之所以會這樣,當然有一個原因是Google沒有砸大錢做一個五子棋軟體。但從另一方面來說,五子棋ai的困難程度,很可能不亞於圍棋。

二、五子棋的後手補償:五目(Gomoku)與連珠(Renju)

  如全文一開始所說,現代五子棋分為兩種:五目(Gomoku)和連珠(Renju)。之所以會有這兩種棋類,是因為一個幾乎所有遊戲共通的難題:先手優勢。任何講求公平性的遊戲,都會盡可能地對後手進行補償。例如說圍棋的貼目(由於過去的五目半在高端棋士中仍然對於黑手有優勢,現在幾乎都改為六目半,在中國和台灣,甚至改為相當於七目半的貼目。)、「爐石」的後手幸運幣、「歷史巨輪」準備階段遞增的行政點數等。而「原始規則的五子棋」這個眾所皆知的先手必勝(1992年已經有人用程式算出原始規則下的必勝下法並給出「地毯式棋譜」)的遊戲,自然也需要在規則中加入後手的補償,否則當兩人棋力相當時,就只是一個誰先誰後的運氣遊戲而已。[3]總之,距今約一百年前,日本人為了挽回五子棋的先手優勢,開創了第一個「禁手」:禁三三。之後由於黑手的優勢仍然太大,增加了黑棋在長連和四四的禁手。但這些禁手在最高端的棋手的對奕裡面,還是無法完全扳平黑手優勢。所以又增加了「山口規則」、「Soosyrv規則」等複雜規則。這才大抵上讓對局雙方不會一開局就有明顯的優劣勢。

  而當五子棋傳到歐洲,歐洲人並不那麼喜歡有禁手的連珠規則。他們想到了一個相對簡單的方式,那就是:「第三手不能下在第一子的5x5範圍內」。這麼一來,第一:變化變多了,可參照的棋譜不能那麼容易的應用了。第二:第一子和第三子的距離變遠,黑棋多一子的優勢不會太快發揮作用。不過,想當然爾這種想法是太過天真了。雖然第三手看似有非常多種選擇,但任何人都會下在7x7的範圍裏面,所以(扣除了對稱)還是只有二十幾種開局,和傳統的26開局沒有差太多。而多一子的優勢,在中間只隔兩子的範圍內還是非常大。所以1989年和1991年辦了兩屆後,Gomoku世錦賽就停辦了好幾年。而 Renju 世錦賽的連珠規則,則是從一開始就加入了三手交換和五手兩打(RIF規則)。一直到2009才改成開局前增加打數的山口規則,而今年的比賽則將改為三手和四手各有一次交換權且由第四手決定打數的Soosyrv規則。而Gomoku世錦賽在2009復辦之後才採用了帶有三手交換或五手交換選擇權的 Swap2規則。所以,綜合說起來,五子棋的後手彌補基本上是建立在「交換權」上。也就是說,先手不能下最有利的棋(當然也不能下最差的棋),否則會變成把優勢拱手讓人。黑棋被迫下最平衡的棋,好讓白方換或不換都不能取得大優勢。但GomokuRenju在「交換權」之外的差異卻是有趣的,在我看來,它恰恰反映了東方與西方的某種文化風格傾向。

三、西方文化與東方文化在五子棋規則改進上的展現

  在1970年代有一個美國嬰兒和日本嬰兒的比較研究,這個研究透過觀察嬰兒父母(當然,在那個年代,照顧嬰兒的只有母親,父親不是在工作就是在客廳翹二郎腿看報紙。)對待嬰兒的方式以及嬰兒成長的傾向,討論美國和日本在教養上的差異,以及這些教養對於嬰兒前概念和前語言的背景踐行發展的影響,這被我尚未完成的碩士論文的主要對手拿來用於說明人類活動中有相當大的部分是非概念化的。那篇論文提到:

  「日本的小孩似乎是比較被動的,他會很安靜地躺在那裏,他的媽媽會做很多的哄騙、搖一搖他的身體,安撫讓他的小孩不要哭鬧,通常是用身體來跟小孩溝通,而不是用語言;令一方面,美國的嬰兒是比較主動的,而且會探索環境,他的媽媽在照顧小孩的時候,會有更多的眼神交流和聊天,去刺激他活動並且做口頭的回應。

  這就好像美國的媽媽想要一個有聲的、活潑的寶寶,而日本的媽媽想要一個安靜、滿足的寶寶。就兩個文化中母親的照顧風格來說,她們得到了她們顯然想要的。……很多的文化學習,在三到四個月大時,就已經發生了。寶寶在這個時候已經學習到要成為日本的寶寶還是美國的寶寶。」

  而這類的情況,在「原始規則的五子棋」這個「寶寶」上,也看到了類似的事情。日本的「媽媽」(那些職業棋士以及協會裡的規則研究者)想要的是一個可以控制的、減少變化的規則,所以他們拿掉了某些讓黑棋太容易獲勝的棋步,藉由「禁手」這樣的限制,來讓五子棋變成「安定」、「乖巧」的Renju。即便是看似比單純的RIF增加了選擇,其實仍然是在限縮棋手,因為第五手越多打數,就只是讓黑棋的情勢越不看好,所以任誰也不會把這個數子喊得太高。(反之,太低的話黑棋又會太強。所以很快的,最佳選擇又會被研究透徹)而歐美國家在面對五子棋的時候,反而是增加它的自由度,不禁手、甚至起手也不必下在天元,變化變得更多,更難研究透徹。彷彿他們想把五子棋變成「活潑」、「會探索各種可能性」的Gomoku,藉此來讓黑棋的優勢難以完整發揮。

四、五子棋ai所遭遇的困難

  從這裡,我們再次考察五子棋ai的困難。首先,光是對一個人類棋手而言,要能同時精通RenjuGomoku就已經不是一件容易的事情了,對於ai開發者也是一樣。它們雖然基本規則和遊戲目標有很大的共通性,但其實已經是兩種不同的棋類。就像九號球和14-1的不同、三對三鬥牛和全場籃球的不同、德國現象學和法國現象學的不同。在高端的職業場裡,兩者所需要的訓練會有很大的差異。第二,五子棋不同於圍棋,圍棋是「計分」的,你下的每一顆棋到最後都和你的分數(目數)有關。但五子棋不一樣,除了連成一線的那五顆,其他的子在終局的時候都沒有用處。(當然,在這裡我並不把長連裡面的五顆當成連成線的五顆,畢竟它是沒有效力的。)所以五子棋的程式會面對一個兩難:「局部」或是「整體」。

  對於圍棋ai而言,它每一步的目標都是讓此步是勝率最高的棋步。也就是此步一下,終局時目數會比下別步來得多。但對五子棋ai而言,它下的這一步是使它更容易完成「某一條五」,或者退一步說,更容易完成某一個「三四」(對白棋或者無禁手的規則而言還包含「三三」或「四四」)。然而,假設它沒能成功完成這一次的進攻的話,在接下來的布局裡面,它的佈局就有可能不是最佳的。一個真正頂尖的五子棋ai初次成功的時候,應該會得到像AlphaGo初戰勝歐洲冠軍的時候,當時裁判托比·曼寧(Toby Manning)給它的評價一樣:「棋路不像人類棋手那樣富有進攻性。它會非常冷靜地落子,而非積極地侵略……」對五子棋而言,也就是「除非確定能贏,否則不貿然作連續攻擊」。如此一來,在持黑的情況下,ai的優勢會降低,因為多一顆棋的優勢會在棋步下的越多時變得越少。但這也代表,它會錯失相當多本來可以贏的機會,而不是像圍棋那樣,優劣一旦出來就會越來越難翻盤。同時,沒有大局觀的五子棋ai也不容易看到多步之後才會發生的攻擊,在防守上也會變得更不容易。而五子棋的棋譜沒有圍棋那麼多,也使得五子棋ai沒辦法像AlphaGo那樣透過「大量的學習」進步神速。只能透過演算法「自己想」新招。

  而事實上,在Gomoku上,目前最強的五子棋ai奕心(Yixin)和職業棋手Alexander Bogatirev打成平手。而在Renju,則是如前面講的,人類棋手獲勝。這件事情其實也是有趣的。在更多的限制下,能下的棋越少,照理說對於大量運算的ai而言會能算得更縝密,而更自由的下法則對「沒有心智」的ai而言更困難。然而,事實卻恰好相反,上述的這個困難對於人類而言比對於ai更明顯。在Gomoku裡,由於盤面時常是沒有棋譜可看,需要全部自己思考過,所以人類犯錯的情況更多,而且人腦思考所花的時間也更長,所以難以勝過ai。在Renju裡,有太多的棋步是棋手早就研究過了的,怎樣的盤面會有哪幾個進攻點也是棋手可以相對較快看到的,反而能夠力克ai。也就是說,在Gomoku中,整體的大觀沒有Renju重要,所以棋手很難聲東擊西「騙過」ai。奕心只要在每一個局部戰中勝出,就可以擊敗Gomoku選手了。所以,完全勝過應該也就是幾年內的事了。相反的,我認為,比起圍棋,Renju才會是人類在棋盤上的最後一塊堡壘。或許Renju在某個意義上就像海上鋼琴師說的一樣:「在有限的琴鍵裡面演奏音樂」,在ai能夠有辦法在Renju上打贏人類的時候,在技術上,離它們能夠創作出大師級的音樂的時候也不遠了[4]


後記:我本來只是想抱怨一下BGA(線上桌遊網站)上的五子棋是沒有禁手、沒有交換的「Gomoku-Pro」,難度不夠高。但卻衍生出了這麼多有的沒的……



[1] 這部分是關於演算法的事情,我不打算談太多。簡單地來說,ai一直沒辦法攻下圍棋,是因為對於要窮舉一切下法而言運算量太大。而AlphaGo所使用的「蒙地卡羅樹枝搜尋」就是在不窮舉的情況下,現階段最有效的辦法。也就是說,只要電腦的運算能力越強大,任何的演算法最終還是比不上窮舉法來的「百密不疏」。只要運算能力更強,它就可以更窮舉、更「暴力」,這也就是為什麼分散式運算的AlphaGo比單機版的強那麼多的原因。
[2] 好啦其實沒有虐,但贏不了人類就是了,AlphaGo五場輸一場人類就鬆了一口氣了。 Epifanov Dmitry(當時ELO最高的棋手)跟「奕心」的八局賽是:422平。就我們對ai的「高標準」而言,奕心當然是遠遠不足。
[3] 當然,像爐石那種有最後手補償卻還是運氣遊戲的也是有。但爐石這種騙錢遊戲,怎麼能拿來跟有一千年歷史的五子棋比呢?
[4] 當然,除了技術上,我們還需要克服美學價值評估的問題,例如說「藝術作品有沒有絕對的好壞」、「什麼才是一個好的藝術作品」。但技術至少可以讓ai做出「像某個或某幾個(或某種風格的)藝術家的作品」,所以要某種程度上做出「大師級的音樂」理論上是可以的,但這就不是我們這裡所主要要討論的了。