國際象棋與圍棋,人工智能最先攻破的堡壘

作者 劉韓 ? 2017.3.9
? ? ? 2016年,距人工智能誕生的1956年60周年,按中國人的農(nóng)歷,這兩年都是丙申年(猴年),正好是一個(gè)甲子的輪回。這一年IT行業(yè)最轟動的事件,就是AlphaGo圍棋軟件橫掃人類世界圍棋冠軍。有人還在討論計(jì)算機(jī)是否具有智能,在我看來,未來的60年,將是人工智能全面超越人類智能的時(shí)代,圍棋人機(jī)大戰(zhàn),僅僅是這一壯麗史詩的序曲。
? ? ? ?2016年3月9日到15日,AlphaGo圍棋軟件挑戰(zhàn)世界圍棋冠軍李世石的圍棋人機(jī)大戰(zhàn)五番棋在韓國首爾舉行。比賽采用中國圍棋規(guī)則,獎金是由Google提供的100萬美元。最終AlphaGo以4比1的總比分取得了勝利。
? ? ? 2016年12月29日晚起到2017年1月4日晚,AlphaGo圍棋軟件在弈城圍棋網(wǎng)和野狐圍棋網(wǎng)以“大師”(Master)為注冊名,依次對戰(zhàn)數(shù)十位人類頂尖高手,包括柯潔、樸廷桓、陳耀燁、羋昱廷、唐韋星、常昊、周睿羊和古力等世界冠軍,以及中國棋圣聶衛(wèi)平,取得60勝0負(fù)的輝煌戰(zhàn)績。
? ? ? AlphaGo在2016年的圍棋水平,世界圍棋冠軍常昊的評論是:“它現(xiàn)在的水平,可以說是大大的超出了我們?nèi)祟惖南胂??!蔽覀€(gè)人的預(yù)測,隨著硬件速度的提升和軟件的升級優(yōu)化,以及AlphaGo左右互搏,不斷自我對弈幾億盤的積累,未來版本AlphaGo的圍棋水平,可以輕松擊敗任何人類棋手,就像金庸小說《天龍八部》之中,超凡入圣的少林寺掃地僧,可以輕輕松松秒殺蕭遠(yuǎn)山、慕容博這些天下一流高手。
? ? ? ?回顧人工智能的發(fā)展史,棋類就一直是一個(gè)熱門領(lǐng)域,原因很簡單,因?yàn)橄缕灞环Q為智力競技運(yùn)動,而棋類的勝負(fù)和等級分,可以很好地來對比和測量人工智能系統(tǒng)的智能水平。
? ? ? ?偉大的香農(nóng),最早提出了利用計(jì)算機(jī)編寫國際象棋程序的設(shè)想,并于1950年發(fā)表了論文《為計(jì)算機(jī)編程下國際象棋》(《Programming a computer for playing chess》),其內(nèi)容奠定了現(xiàn)代弈棋機(jī)的基礎(chǔ)。1956年,他在洛斯阿拉莫斯的MANIAC計(jì)算機(jī)上實(shí)現(xiàn)了一個(gè)國際象棋的下棋程序。在一篇關(guān)于計(jì)算機(jī)象棋的早期論文中,紐維爾、西蒙和克里夫·肖(Cliff Shaw)提出:“如果一個(gè)人能夠設(shè)計(jì)出一臺成功的弈棋機(jī),他似乎就滲入了人類智力活動的核心?!笔苓@些大師的激勵,無數(shù)的計(jì)算機(jī)專業(yè)人士、國際象棋棋手和來自各個(gè)行業(yè)的業(yè)余愛好者開始研究和開發(fā)一代又一代的下棋系統(tǒng),有些人追求勝負(fù)和獎金,有些人把下棋系統(tǒng)作為實(shí)驗(yàn)工具,研究人類智能的工作原理。
? ? ? 人類思考棋類問題的核心智慧就是找到妙招,而找到妙招的關(guān)鍵就是推算出若干步之內(nèi)無論對方如何應(yīng)對,本方都處于局面變好的態(tài)勢。轉(zhuǎn)換到國際象棋程序編程,核心都必須有兩部分:博弈搜索和局面評估。
? ? ? ?博弈搜索時(shí)一個(gè)招法(下一步棋)向著后續(xù)招法分叉,形成了一顆樹形結(jié)構(gòu),被稱為博弈樹。最簡單的搜索法被稱為暴力搜索法(Brute force)或者A(Alpha、阿爾法)方法,這種方法全面生成所有可能的招法,并選擇最優(yōu)的一個(gè),也就是盡可能對博弈樹窮盡搜索。另一種策略被稱為B(beta、貝塔)方法,基本思想是剔除某些樹枝。
? ? ? ?暴力搜索法程序遇到的主要難題是博弈樹所包含的局面數(shù)量實(shí)在太多太多了。國際象棋平均每個(gè)局面大約有40步符合規(guī)則的著法。如果你對每步著法都考慮應(yīng)著就會遇到40 x 40 = 1600個(gè)局面。而4步之后是250萬個(gè),6步之后是41億個(gè)。平均一局棋大約走40回合80步,于是所有可能局面就有10的128次方個(gè),這個(gè)數(shù)字遠(yuǎn)遠(yuǎn)多于已知宇宙世界的原子總數(shù)目(大約10的80次方)!
? ? ? ? 紐維爾、西蒙和克里夫·肖發(fā)展的Alpha-beta算法可以從搜索樹中剔除相當(dāng)大的部分而不影響最后結(jié)果。它的基本思想是:如果有些招法將自己引入了很差的局面,這個(gè)招法的所有后續(xù)招法就都不用繼續(xù)分析了。也就是說,如果有一個(gè)完美的局面評估方法,只要把最好的招法一個(gè)留下來就可以了,當(dāng)然這種完美的評估方法不存在,不過只要有一個(gè)足夠好的評估方法,那么也可以在每一層分析時(shí)只保留幾個(gè)比較好的招法,這就大大減少了搜索法的負(fù)擔(dān)。Alpha-beta算法和優(yōu)秀人類棋手下棋時(shí)的思考過程已經(jīng)非常接近。
? ? ? ?70年代時(shí),曾經(jīng)創(chuàng)造UNIX系統(tǒng)的計(jì)算機(jī)行業(yè)大腕肯·湯普森(Ken Thompson)開始進(jìn)入電腦國際象棋領(lǐng)域,他和貝爾實(shí)驗(yàn)室的同事喬·康登(Joe Condon)一起決定建造一臺專門用途的機(jī)器,使用了價(jià)值大約20,000美元的幾百個(gè)芯片。他們把這臺機(jī)器叫做Belle。它能夠每秒搜索大約18萬個(gè)局面,而當(dāng)時(shí)的百萬美元級超級電腦只能搜索5000個(gè)。Belle在比賽中可以搜索八至九層那么深,是第一臺達(dá)到國際象棋大師級水平的計(jì)算機(jī)。從1980年到1983年它戰(zhàn)勝了所有其它電腦,贏得了世界電腦國際象棋競賽冠軍,直到被價(jià)錢貴上千倍的克雷巨型機(jī)(Cray X-MPs)取代為止。Belle的成功,開創(chuàng)了開發(fā)國際象棋專用芯片來提高搜索速度的道路。
? ? ? ? 湯普森的另一大貢獻(xiàn)是他整理的殘局庫,他在80年代就開始生成和儲存棋盤上剩四至五子的所有符合規(guī)則的殘局。一個(gè)典型的五子殘局,比如王雙象對王單馬,包含總數(shù)121萬個(gè)局面。電腦使用這些殘局?jǐn)?shù)據(jù)庫,可以把每個(gè)殘局走得絕對完美,就象上帝一樣。
? ? ? ?湯普森在80年代對搜索深度和棋力提高之間的關(guān)系做了非常有意義的試驗(yàn)。他讓Belle象棋機(jī)自己跟自己下,但只有一方的搜索深度不斷增加,結(jié)果是,根據(jù)勝負(fù)比率,平均每增加一個(gè)搜索深度可大約換算成200個(gè)國際象棋等級分。由此推論,可以計(jì)算出搜索深度達(dá)到十四層時(shí),就達(dá)到了當(dāng)時(shí)世界冠軍卡斯帕羅夫的程度,即2800分的等級分。當(dāng)時(shí)計(jì)算機(jī)行業(yè)專家的推測是:要與人類世界冠軍爭奪冠軍,必須做一臺每秒運(yùn)算10億次的電腦(對應(yīng)于搜索到十四層的深度)。
? ? ? ?在評估局面方面,早期使用的是憑借經(jīng)驗(yàn)制訂的簡單規(guī)則,后來這些規(guī)則逐漸增加,并逐漸加入人類優(yōu)秀棋手評估棋局的思路。比如, 卡耐基梅隆大學(xué)的漢斯·貝利納教授(Hans Berliner),他曾經(jīng)是世界國際象棋通訊賽冠軍,他領(lǐng)導(dǎo)開發(fā)了80年代很強(qiáng)的“Hitech”下棋機(jī),在他的局面評估方法中,局面好壞由50多個(gè)因素決定(例如子力、位置、王的安全等等),每個(gè)因素則是一個(gè)變量,為每個(gè)變量賦予了一個(gè)加權(quán)系數(shù),最后求和的大小就清晰的表明了當(dāng)前局面的優(yōu)劣。
? ? ? ? 最終實(shí)現(xiàn)戰(zhàn)勝人類國際象棋世界冠軍之夢,取得人機(jī)大戰(zhàn)勝利的是IBM的“深藍(lán)”(DeepBlue)團(tuán)隊(duì),核心是來自中國臺灣的許峰雄、莫里·坎貝爾(Murray Cambell)和喬·赫內(nèi)(Joe Hoane)。1985年起,許峰雄和莫里在卡耐基梅隆大學(xué)讀研究生時(shí),就是電腦下棋機(jī)“ChipTest”和“DeepThought”團(tuán)隊(duì)的核心成員,這兩臺下棋機(jī)在當(dāng)時(shí)都處于電腦象棋行業(yè)的頂尖水平。許峰雄的導(dǎo)師孔祥重教授也是華人,是孔子的后代。許峰雄很有個(gè)性,有時(shí)會和權(quán)威發(fā)生沖突,高中開始就有個(gè)綽號叫“瘋鳥”(Crazy Bird),孔教授繼承了他的祖先孔子“因才施教”的風(fēng)范,寬容了“瘋鳥”造成的一些麻煩,大力支持了許峰雄的追夢之旅。
? ? ? ?1989年起,加入IBM使得許峰雄和莫里得到了他們非常需要的高速計(jì)算機(jī)的資源和生產(chǎn)幾百個(gè)象棋芯片的財(cái)力。IBM雄厚財(cái)力的另一大用途,是“深藍(lán)”團(tuán)隊(duì)可以請到馬克西姆·德盧基(Maxim Dlugy)、喬爾·本杰明(Joel Benjamin)、米格爾·伊列斯卡斯(Miguel Illescas)等多位國際象棋特級大師來負(fù)責(zé)與“深藍(lán)”對弈和訓(xùn)練,這些訓(xùn)練的成果,多數(shù)都沉淀在“深藍(lán)”不斷優(yōu)化的局面評估程序和開局庫之中。
? ? ? ? 又經(jīng)過了近十年的艱苦努力,IBM “深藍(lán)”下棋機(jī)最終在1997 年 5月3日至5 月 11 日的系列比賽中,以3.5:2.5(2勝1負(fù)3平)戰(zhàn)勝了當(dāng)時(shí)的國際象棋世界冠軍卡斯帕羅夫,震驚了整個(gè)世界。當(dāng)時(shí)用于比賽的IBM深藍(lán)電腦,使用了30臺IBM RS/6000工作站, 每臺工作站有一個(gè)主頻120M的Power2 CPU 加上16個(gè)VLSI 國際象棋專用芯片,所以深藍(lán)的計(jì)算能力是30個(gè)CPU加480個(gè)象棋芯片,理論搜索速度每秒10億個(gè)棋局,實(shí)際最大速度大約是每秒搜索2億個(gè)棋局,很接近80年代時(shí)計(jì)算機(jī)專家的預(yù)測。
? ? ? ? 許峰雄后來寫了本書,叫《“深藍(lán)”揭秘--追尋人工智能圣杯之旅》,回憶了他12年磨一劍,堅(jiān)持打造可以戰(zhàn)勝所有人類選手的下棋機(jī),最終取得成功的不凡經(jīng)歷,這本書很值得所有愿意長期追求遠(yuǎn)大夢想的人學(xué)習(xí)。
? ? ? ?書中透露的兩個(gè)細(xì)節(jié)可以看到人類棋手在下棋能力以外的弱點(diǎn)。第一局卡斯帕羅夫取勝后,卻一直疑惑為什么“深藍(lán)”在第44步?jīng)]有下看似更好的一招棋,他的助手們深入分析后得出結(jié)論,“深藍(lán)”沒下那招棋的原因是“它大概看到了20步之后的殺招”,如此高估“深藍(lán)”的實(shí)力也許對卡斯帕羅夫后來的戰(zhàn)斗增加了不少壓力。整個(gè)系列比賽結(jié)束后,許峰雄才在書中透露“深藍(lán)”是因?yàn)槌绦虻碾[錯(cuò)(Bug)才走出的那一招,當(dāng)聽到卡斯帕羅夫團(tuán)隊(duì)的分析時(shí),他不禁笑出聲來。另一個(gè)細(xì)節(jié),此次比賽的總獎金是110萬美元,勝方得70萬美元,負(fù)方得40萬美元,卡斯帕羅夫又對外另下了30萬美元的賭注,因此,他承受了除了名譽(yù)以外還有來自金錢的巨大壓力。最后一局,下了不到1小時(shí),卡斯帕羅夫在19步后認(rèn)輸。
? ? ? ?有趣的是,作為“深藍(lán)”的總設(shè)計(jì)師和芯片設(shè)計(jì)師,許峰雄更傾向于從工程角度看待“深藍(lán)”的成功,他在書中的序言中說:“本書與科學(xué)發(fā)現(xiàn)無關(guān),而是關(guān)于一項(xiàng)工程探索。從本質(zhì)上講,工程探索涉及生活中更豐富的層面。工程探索背后的技術(shù)思想首先要被發(fā)現(xiàn)出來,然后才能達(dá)到邏輯上的完善。這個(gè)發(fā)現(xiàn)可能來自運(yùn)氣或靈感,而探索的其他部分則需要付出辛勤的汗水和契而不舍的努力。……本書描述的是努力超越(盡管也許只是暫時(shí)的超越)世界上最佳人類棋手的弈棋水平的探索過程。”
? ? ? ?關(guān)于計(jì)算機(jī)下圍棋,2002年,許峰雄寫書時(shí)的判斷是:“它實(shí)在太難了,以至于在未來20年中可能得不到解決。”這句話里“解決”的含義應(yīng)該就是戰(zhàn)勝圍棋世界冠軍,然而這個(gè)預(yù)言在2016年提前6年被強(qiáng)大的AlphaGo團(tuán)隊(duì)打破。
? ? ? ?AlphaGo這一款圍棋人工智能程序,由谷歌(Google)旗下DeepMind公司開發(fā)。DeepMind公司創(chuàng)始人戴密斯·哈薩比斯(Demis Hassabis)生于1976年,父親是希臘族塞浦路斯人,母親是新加坡華人,在英國倫敦長大。他從小就是國際象棋和計(jì)算機(jī)雙料神童,4歲開始下國際象棋,8歲自學(xué)編程,13歲獲得國際象棋大師稱號。2010年哈薩比斯創(chuàng)立專注于人工智能研發(fā)的DeepMind公司,目標(biāo)是建立強(qiáng)大的通用學(xué)習(xí)算法,將技術(shù)應(yīng)用于解決現(xiàn)實(shí)世界的難題。
? ? ? AlphaGo的開發(fā)團(tuán)隊(duì)核心包括大衛(wèi)·席爾瓦(David Silver)、黃士杰(Aja Huang)、施恩·萊格(Shane Legg)和穆斯塔法·蘇萊曼(Mustafa Suleyman)等人。AlphaGo圍棋程序應(yīng)用了近年來人工智能領(lǐng)域有重大突破的“深度學(xué)習(xí)”和“強(qiáng)化學(xué)習(xí)”等技術(shù),加上Google公司強(qiáng)大的并行計(jì)算實(shí)力,可以說其“智能”水平已經(jīng)遠(yuǎn)遠(yuǎn)超過當(dāng)年的“深藍(lán)”。

? ? ? ? 根據(jù)DeepMind公司在《自然》雜志上發(fā)表的文章,AlphaGo這個(gè)系統(tǒng)主要由幾個(gè)部分組成:
1. 策略網(wǎng)絡(luò)(Policy Network),給定當(dāng)前局面,預(yù)測下一步的走棋。對棋盤上的每個(gè)可下的點(diǎn)都給出了一個(gè)估計(jì)的分?jǐn)?shù),也就是圍棋高手下到這個(gè)點(diǎn)的概率。評估一步棋的速度可達(dá)2毫秒左右。
2. 快速走子(Fast rollout),目標(biāo)和1一樣,但在適當(dāng)犧牲走棋質(zhì)量的條件下,速度要比1快1000倍。下一步棋的速度可達(dá)2微秒左右。
3. 估值網(wǎng)絡(luò)(Value Network),給定當(dāng)前局面,估計(jì)是白勝還是黑勝,給出輸贏的概率。
4. 蒙特卡羅樹搜索(Monte Carlo Tree Search,MCTS),把以上這三個(gè)部分連起來,形成一個(gè)完整的系統(tǒng)。
? ? ? ? 簡約地說一下AlphaGo的“訓(xùn)練”過程,AlphaGo團(tuán)隊(duì)首先利用幾萬局專業(yè)棋手對局的棋譜來訓(xùn)練系統(tǒng),得到初步的“策略網(wǎng)絡(luò)”和“快速走子”。訓(xùn)練“策略網(wǎng)絡(luò)”時(shí),采用“深度學(xué)習(xí)”算法,基于全局特征和深度卷積網(wǎng)絡(luò)(CNN)來訓(xùn)練,其主要作用是給定當(dāng)前盤面狀態(tài)作為輸入,輸出下一步棋在棋盤其它空地上的落子概率?!翱焖僮咦印眲t基于局部特征和線性模型來訓(xùn)練。完成這一步后,AlphaGo已經(jīng)初步模擬了人類專業(yè)棋手的“棋感”。接下來,AlphaGo采用左右互搏的模式,不同版本的AlphaGo相互之間下了3000萬盤棋,利用人工智能中的“深度增強(qiáng)學(xué)習(xí)”算法,利用每盤棋的勝負(fù)來學(xué)習(xí),不斷優(yōu)化和升級“策略網(wǎng)絡(luò)”,同時(shí)建立了一個(gè)可以對當(dāng)前局面估計(jì)白棋和黑棋勝率的“估值網(wǎng)絡(luò)”。根據(jù)AlphaGo團(tuán)隊(duì)的數(shù)據(jù),對比圍棋專業(yè)選手的下法,“策略網(wǎng)絡(luò)”用2毫秒能達(dá)到57%的準(zhǔn)確率,“快速走子”用2微秒能達(dá)到24.2%的走子準(zhǔn)確率,據(jù)估計(jì),單機(jī)上采用“快速走子”的下棋程序,已經(jīng)具備了圍棋三段左右的水平。而“估值網(wǎng)絡(luò)”對勝負(fù)的判斷力已經(jīng)遠(yuǎn)超所有人類棋手。
? ? ? ?實(shí)際對局時(shí),AlphaGo通過“蒙特卡羅樹搜索”來管理整個(gè)對弈的搜索過程。首先,通過“策略網(wǎng)絡(luò)”,AlphaGo可以優(yōu)先搜索本方最有可能落子的點(diǎn)(通常低于10個(gè))。對每種可能,AlphaGo可以通過“估值網(wǎng)絡(luò)”評估勝率,同時(shí),可以利用“快速走子”走到結(jié)局,通過結(jié)局的勝負(fù)來判斷局勢的優(yōu)劣,綜合這兩種判斷的評分再進(jìn)一步優(yōu)化“策略網(wǎng)絡(luò)”的判斷,分析需要更進(jìn)一步展開搜索和演算的局面。綜合這幾種工具,輔以超級強(qiáng)大的并行運(yùn)算能力,AlphaGo在推演棋局變化和尋找妙招方面的能力,已經(jīng)遠(yuǎn)超人類棋手。根據(jù)資料,最高配置的AlphaGo分布式版本,配置了1920個(gè) CPU和280個(gè) GPU,同時(shí)可以跑64個(gè)搜索線程,這樣的計(jì)算速度就好像有幾十個(gè)九段高手同時(shí)在想棋,還有幾十個(gè)三段棋手幫著把一些難以判斷的局面直接下到最后,拿出結(jié)論,某一位人類棋手要與對抗,確實(shí)難以企及。
? ? ? ?當(dāng)然,目前版本的AlphaGo也并不完美。在人機(jī)大戰(zhàn)的第四局,0:3失利后為榮譽(yù)而戰(zhàn)的李世石長考25分鐘后,祭出了白78“挖”的妙手,這一手棋后來被新聞界稱為“神之一手”,AlphaGo在李世石的絕地反擊下陷入混亂,下出了不少“昏招”,最后中盤認(rèn)輸。 據(jù)DeepMind創(chuàng)始人哈薩比斯賽后Twitter稱:“李世石下出白78后,AlphaGo自我感覺良好,在程序的‘估值網(wǎng)絡(luò)’中,誤以為勝率達(dá)到70%,在第79手犯了錯(cuò),直到第87手才反應(yīng)過來它錯(cuò)了?!?br> ? ? ? ? 圍棋世界冠軍古力與AlphaGo對弈以后寫下了這么一句話:“人類與人工智能共同探索圍棋世界的大幕即將拉開。”我相信,AlphaGo所代表的人工智能技術(shù)將在更多的領(lǐng)域輔助人類解決更多的難題,而更多中國血統(tǒng)的天才,將像許峰雄、戴密斯·哈薩比斯、黃士杰那樣,在人工智能領(lǐng)域取得輝煌的成就。




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容