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

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

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




最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文系《文工團》約稿,禁止一切形式的未授權轉載,謝謝合作。這篇是約稿的第二版,第一版可以點這里。 圍棋,是一項中國...
    LostAbaddon閱讀 2,622評論 7 10
  • 對于人工智能來說,前60年的人工智能歷程,可以用“無窮動”來形容;后60年的人工智能發展,可以用“無窮大”來期許。...
    補習club閱讀 5,114評論 1 73
  • He deals the cards as a meditation 他出牌前沉思冥想And those he p...
    隱劍鬼吊閱讀 1,686評論 2 2
  • 1、php -i |grep php.ini 找到php.ini路徑
    ysnows閱讀 197評論 0 0
  • 今天去飛車了,雖然說沒有到達終點,但是過程是最重要的是吧——冷死了…… 去享受那種自由的感覺,在路上隨便吼,不管別...
    藍道閱讀 181評論 0 0