□文/姜姝姝
游戲力:人機(jī)對弈五十年小史
□文/姜姝姝
近日,AlphaGo2.0來中國,與它有關(guān)的中國烏鎮(zhèn)·圍棋峰會在5月23日于烏鎮(zhèn)舉行,“人機(jī)大戰(zhàn)第二季”大幕拉起。實際上,圍棋領(lǐng)域的人機(jī)大戰(zhàn)并不是一個“新鮮”話題。圍棋作為一種開啟智力的“游戲”,人機(jī)對弈已有近50年歷史。
究竟是何人發(fā)明了圍棋,說法甚多。追溯流傳最久最遠(yuǎn)的一種說法是“堯造圍棋,丹朱善之”。這句話據(jù)傳是出自已佚名的《世本》一書,《世本》相傳成書于戰(zhàn)國時期,司馬遷也曾采用過不少《世本》中的資料,但《世本》并沒有流傳下來?!洞笥倏迫珪分姓f:“圍棋,公元前2356年起源于中國。”《美國百科全書》說:“圍棋于公元前2300年由中國發(fā)明?!惫?356年,即堯即位元年,顯然世界上最權(quán)威的百科全書,所依據(jù)的也是中國“堯造圍棋”的傳說。
但根據(jù)比較可靠的考證,圍棋不是一發(fā)明出來就完善到今天這個樣子——橫豎十九道。敦煌及河北等地就曾出土過十七道的圍棋盤和圍棋子及其他資料。至于相傳堯造圍棋一說,與神農(nóng)氏嘗百草的傳說也有異曲同工之處。
圍棋最先傳入東鄰日本,是在南北朝時期,這也是圍棋發(fā)展的一個重要階段。當(dāng)時已經(jīng)開始按棋藝的高低將棋手分為不同的等級。南朝的梁武帝為了推進(jìn)圍棋的發(fā)展,設(shè)立了“棋品制”,將棋品定為“九品”,沿襲至今的段位制即來源于此。十六世紀(jì),渡海而來的歐洲人也初次接觸到了中國的圍棋。著名傳教士利瑪竇在自己的日記里記載,中國人有好幾種這類的游戲,但他們最認(rèn)真從事的是玩一種在三百多個格的空棋盤上用兩百枚黑白棋子下的棋,一望即知,這顯然是在介紹圍棋。
圍棋的英譯名Go是日語的發(fā)音譯來的,圍棋在日語里寫成“碁”(即GO的發(fā)音),把圍棋譯成Go或者The game of go大概是最蹩腳的翻譯了,尤其是在互聯(lián)網(wǎng)時代,把圍棋譯成Go非常不利于圍棋的推廣,但AlphaGo的出現(xiàn)或能改變這個事實。
當(dāng)然,還有一些西方人認(rèn)為,圍棋是外星人發(fā)明的,是外星人給地球人的禮物。談到這個問題,聶棋圣曾經(jīng)快人快語,“我猜測,圍棋應(yīng)是外星人創(chuàng)造的。當(dāng)然,對于這一說法,我也沒有證據(jù)。我只是覺得,圍棋太深奧了,人類不可能創(chuàng)造出來”。的確,公元前2000多年距今已有近5000年,能發(fā)明出像圍棋這樣高智慧的競技模式是一個謎。
游戲是知識之源,自古以來,圍棋備受帝王、將軍和知識分子、神童的喜愛,在國外包括愛因斯坦、約翰納什和圖靈等都是圍棋的愛好者。
棋類游戲是人類智能的挑戰(zhàn),自然也成了人工智能的標(biāo)志之一。而圍棋一直被認(rèn)為是人工智能領(lǐng)域里的非常困難的挑戰(zhàn)。二戰(zhàn)沒結(jié)束,圖靈就研究計算機(jī)下棋,他在1947年編了第一個下棋程序,但直到1968年最早的電腦圍棋程序才被編寫出來。
它是由Albert Lindsey Zobrist開發(fā)的,引入了一個評估函數(shù)對棋局進(jìn)行分析,來估算雙方占空的大小。然而,在國際象棋里能夠得心應(yīng)手地殺敗世界冠軍,放在圍棋里卻行不通了,在相當(dāng)長的一段時間里,業(yè)界的普遍觀點是電腦圍棋只能達(dá)到業(yè)余棋手的水準(zhǔn)。
真正意義上的第一代圍棋AI——“手談”,是由已故中山大學(xué)化學(xué)系教授陳志行研發(fā)的圍棋程序,從1993年到2002年共10次獲得電腦圍棋世界冠軍,而“手談”這個名字也是圍棋除“弈”之外的別稱。說圍棋是“手談”意思是對弈雙方通過一遞一著進(jìn)行著無言的交談,同樣達(dá)到了交流思想、融洽情感的目的。
陳志行教授原本研究的是量子化學(xué),但同時也是圍棋業(yè)余高手。在1991年退休后,他才開始潛心研發(fā)電腦圍棋軟件,雖然當(dāng)時的電腦軟件技術(shù)水平還非常低,而圍棋棋盤大(19x19,一共有361點),空間狀態(tài)多,打劫、終局規(guī)則復(fù)雜,一般程序員至少需要設(shè)計一兩年才可能讓電腦學(xué)會下圍棋。但量子化學(xué)專業(yè)出身的陳志行使用速度快但不太常用的匯編程序語言搭建圍棋框架和編寫圍棋對弈引擎,他潛心編寫的“Alpha-Beta搜索引擎”速度非???,在當(dāng)時領(lǐng)先其他同行幾個數(shù)量級,達(dá)到了13層搜索深度。也就是說“手談”可以算清后面的13步棋,而其他程序通常只能算七八步。陳志行編寫的“模式識別”專家系統(tǒng)在當(dāng)時也是無人能及。
陳志行潛心研發(fā)“手談”3年后,終于在世界比賽中斬獲首個世界冠軍。當(dāng)時的“手談”以戰(zhàn)斗力超強(qiáng)著稱,智能水平遙遙領(lǐng)先國際同行。之后“手談”對弈水平不斷進(jìn)步,在國際性的電腦圍棋對弈比賽上連續(xù)奪冠,奪得了該時期大部分世界比賽的冠軍。
當(dāng)時個人電腦系統(tǒng)剛在世界范圍內(nèi)普及,許多圍棋愛好者還專門購買電腦安裝“手談”軟件,用作學(xué)習(xí)圍棋和訓(xùn)練的工具,“手談”軟件在世界范圍內(nèi)銷售量排名第一??梢哉f,“手談”軟件的成功在國內(nèi)掀起了一波圍棋人工智能研究的熱潮。
當(dāng)如IBM深藍(lán)那樣的超級電腦,已經(jīng)能夠擊敗世界上最好的國際象棋棋手時,圍棋軟件卻始終無法擊敗世界頂級圍棋棋手。
但是,從2006年開始,隨著應(yīng)用蒙特卡羅方法的樹搜索即蒙特卡洛樹搜索和機(jī)器學(xué)習(xí)在圍棋上的應(yīng)用,電腦圍棋水平有了突飛猛進(jìn)的增長,棋力普遍提升到業(yè)余高段的水準(zhǔn)。
姜姝姝
本刊副總編輯
圍棋的棋子多,組合可能性也多,畫出博弈樹的所有可能枝葉后,在上面跑α-β不太經(jīng)濟(jì)。于是聰明人想到了蒙特卡羅方法。蒙特卡羅方法最常用的教學(xué)例子就是計算圓的面積:在一個正方形里貼邊畫一個圓,然后隨機(jī)向這個正方形里扔沙粒,扔到足夠多時,開始數(shù)有多少沙粒落在圓里,結(jié)果除以所扔沙粒總數(shù)再乘以正方形面積,就是圓的面積。蒙特卡洛算法是一種基于“隨機(jī)數(shù)”的計算方法,這一方法源于美國在一戰(zhàn)中研制原子彈的“曼哈頓計劃”。頻率決定概率,圍棋對弈軟件將最常見的對弈定式及棋形輸入其中,從而達(dá)到較短時間提高棋力的功效。用通俗的語言解釋了這種算法:“簡單來說,人腦下圍棋靠的是邏輯思維,而蒙特卡洛算法就是一個抽樣調(diào)查的方法。其實就是一個賭博概率式的方法,如果電腦下100盤棋,用這種下法贏了60盤,用另一種下法只贏了50盤,那么,它就會認(rèn)定第一種下法,而淘汰另一種下法?!?/p>
蒙特卡洛樹搜索算法的出現(xiàn),可以看作是人工智能取得突破性進(jìn)展的標(biāo)志:計算機(jī)的思考方式,已經(jīng)有點接近人類的思維方式了。目前使用蒙特卡洛樹搜索的圍棋對弈軟件有瘋石圍棋(CrazyStone)、銀星圍棋(SilverStar)、天頂圍棋(ZEN)等電腦圍棋程序都取得了不錯的成績。
2011年8月歐洲圍棋大會,電腦圍棋軟件ZEN在19路盤上讓五子擊敗日本職業(yè)棋手林耕三六段。2012年3月,ZEN被讓四子擊敗了日本超一流棋手武宮正樹九段,這是圍棋程序首次在讓四子的情況下戰(zhàn)勝第一流職業(yè)選手。2013年,CrazyStone被讓四子擊敗日本石田芳夫九段,2014年,CrazyStone被讓四子擊敗日本依田紀(jì)基九段。可見圍棋軟件進(jìn)步迅速,至少比起十年前對弈水平已經(jīng)提高一大截,受讓四子優(yōu)勢明顯。
2015年10月,同樣基于蒙特卡洛樹搜索的Google旗下人工智能公司DeepMind開發(fā)的AlphaGo,在沒有任何讓子的情況下,以五戰(zhàn)全勝的成績擊敗了歐洲圍棋冠軍——職業(yè)圍棋二段樊麾,這也是電腦圍棋程序首次擊敗圍棋職業(yè)棋手,當(dāng)然也意味著圍棋AI新時代的來臨。
圍棋AI之難,難在這項運(yùn)動本身的多重復(fù)雜性——“最簡單的規(guī)則,最復(fù)雜的變化”。在AlphaGo及其開發(fā)團(tuán)隊DeepMind出現(xiàn)之前,幾乎所有研究者都認(rèn)為在十年內(nèi)人工智能戰(zhàn)勝圍棋大師的機(jī)會是渺茫的。而在它出現(xiàn)以后,幾乎所有人都在驚呼人工智能已破解了圍棋這一歷史難題,甚至在極短的時間內(nèi)兩次讓研究成果上了《Nature》雜志的封面。
據(jù)AlphaGo官方介紹,AlphaGo采用了一種更加“通用”的人工智能方法,即采用將改進(jìn)的蒙特卡洛決策樹算法與深度神經(jīng)網(wǎng)絡(luò)算法相結(jié)合的方法構(gòu)建最終的學(xué)習(xí)系統(tǒng)。其包括兩個部分:策略網(wǎng)絡(luò)與價值網(wǎng)絡(luò)。策略網(wǎng)絡(luò)在當(dāng)前給定的棋局中,負(fù)責(zé)預(yù)測下一步的走棋,并對下一步走棋的好壞進(jìn)行打分,策略網(wǎng)絡(luò)的作用好比“模仿”人類棋手的各種走法,以達(dá)到預(yù)測的效果。然而僅憑模仿無法擊敗最頂級的人類高手,AlphaGo又增加了價值網(wǎng)絡(luò)來判斷當(dāng)前的局面,到底對哪一方有利。但圍棋程序的局勢評估相當(dāng)困難,只能通過深度學(xué)習(xí)網(wǎng)絡(luò)之間自我訓(xùn)練的方法來達(dá)到良好的效果。
2016年3月AlphaGo以4:1戰(zhàn)勝世界圍棋名將李世石,這場被稱為全球頂級“人機(jī)大戰(zhàn)”的對抗中,AlphaGo的實力首次被世人真正認(rèn)可。但是圍棋界人士也表示,李世石心態(tài)上準(zhǔn)備不足,未必發(fā)揮出真實的最高水準(zhǔn)。DeepMind創(chuàng)始人Demis Hassabis在賽后也表達(dá),希望AlphaGo能與中國的高水平棋手對弈,比如世界排名第一的柯潔九段,所以DeepMind團(tuán)隊于2017年1月下旬宣布推出新版“AlphaGo”,也就是這次來烏鎮(zhèn)的AlphaGo 2.0。這一版本的升級亮點是——摒棄人類棋譜,即僅通過監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí),再度進(jìn)化出新的“圍棋機(jī)器人”??聺崒⒃庥鲆粋€全新的、更強(qiáng)大的對手。AlphaGo是來自“未來的人”。我會盡我全力去對決。我站在了歷史變革的節(jié)點,不會說:輸了無所謂。不管它有多強(qiáng)大,我都不會言敗??聺嵾@樣說。
事實上,除了AlphaGo現(xiàn)在還有圍棋AI程序也已被證明達(dá)到甚至超過了人類棋手的一流水平,比如騰訊AI Lab(騰訊人工智能實驗室)研發(fā)的圍棋人工智能程序“絕藝”(Fine Art),它在今年首次參加UEC杯計算機(jī)圍棋大賽,就以11連勝奪得了本屆UEC杯冠軍,在隨后的人機(jī)大戰(zhàn)后完勝日本先鋒棋手一力遼。
至此,人類棋手與圍棋AI,輸贏不再是被首要關(guān)注的話題。但AI做為工具,被人類棋手“喂招”不斷進(jìn)化后,它也能“反哺”人類,棋手使用圍棋AI(人工智能),開展人機(jī)協(xié)同,AI為人類棋手“蓄力”,1+1>2的進(jìn)化成為了新看點。
英國著名詩人亞歷山大·波普曾經(jīng)寫過一首贊美牛頓的詩:“自然和自然界的規(guī)律,隱藏在黑暗里。上帝說:讓牛頓去吧!于是,一切成為光明?!迸nD來了,利用模型歸納總結(jié)過去記錄的現(xiàn)象,發(fā)展出了理論科學(xué)。DeepMind出現(xiàn)了,隨著數(shù)據(jù)量的高速增長,AI可以分析總結(jié)、自我學(xué)習(xí),人則可以通過善用AI、人機(jī)協(xié)作,開啟智慧時代,改變現(xiàn)在以及未來一切。
手機(jī)掃碼閱讀