|
5月23日,圍棋界和人工智能界都翹首以盼的柯潔對阿法狗(AlphaGo)的比賽在浙江的烏鎮(zhèn)正式開戰(zhàn)。與去年 3 月份開戰(zhàn)的韓國棋手李世石對阿法狗相比,這次比賽的熱度有所下降。這個好理解,畢竟失去了首次的意義??聺崒Π⒎ü返氖讏霰荣愇胰炭戳?,畢竟我也算是個圍棋迷,雖然我的圍棋水平最多只有業(yè)余初段的水平。像我這種水平,想獨立看懂職業(yè)棋手的比賽是不可能的,但是借助高手的講解,完全可以感受到比賽的那種緊張氣氛,也會在比賽進行到最關(guān)鍵的時刻懸著心等待棋手的出招,忍不住發(fā)一些感慨和評論。今天讓我以一個科普人和圍棋迷的雙重身份帶大家深度了解一下人機大戰(zhàn)。 圖片來源網(wǎng)絡(luò) 一年多前,也就是2016年3月9日,舉世矚目的人機大戰(zhàn)開打,由史上圍棋冠軍頭銜最多的韓國棋手李世石對陣谷歌研發(fā)的人工智能阿法狗。說舉世矚目,一點都不夸張,據(jù)說全球有 2.6 億人次觀看了首場比賽,有至少幾十個國家直播。在韓國,那更是萬人空巷。其實,全世界會下圍棋的人,把只要是能看懂最基本的圍棋死活的人都算上,樂觀估計也不會超過 4000 萬人,大多數(shù)人是看不懂屏幕上那些黑白棋子到底在干什么的。但即便如此,依然有兩三億人看了比賽。 為什么這場人機大戰(zhàn)會受到這么大的關(guān)注?人機大戰(zhàn)不是早已有之嗎?我們都知道,1997年,IBM的“深藍”就戰(zhàn)勝了人類的國際象棋冠軍卡斯帕羅夫,計算機下棋并不是什么新鮮事。原因就在于,圍棋號稱人類第一智力游戲。象棋是越下棋子越少,而圍棋剛好反過來,越下棋子越多,可能的變化也越多,只有過了中盤以后,復(fù)雜度才會又降下來。如果按照深藍下象棋的算法來下圍棋的話,那么深藍可能幾百年也算不完一步棋,因為圍棋不可能窮舉所有可能的走法,計算量是天文數(shù)字。所以,在深藍戰(zhàn)勝人類的國際象棋冠軍之后的十多年,計算機在圍棋上的水平始終只能算是業(yè)余級的,根本不入流,甚至有人豪言計算機想在圍棋上戰(zhàn)勝人類,恐怕還需要 100 年。這個人就是 10 多年前的我,自以為懂一點編程和圍棋。不過,棋圣聶衛(wèi)平說過,在大局觀上,計算機不可能勝過人類,因為思考的模式不一樣。因此,在深藍戰(zhàn)勝卡斯帕羅夫之后,圍棋成了人類捍衛(wèi)自己智力尊嚴(yán)的最后一塊領(lǐng)地?,F(xiàn)在,谷歌的阿法狗居然要攻陷人類的這最后一塊領(lǐng)地,你說這能不讓我們?nèi)祟愖郊眴幔?/p> 圖片來源網(wǎng)絡(luò) 在阿法狗跟李世石比賽之前,阿法狗已經(jīng)戰(zhàn)勝了歐洲圍棋冠軍樊麾。其實樊麾是個中國人,只不過在歐洲下棋,他的棋力也就是職業(yè)二段的水平,在職業(yè)棋手中只能算是個三流棋手。但這畢竟是計算機第一次戰(zhàn)勝了人類的職業(yè)棋手,這在 10 年前幾乎是不可以想象的。于是圍棋界開始關(guān)注這個橫空出世的阿法狗。在看了阿法狗與樊麾的棋譜后,職業(yè)棋手普遍的評價是,阿法狗確實很厲害,都已經(jīng)看不出是電腦了,但也就是比樊麾的腦子好了這么一點點,與一流的人腦相比還差得遠。你看,那時候的人類是多么自戀,對電腦的最高評價是“你不像是電腦”,就好像余秋雨說過去對上海人的最高評價是你不像是上海人一樣。但是,僅僅過了一年多后的今天,對人類棋手的最高評價恐怕已經(jīng)要改為“你怎么像電腦一樣”了。阿法狗為什么會變得這么厲害,關(guān)鍵原因在于,它與深藍的下棋算法有本質(zhì)的不同,深藍從本質(zhì)上說就是窮舉所有的可能,從而選出一個最優(yōu)下法,但阿法狗采用的是另外一種完全不同的算法。這個我們一會兒詳細說,先賣個關(guān)子。我們先來回顧一下首場人機大戰(zhàn)的比賽情況。 第一場比賽是最受矚目的,我當(dāng)然也看了直播。開局沒什么好多說的,中規(guī)中矩,進行到80多手棋的時候,也就是進入中盤階段的時候,李世石圍住了一大片地,這個“地”指的就是棋盤上的交叉點。圍棋之所以取名叫圍棋,就是看誰能圍住更多的地,它不像象棋,是以吃掉對方的棋子為最終目標(biāo),圍棋的目標(biāo)是爭奪地盤,所以,高手對局很少吃別人的子。這就是為什么往往下圍棋的人會看不起下象棋的人,因為他們覺得自己的境界不一樣,已經(jīng)脫離了打打殺殺,比的是大局觀。這就跟小偷看不起強盜,詐騙犯看不起小偷差不多一個道理,用葛大爺?shù)脑拋碚f就是“搶劫一點技術(shù)含量都沒有”。到了中盤的時候,李世石圍住了一片哪怕是在我們這種業(yè)余棋手比賽的時候也很罕見的大空地,所以,當(dāng)時幾乎所有人,不論是職業(yè)棋手還是業(yè)余棋手,都認為李世石贏定了,連我這樣的業(yè)余水平也認為這棋下到這樣已經(jīng)沒必要再看下去,于是我就關(guān)了窗口忙工作去了。這就好像看奧運會的乒乓球比賽,中國隊已經(jīng) 10 比 0 領(lǐng)先美國隊,看不看都無所謂了,沒有懸念了。誰知過了一個多小時,我突然收到一個棋友發(fā)來的微信:李世石要輸了!我當(dāng)時的第一反應(yīng)是“玩我的吧?”但我還是忍不住又打開直播,一看之下,大吃一驚,李世石果然已經(jīng)被連追 10 個球,打平了! 圖片來源網(wǎng)絡(luò) 李世石在這場比賽中執(zhí)的是黑棋。圍棋的規(guī)則是黑棋先下,先下有優(yōu)勢,因此也要在最后數(shù)地盤的時候倒貼一些空地給白棋,這在圍棋術(shù)語中被稱之為“貼目”。如果考慮貼目的話,李世石實際上已經(jīng)落后了。在最后的收官階段,計算機強大的算力發(fā)揮得淋漓盡致,每一手棋都是最優(yōu)解,滴水不漏。下到差不多第 180 手的時候,觀戰(zhàn)解說的柯潔和古力已經(jīng)給李世石判死刑了。果然,下到第 186 手,李世石投子認負。人機大戰(zhàn)的第一局,阿法狗就上演了令人驚嘆的驚天大逆轉(zhuǎn)。這里面最令人震驚的是,李世石在中盤獲得巨大優(yōu)勢后,并不是因為心理波動,下出了什么昏招被一舉翻盤的,而是真的就像打乒乓一樣,每一個球都爭奪的非常激烈,但每一個球都丟了,就這樣被阿法狗一點一點追回來。 這次人機大戰(zhàn)一共要下五局,后面四局每一局也都有些看點,尤其是李世石唯一戰(zhàn)勝阿法狗的第四局,李世石下出了被古力評價為神之一手的第78手。但最終的比分鎖定在了1:4,人類完敗。 李世石失敗后,第一個跳出來高調(diào)表示人類不服的就是柯潔,他在比賽結(jié)束后立即在微博上寫道:就算阿法狗戰(zhàn)勝了李世石,但是他贏不了我。這個狂人柯潔又是誰呢?他確實有狂妄的資本。就在他寫下這篇微博的過去一年,接連獲得了三個世界冠軍,成為了世界上最年輕的圍棋三冠王,年僅19歲。而就在李世石對戰(zhàn)阿法狗的四天前,在農(nóng)心杯上,柯潔剛剛戰(zhàn)勝了李世石,正是如日中天的時候,圍棋等級分排名世界第一。跟所有的少年人一樣,柯潔是好勝的。我想,他對谷歌選擇了李世石而沒有選擇他作為人類棋手最高水平的代表與阿法狗一戰(zhàn),心里一定是有些怨念的。所以,這篇微博也可以看作是柯潔向阿法狗的挑戰(zhàn)書。但是,谷歌沒有對柯潔的挑戰(zhàn)做出回應(yīng),而是默默地關(guān)機,收拾電源線,回到研發(fā)中心,銷聲匿跡。 時間走到了2016年12月29日晚上 7 點多,此時人機大戰(zhàn)的硝煙早已消散,人們天天談?wù)摰亩际莿倓偖?dāng)選的美國總統(tǒng)特朗普,早已將阿法狗忘記了。國內(nèi)最著名的圍棋對戰(zhàn)平臺弈城上突然出現(xiàn)了一個新注冊的神秘人,這位神秘人的昵稱叫 master,中文就是大師的意思。在網(wǎng)上下圍棋的規(guī)則是新人進來都必須從較低的級別開始,高段位的棋手往往不會搭理低級棋手。master 在遭到幾個高手的拒絕后,只得向一些中級棋手挑戰(zhàn),結(jié)果全都輕松取勝,這才引起了高手們的注意。前來應(yīng)戰(zhàn)的高手一個接一個,名氣越來越響,可是,所有的高手在 master 面前都顯得不堪一擊,一個晚上,master 取得了十連勝的戰(zhàn)績。當(dāng)?shù)诙?master 再度現(xiàn)身弈城的時候,號稱韓國圍棋第一人的樸廷桓已經(jīng)在等著他了,結(jié)果仍是慘敗。突然網(wǎng)友們驚呼,“吻別”來了!“吻別”正是柯潔的昵稱。30 日下午 4 點 15 分,master 與吻別的第一場較量落子,這是一場快棋賽,僅僅半小時,柯潔落敗。圍棋少年不服,立即要求再次對弈,半個多小時后,再次落敗。到了 31 日,master 已經(jīng)連勝 30 場,他的手下敗將還包括號稱日本圍棋第一人的井山裕太。此時,人們突然醒悟過來了,這絕不可能是人類棋手能達到的高度。而那位幾個月前還發(fā)出“他贏不了我”的豪言的圍棋冠軍也猜到了什么,他在 12 月 31 日晚上 11 點 28 分發(fā)布了一條微博,上面寫道: 我從 3 月份開始到現(xiàn)在研究了大半年圍棋軟件,無數(shù)次的理論、實踐,就是想知道計算機究竟強在哪里。昨晚輾轉(zhuǎn)反側(cè),不想竟一夜無眠。人類千年的實戰(zhàn)演練進化,計算機卻告訴我們,人類全都是錯的。我覺得,甚至沒有一個人沾到圍棋真理的邊。但我想說,從現(xiàn)在開始,我們棋手將會結(jié)合計算機,邁進全新的領(lǐng)域達到全新的境界。新的風(fēng)暴即將來襲,我將盡我所有的智慧終極一戰(zhàn)。 在此后的幾天中,master 繼續(xù)所向披靡,取得了不可思議的 60 連勝。相信你已經(jīng)猜出來了,這個神秘人 master 正是升級后的阿法狗2.0。 世界圍棋排名第一的柯潔與阿法狗的正式比賽終于敲定,將在 2017 年 5 月 23、25、27 日進行三番棋決戰(zhàn)。尚未滿 20 歲的圍棋少年,將再次代表人類,與人工智能進行較量。有意思的是,我們?nèi)绻凑諘r間線把柯潔的言論羅列一下,可以看到他心態(tài)的悄悄變化。 去年 3 月,柯潔說:“就算阿法狗戰(zhàn)勝了李世石,但它贏不了我。來吧!管你是阿法狗還是阿法貓!我柯潔在棋上什么大風(fēng)大浪沒見過?讓風(fēng)暴再來的猛烈點吧!” 今年初,柯潔說:“它顛覆了我們對圍棋的認知,所以說它的出現(xiàn)是我們的幸運。” 而賽前最后一次接受采訪,柯潔說:“我將盡全力爭勝,一決勝負,抱有必勝的信念和必死的決心,不輕易言敗?!?/p> 圖片來源網(wǎng)絡(luò) 再看這一次柯潔與阿法狗的人機大戰(zhàn),世人的觀點已經(jīng)和一年多前發(fā)生了180度的大轉(zhuǎn)彎,李開復(fù)的話最有代表性,他說:這次比賽已無科學(xué)意義,人類的勝率是零。 5月23日上午10點半,柯潔執(zhí)黑,在圍棋盤上右下角點“三三”。在圍棋中,開局點三三是一種非常強烈的信號,表明自己這盤棋要采用的是相對保守的步步為營的下法,這已經(jīng)不是人不輕狂枉少年的柯潔了,他采用了最為穩(wěn)妥的下法??聺嵾@招是以其人之道還治其人之身,他顯然是經(jīng)過了經(jīng)心的備戰(zhàn),選擇這種策略是經(jīng)過深思熟慮的,因為這個下法正式過去阿法狗最常用的下法。不過,阿法狗毫不示弱。在人類對局中,一般來說,一方如果是保守撈實地派,那么另一方就會自然地選擇取外勢,構(gòu)建大模樣的走法。但是,阿法狗卻跟柯潔對著干:你不是想撈實地嘛,那我也撈實地,看誰撈得過誰。結(jié)果,還是阿法狗技高一籌,連柯潔第一個三三所占據(jù)的角都不得不拱手相讓給阿法狗??聺嵉膽?zhàn)略意圖被打亂。當(dāng)走到54手的時候,阿法狗下出了一手讓柯潔冷汗直冒的棋,柯潔賽后說,當(dāng)他看到這手棋的時候,非常震驚,因為那手棋在人類的對局中幾乎是不可能下出來的,看上去是步臭棋,實際卻越下越覺得精妙無比。 圖片來源網(wǎng)絡(luò) 隨著棋招的增加,整個局面越來越進入阿法狗的節(jié)奏,柯潔已經(jīng)被牽著鼻子走,雖然每次交戰(zhàn),黑棋似乎都不落下風(fēng),但白棋總能稍稍多那么一點點優(yōu)勢,這種優(yōu)勢在慢慢地累積,黑棋從來就沒有找到機會。在這種局面下,如果是人類之間的對弈,落后的一方想要獲得勝利,只有兩種情況,一是對手出昏招,二是強行跟對方絞殺搏命。顯然,阿法狗是不可能出昏招的,柯潔唯一剩下的出路就是絞殺搏命了。我之前曾經(jīng)說過,高手下圍棋,都不是以吃掉對方的子為目的的,一旦要拼命去吃子,這時候其實已經(jīng)是強弩之末了??聺嵜闇?zhǔn)了白棋上邊幾顆字,想要徹底殲滅,這在圍棋術(shù)語中叫做“屠龍”,屠殺大龍的意思。很遺憾,柯潔沒有屠龍刀,阿法狗是狗不是龍。屠龍不成,黑棋盤面更加落后。 到了最后的收官階段,阿法狗突然全部采用了最為保守穩(wěn)妥的下法,看似黑棋在一點一點的與白棋縮小差距,其實,柯潔的心中滿是苦水,因為,他很清楚,在阿法狗的芯片中,這局棋已經(jīng)結(jié)束,此后的每一步都在它的算計中,因為,阿法狗不需要最大的勝果,只需要最大的勝率。最終,阿法狗以四分之一子的優(yōu)勢取勝,這是在中國圍棋規(guī)則下,優(yōu)勢最小的勝利。 圖片來源網(wǎng)絡(luò) 看完這局棋,我發(fā)了一條微博:阿發(fā)狗勝四分之一子,這是圍棋中的最小勝利。我在猜想,會不會這次三盤棋全都是同樣勝四分之一子的結(jié)果,以此顯示阿法狗的真正強大,就好像《2001太空漫游》中土星黑石板一樣的存在,精確到不差分毫。我想,或許在阿法狗的后臺設(shè)置中可以調(diào)節(jié)勝多少子。 當(dāng)然,這是我的一個玩笑,但如果真如我所說,我也不會再感到驚訝,因為,人工智能新的一頁已經(jīng)被翻開。 阿法狗到底是怎么下期的呢?這不是秘密,阿法狗的算法原理都是公開的。圍棋棋盤上一共有 361 個交叉點。圍棋子一落,占掉一個點,還剩下 360 個點。對手就有 360 種可能性可以下。當(dāng)然啦,很多地方對手根本不可能落子,那是臭棋,所以,落在每個點的概率是不一樣的。平均下來,每一步棋大約有 200 種可能性。一盤棋下來,棋盤上可能出現(xiàn)的局面總數(shù)到了遠大于宇宙中原子總數(shù)的地步。所以深藍對付卡斯帕羅夫的辦法就不好使了??ㄋ古亮_夫倒是這么被計算器暴力窮舉給逼死的。 阿法狗必須另辟蹊徑,它擇了別的下棋方式。“秘訣”有三個:深度神經(jīng)網(wǎng)絡(luò)、監(jiān)督/強化學(xué)習(xí)、蒙特卡羅樹搜索。 深度神經(jīng)網(wǎng)絡(luò)是包含超過一個認知層的計算機神經(jīng)網(wǎng)絡(luò)。人們將人工智能設(shè)計出不同的“層”,來解決不同層級的認知任務(wù)。這種具備許多“層”的神經(jīng)網(wǎng)絡(luò),被稱為深度神經(jīng)網(wǎng)絡(luò)。這話說的太學(xué)術(shù)了,大家難免犯暈。簡而言之,阿法狗還是跟人學(xué)了兩招,第一是大局觀。利用一種價值網(wǎng)絡(luò)算法來明晰局勢的判斷,從全局“戰(zhàn)略”著眼,拋棄不合適的路線;第二招是微操作,利用策略網(wǎng)絡(luò)算法優(yōu)化每一步落子,優(yōu)化具體的“戰(zhàn)術(shù)”,減少失誤。兩者結(jié)合在一起,使得阿法狗不需要過于龐大的計算也能夠走出精妙的棋局。單憑一招是難以應(yīng)付復(fù)雜局面的。 圖片來源網(wǎng)絡(luò) 卡斯帕羅夫敗給深藍,那是因為深藍輸入了能找到的所有國際象棋的棋譜。但是對于圍棋,這遠遠不夠。因為圍棋的可能性太多了,全部棋譜也不夠冰山一角,恐怕還有好多種下法,人類還沒碰到過。阿法狗使用了監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。這是機器學(xué)習(xí)方式的不同種類。監(jiān)督學(xué)習(xí)是指機器通過人類輸入的信息進行學(xué)習(xí),而加強學(xué)習(xí)是指機器自身收集環(huán)境中的相關(guān)信息作出判斷,并綜合成自己的“經(jīng)驗”。在初始階段,阿法狗收集研究者輸入的大量棋局數(shù)據(jù),學(xué)習(xí)人類棋手的下法,形成自己獨特的判斷方式。之后,阿法狗就如雙手互搏一樣自己跟自己下棋,每一次都能總結(jié)經(jīng)驗獲得提高。它一天可以自己跟自己下 100 萬局棋,而人類棋手終其一生也下不過 3 萬局。當(dāng)然啦,也不乏人類給他陪練,阿法狗在網(wǎng)絡(luò)上和眾多頂尖高手下快棋,這并不是閑得無聊之舉??梢赃@么說,阿法狗見到過的走法很可能大部分圍棋高手都沒見過。誰知道這家伙半夜不關(guān)機,通著電自己跟自己對練走過哪些稀奇古怪的棋啊。 說到底,一步棋到底該怎么走,其實還是有很多種走法。哪種辦法是最合算的,贏面最大呢?那就必須從龐大的可能性里面去搜索出來。蒙特卡洛搜索樹就是一種高效率的搜索算法。蒙特卡洛方法在金融工程學(xué),宏觀經(jīng)濟學(xué),生物醫(yī)學(xué),計算物理學(xué)(如粒子輸運計算、量子熱力學(xué)計算、空氣動力學(xué)計算、核工程)等領(lǐng)域應(yīng)用非常得廣泛。當(dāng)年計算機之父馮·諾依曼參與核彈研究的時候和烏拉姆一起搞出了這個辦法。因為涉及到隨機概率,就用了蒙特卡洛這個名字,源于摩納哥的蒙特卡洛賭博業(yè)極其出名。概率最開始就是賭徒發(fā)明的數(shù)學(xué)嘛。不過上溯上去最早想到類似辦法的不是馮·諾依曼,而是法國的博物學(xué)家布豐。 布豐投針是個很有意思的東西,一張白紙,上面畫上幾條平行線,間隔寬度為 a。然后找一根小棍,棍子的長度是平行線的間隔的一半,即 a/2。然后你就扔吧,最后統(tǒng)計一下總共投擲了 n 次,有 m 次小棍和平行線相交。那么相交概率就是 m/n 。布豐計算了,這個概率就是 π 的倒數(shù),也就是你把它倒過來,n/m 應(yīng)該就趨近于 π。有興趣的朋友不防自己去試試。1901年,有個意大利人扔小棍扔了三千多次,最后計算出來的 π 精確到了小數(shù)點后面的 6 位 3.1415929,你看還是蠻準(zhǔn)的。投擲的次數(shù)越多,計算精度就越高。雖然扔了 3000 次得到的圓周率 π 值,還不如祖沖之的計算精度高,這可能是傳統(tǒng)蒙特卡洛方法長期得不到推廣的主要原因,但是這種算法省掉了繁復(fù)的數(shù)學(xué)推導(dǎo)和演算過程。這個特點碰到了計算機這種傻快的家伙,缺點就立刻轉(zhuǎn)變成了巨大的優(yōu)勢。 蒙特卡洛算法有個好處,那就是精確度和時間正相關(guān)。你要精確,那么多花點時間慢慢算;你要急著要結(jié)果,那就能快速算個大概。下圍棋很大程度上不需要那么精確,只要知道贏面比較大就行了,但是算得快是必須的。 具體到阿法狗怎么應(yīng)用蒙特卡洛算法呢?我們還是打個比方,一個不透明的罐子里面有大大小小各種各樣的蘋果。現(xiàn)在要你把最大的挑出來。當(dāng)然你不準(zhǔn)全倒出來,那不行。你也不知道里面的狀況,你甚至也不知道里面多大的算大。那么只能先摸摸看,一只一只摸出來,假如比上一個大,那就留下,反正你摸的時間越長就越有可能找到那個最大的。假如你時間來不及了,看看大小也還滿意,那就不摸了。阿法狗也是這個辦法。當(dāng)它挑選出來的這步棋足夠用了,贏面足夠大了,它就不必再費力氣搜索了。所以你看,柯潔反而被他逼的長考。阿法狗很實際,能贏你一點點就不用再花那個電費去算了。 柯潔還剩下兩場比賽,現(xiàn)在已經(jīng)幾乎沒有人認為柯潔能獲勝了。第一場比賽我在弈城看直播的時候,看到還有 20% 的人押柯潔贏,我估計下一場會低于 10%。但是,柯潔的失敗是人類的失敗嗎? 不,恰恰相反,我認為,柯潔的失敗是人類智力的又一次輝煌展示,這是數(shù)學(xué)的勝利,這是算法的勝利,這是人類對自然規(guī)律又一次深刻洞見后的勝利。阿法狗所采用的一切方法,歸根到底是我們?nèi)讼氤鰜淼臄?shù)學(xué)方法,阿法狗的研發(fā)工程師大多數(shù)甚至都不會下圍棋,他們只需要知道圍棋的基本規(guī)則,然后,賦予阿法狗通用的算法。這個算法不僅僅可以用來下圍棋,還可以用來做人臉識別、醫(yī)療診斷,甚至可以用來生產(chǎn)法律文書、新聞稿件等等。阿法狗代表的是人工智能的新高度,而人工智能其實代表的是人類智慧的新高度。 圖片來源網(wǎng)絡(luò) 我們完全沒有必要為柯潔的失敗感到沮喪,相反,我們應(yīng)該為算法的勝利而歡呼。 |
|
|