圍棋人工智慧的發展歷程是怎麼樣的?

最近Google的AlphaGo在棋圈很火,想很多的了解一下,有沒有一些什麼有趣的故事?

進入圓桌 ? 人機對弈終章,參與更多相關討論。


圍棋基礎知識尚未了解的可以移步:零基礎應該怎麼學圍棋?

『寫在前面』

圍棋的變化數對於目前看起來強大無比的計算機資源,仍然是一個無窮一般的概念。AlphaGo可以打敗人類頂尖水準棋手,但是還遠遠達不到「最優解」的程度。

AlphaGo對於棋界無疑是一陣巨大的革新浪潮,現在總能在棋手聚會裡看到非常精彩的新招拆解,也就是戲稱為「狗招」的大局觀極強的下法後續的定論探討。

這篇文章為了幫助大家理解,做了很多比喻,希望大家能從這篇文字里開始理解AlphaGo。

『感受不尋常的「寧靜」』

說起人工智慧,最近老想到這個鐵腦袋:

禪雅塔,一個智能機械,居然是負責教導大家心靈平靜,追尋inner peace 的禪師角色。

另外,禪師會通過釋放大招加血,讓你在無敵狀態中感受真正的「寧靜」。

很多朋友聽說過國際象棋程序 -- 深藍。在1997年深藍擊敗了國際象棋特級大師卡斯帕羅夫。就在當時,圍棋程序的水平仍然是k級,也就是不到業餘初段。截止2015年,全世界6000多種完全信息博弈遊戲中,只有圍棋程序無法抗衡相關領域的職業選手。

等等,什麼是完全信息博弈遊戲!?

完全信息博弈遊戲的定義 :是指每一參與者都擁有所有其他參與者的 特徵 策略 得益函數 等方面的準確信息的博弈。

圍棋、象棋 落下子來,手中不藏牌,盤上規則沒有變數,勝負在於面對 於人腦近乎於無窮的變化數量,做一個優化的策略、合理聚焦、深度速。對手隱藏的陷阱招數,全部隱含與已經落在盤上的棋子之間。

(成名多年的圍棋高手也會常常被妙算無窮的好棋深深折服,圍棋的魅力正源於此)

非完全信息博弈遊戲,對比完全信息大家想必已經有大致了解了。橋牌,暗棋,各種帶有戰爭迷霧的遊戲。

(這個策略,嗯,保留意見吧,墨鏡挺帥的)

『圍棋人工智慧為什麼來的這麼晚』

從1997年到 2015年,近20 年的時間裡,各類硬體發生了質的飛躍,我們不再有人指望囤積 BP機(尋呼機)還能賺錢,一部手機已經可以輕鬆運轉類似無盡之劍這樣精良的作品。為什麼過了這麼久,人機對抗仍然需要調用非常誇張的計算資源?

??圍棋人工智慧的難度主要體現在兩方面

  1. 搜索空間巨大:合法的圍棋的變化(10^170)大於宇宙中原子數(10^80)。
  2. 局面判斷難:多人發表論文,說明,不可能有一個很好的靜態局面評估函數局面評估函數。靜態局面評估函數(可以簡單類比中國象棋殘局) 動態局面評估函數(類比中國象棋殘局 往前推算)。

這兩點暫且放在這裡,之後細表↓

???我們把圍棋人工智慧的發展分為三個階段:

第一階段:以模式識別和人工啟發式演算法為主,水平低於業餘初段。

第二階段:以蒙特卡洛搜索樹演算法為代表,水平最高達到業餘5段。

第三階段:以機器學習演算法為突破,戰勝人類職業棋手。

????? 第一代圍棋人工智慧 ???

第一個完整下完一盤棋的程序,是1968年, 美國人Albert L. Zobrist,作為他的博士論文完成的。

不過,接下來的20年里,圍棋AI們即使是對上剛入門的初學者,也難求一勝。

1987年,應氏圍棋基金會懸賞百萬美元,尋求能夠戰勝職業棋手的圍棋AI。這個懸賞分很多級,最低一級獎金,是十萬新台幣,相當於四千美元,獎勵給第一個能夠受讓十六子戰勝業餘高手的程序。

1987年的百萬美元啊! 當時程序的水平,可想而知。

(讓十六個就是這樣,黑棋關鍵的地方先擺上十六個,然後黑白一人一步比拼誰的領地大)

一直到1990年,一位中國人,中山大學化學系教授陳志行,在退休以後,花了幾個月的時間編寫了名為「手談」的程序。手談問世以後幾年內,實力快速增長。

1995年,手談連續拿到了受讓十四子和十二子戰勝業餘高手的獎金。

1997年,手談再過業餘高手的十子關。這三次突破共計為陳志行帶來了六十萬新台幣的獎金。同時,在1995至1998年,手談在兩項計算機圍棋世界賽中七連冠,在整個九十年代鶴立雞群,獨佔鰲頭。

(這張照片與手談軟體 都是與我們這一代棋迷一起長大的回憶)

◤◤手談的秘密武器◢◢?

前面講到,圍棋難,一難在搜索空間大,就是不知道往哪裡下,二難在局面判斷難,就是看不出是要贏還是要輸。陳教授為了解決這兩個問題,祭出了一個秘密武器——「勢力函數」。

請看這個圖。

勢力」是圍棋術語,說白了,就是一個棋子對周圍空間的影響。陳志行認為,這種影響是可以量化的。比如,這圖中有一顆黑子。離黑子最近的四個點,用圈標出的,受到的影響力是4. 稍微遠點,用×標出的四個點,受到影響力是3. 用方塊標出的,受影響力是2。三角形標出的,受影響力是1. 更遠的地方,就沒有影響了。當然,棋盤上有很多個子,位置不同。我們把所有棋子的影響力疊加起來,就可以得到,棋盤上的某一個空點,到底是黑棋的勢力範圍,還是白棋的勢力範圍。

這樣一來,形式判斷的問題就有了一個初步的解決方案。

對於這個圖上的局面,

我們看下面這個圖。當然,這個圖不是手談的形勢判斷,因為這個軟體太舊了。不過直觀上是相似的。

(標字母的請忽略)

比如我們有這麼一個局面。棋盤中間標有字母的幾個黑棋請大家忽略,這些棋不在棋盤上。那麼手談會怎麼判斷呢?看下面這圖

很直觀的,更靠近白棋勢力範圍的,比如左上角,白色的方塊幾乎都塗滿了,表示這是白棋的確定地。而右下,黑方的確定地,也是一樣。而處於兩者之間的,比如棋盤左邊中間,黑白勢力範圍的交界處,也可以看出很明顯的過渡。這就是一個不太壞的靜態的局面評估函數。

所謂靜態,就是給你一個局面,不用考慮這個局面會怎麼發展,就能判斷

同樣地,這個影響函數也能初步解決這棋該走哪的問題。比如說,陳志行經常舉的一個例子。當年手談的對手,其它程序們,面對一個棋型,總是懵逼。就是下面這個棋型:

(小棋盤的例子 ?)

黑棋帶圈的這兩個子,構成一個棋型,叫做小飛。現在白棋走在1這個位置。對於下圍棋的人來說,黑棋接下來的應法是常識。

(這種走了被別人應對了自己就尷尬的叫做 臭棋)

黑棋應該擋住。這樣黑棋三個子連成一片,白1已經基本成為廢子。

其它程序們不知道,但是手談知道。對於上面那個局面,手談的勢力函數就發威了:根據一個局部影響函數的分布,手談不難識別出,這是一個黑棋小飛,白棋威脅要切斷黑棋的棋型。這就是一種所謂的模式識別。那麼一旦遇到這種情況,我擋住就好了。好,到了實戰的時候,手談遇到對手,都能擋住小飛。而對手遇到手談,就是下面這種情況。

(被白棋沖穿了局部很不好收場)

黑方中間這兩個子被白方切斷。黑棋被撕裂,黑棋形勢瞬間惡化。難怪手談戰無不勝。

但是。我必須說的是。這個勢力函數,不是萬能的。圍棋有太多複雜的局部棋型,手談對於識別更多的棋型無能為力。同時,基於勢力函數的形勢判斷,也並不是很準確。這就限制了手談的進一步提升。

陳教授的畢生目標是讓手談提升到受讓陳教授自己九子能獲勝的水平。

陳教授是業餘高手,比剛才提到的,應氏基金會派出的測試手談的棋手,水平還要高一些。能夠受讓九子戰勝陳教授,可以說基本上達到了業餘初段的水平。讓九子是這麼擺的:

(以前讓新手好多次9子,也想起很久遠的以前被讓九個,被折騰的摸不著頭腦)

黑棋先擺九個,然後白棋落子和黑棋比拼領地大小。

可以看到黑棋優勢還是很大。可是,直到陳教授在2008年去世,手談也沒能過陳教授的九子關。實際上,在1997年後,圍棋程序陷入了一段發展緩慢的時期。這就有了下面這個故事,「初段圍棋賭局」。

1997年,與深藍戰勝卡斯帕羅夫同一年,工程師Darren Cook, 向計算機圍棋從業者,包括陳教授,和幾位職業棋手,提出了一個問題:什麼時候才能有圍棋程序達到業餘初段水平? 大家的答案五花八門。有說三年以後的。陳教授說2020年。有個職業棋手說要到23世紀。

http://www.smart-games.com/worldcompgo.html

(這裡看 World Computer Go Championships)

【初段賭局】

其中最勁爆的是,一位計算機科學家,名叫John Tromp的回復,到2011年,不可能有圍棋程序戰勝我。John是歐洲業餘一級,比業餘初段只低一個級別。而且,John為自己押了一千美金。這比某位微博大V說川普贏了大選就吃翔,最後躺地打滾,要可靠多了。Darren欣然接受賭局。

那麼這一千美金的賭局,最後結果如何呢?

我們要先講完第二代人工智慧。

??????? 第二代圍棋人工智慧

一個下棋程序,可以歸結為一個問題:

也就是,在某一個局面下,輪到自己下棋,你要下在哪裡。

圍棋盤上,有許多選擇,所以這個問題就歸結為,這麼多的選擇,哪一個是最好的,或者說,比較好的。

極小化極大搜索演算法 Minimax tree search

alpha–beta pruning

(井字棋大概 那麼示意一下)

?

最簡化的情況做一個講解 ?

假設我們對每個局面有一個評分,評分越高代表對自己越有利。相反的,如果評分低,代表對對方有利。

當輪到自己落子時,自己面臨兩種選擇A1,A2。自己選擇A1後,對方可以選擇B11,B12。自己選擇A2後,對方可以選擇B21,B22。

評分:

B11: 3

B12: 5

B21: 0

B22: 10

Minimax選擇A1。

(亂入一張圖,五彩斑斕,還有全局(global)感)

(圍棋的選點很多,但是賦值卻極為困難,而且隨著局面變化會產生變化)

那靜態和動態都是人為賦予分數來計算,實際執行的時候會有什麼明顯差異么?

靜態評估,就是只看棋盤的當前狀態。動態評估,還需看除當前狀態外的其它狀態。比如用蒙特卡洛模擬大量棋局進行評估。

Monte-Carlo methods

第一代圍棋人工智慧的局限:局面評估相比國際象棋,圍棋的局面評估非常難。大家可能了解,國際象棋裡面的後和車,威力很大。如果一方多了一個後或者多了一個車,一般說來局面一定對那一方有利。當然還要根據子力位置好壞進行一定調整,但是一般說來利用子力價值評估,已經能得到相當好的局面評估。但是對於圍棋,並不能這樣套用。因為每一顆圍棋棋子都是一樣的,只是在棋盤上出現在不同位置,才出現了不同棋子之間的價值差別。而這對於電腦來說,是非常難以判斷的。

MCTS 蒙特卡洛搜索樹

蒙特卡洛是摩納哥公國的一座城市,位於歐洲地中海。蒙特卡洛是摩納哥的歷史中心,也是世界著名的賭城。蒙特卡洛演算法蒙特卡洛方法(英語:Monte Carlo method),也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的發展和電子計算機的發明,而被提出的一種以概率統計理論為指導的一類非常重要的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。

(蒙特卡洛是這樣的城市)

舉例來說:假設我們要計算一個不規則圖形的面積,那麼圖形的不規則程度和分析性計算(比如,積分)的複雜程度是成正比的。蒙特卡洛方法基於這樣的思想:假想你有一袋豆子,把豆子均勻地朝這個圖形上撒,然後數這個圖形之中有多少顆豆子,這個豆子的數目就是圖形的面積。當你的豆子越小,撒的越多的時候,結果就越精確。藉助計算機程序可以生成大量均勻分布坐標點,然後統計出圖形內的點數,通過它們佔總點數的比例和坐標點生成範圍的面積就可以求出圖形面積。

在賭場中有很多數學概率計算的項目。蒙特卡洛演算法在處理有些問題時候相當有效。故因此得名。

蒙特卡洛搜索樹演算法是一個基於蒙特卡洛思想,解決圍棋局面評估問題的演算法。簡單的說,對計算機來說,圍棋局面很難評估孰優孰劣,因為沒有定型的地方很難判斷屬於哪一方。但是,如果棋局已經下完了,那就可以數子,來判斷誰贏了。那麼,對於一個沒下完的局面,就電腦模擬,把他下完。每模擬一次,就得到一個最終的勝利結果。假如對於一個未完成的局面,模擬10000局,其中黑方贏了5500局,白方贏了4500局。就認為此局面下黑方稍優,認為黑方勝率55%。

這種演算法好處在於:

  1. 充分利用了電腦的計算能力。模擬的局數越多,得到的結果也就越精確。
  2. 這種演算法是天然支持並行計算的。因為不同的模擬之間沒有邏輯的因果聯繫,可以放到不同的機器上跑,最後再綜合結果。

這種演算法也有其缺點:

  1. 招法只是根據統計結果來決定,有時會缺少前後邏輯關聯。
  2. 打劫,尤其是連環劫。打劫有很強的前後關聯。
  3. 平均值和最大值的差異。舉例來說:(要先說minmax search)
  4. 現在有A1,A2兩種選擇:A1下面的是(3, 5),A2下面的是(0,10)。顯然應該選A1。因為如果我選了A1,我的對手會選3。如果我選B,我的對手會選0。0比3要小,所以我會選A1,這樣對我更有利。但是如果我用蒙特卡洛搜索樹演算法呢,我看了下A,有兩個可能,平均值是4。看了一下B,有兩種可能,平均值是5。這樣看上去B更好。
  5. 不同的分支,搜索的深度應該並不一樣。比如,思考A1招法時候,五步棋之後,明顯發現不好,後面的就不需要看了。而A2招法,十步棋之後,也很難說好與不好,還需要繼續往下計算。這時候如果平等的看待每個後續招法,是不合適的。

UCT 上限置信區間演算法 In 2006, a new search technique, upper confidence bounds applied to trees (UCT), UCT算 法是一種特殊的蒙特卡洛搜索演算法,它由樹內選擇策略、預設模擬策略和模擬結果回傳三部分組成。

  1. 時間可控,解決MCTS的第3個缺點,動態分配資源。好鋼用在刀刃上。如果算出去幾步,一看情況不妙,馬上收手,去算其他節點。
  2. UCT 演算法最後的作為搜索結果的節點以及次優節點一定是經過多次抽樣的具有較高估值可信度的節點。

--------------------------------------------------------------------------------------------------------------------------

在AlphaGo出現之前,最成功的圍棋人工智慧叫做Zen,中文叫做天頂圍棋。

§ 第三代人工智慧?????

我們先揭曉一下之前提到的,「初段圍棋賭局」的結局。在第二代人工智慧興起以後,圍棋AI進步迅猛。2008年,採用蒙特卡洛樹搜索的MoGo受讓九子戰勝金明完九段。次年,MoGo受讓六子戰勝簡立辰初段。業餘初段似乎已經不是AI們的對手。不過,John也不是坐以待斃。在過去的十幾年裡,John已經從業餘1級進步到了業餘2段。賭局最後期限臨近,懸念竟然不跌反增。2010年末,John Tromp 與 當時的一流程序多面圍棋大戰四局。結果令人意外,John 以4比0橫掃多面圍棋。並且,從進程來看,多面圍棋毫無還手之力,可以說是慘不忍睹啊。John就此贏得一千美元的賭金。

不過Darren不服。明明程序們早就超出了業餘初段的水平,只不過是你John也進步了。可是你一個人的進步,能有程序們的進步快?兩年以後我們再比一場,這次不求你賭,只求你出戰。

2012年中,John再次站在了pk台上。這一次他的對手是Zen。Zen當時已經在西方圍棋圈內小有名氣。在KGS上,每天都有業餘高手排著隊挑戰Zen。我記得當年我也和Zen下了十幾局。印象中,快棋輸得多。慢棋大致相當。當時我就覺得John一點機會都沒有啊。結果,John居然贏下了第一局。不過,Zen沒有再給John機會,連勝三局,從而贏得了這個系列賽。「初段賭局」就此告一段落。

同年,Zen在日本舉行的電王戰,也就是計算機圍棋的大賽中,奪冠。隨後Zen與武宮正樹對抗。武宮正樹九段,日本前超一流棋手,以「宇宙流」,也就是重視外勢的風格,受到棋友的喜愛。結果Zen連破武宮正樹的五子關、四子關,也就是分別受讓五子和四子戰勝武宮正樹。這標誌著圍棋AI達到了業餘高手的水平。

不過,回看當年視頻,可以看出武宮對局心態相當放鬆,明顯是用下指導棋的態度。棋局內容中武宮試探較多,有時也並未祭出最強下法。所以這個讓四子,需要打一個小小的折扣。

就在圈內一片樂觀之時,圍棋AI的發展卻又陷入了停滯。2012-2015年,圍棋AI進展緩慢。

2015 年末,在北京三里屯,世界圍棋人工智慧大會,程序石子旋風力挫Zen奪冠。在隨後的人機對抗中,中國的連笑七段——連笑,處於當打之年的一流棋手。連笑讓石子旋風四子和五子局皆勝,讓六子局才敗於石子旋風。在棋局中,石子旋風再次暴露出第二代圍棋AI行棋缺乏邏輯性的問題,特別是一個連環劫,被連笑耍得團團轉。

賽後,國家隊總教練俞斌說,圍棋AI戰勝職業棋手,恐怕還需要一百年。即使是參賽程序開發者們的「樂觀估計」,也認為這需要15-20年。

當時沒人想到,有一個程序正在飛速成長,並已經戰勝了一位職業棋手。

這個程序,現在大家都知道了,就是AlphaGo.

?? AlphaGo ??

那我們接下來介紹AlphaGo.

大家或多或少可能知道,阿法狗採用了一項核心技術,DCNN,也就是深度卷積神經網路。我們今天不展開講神經網路。不過,為了方便理解,我還是給出一個神經網路的直觀理解。

人工神經網路,模擬的是人腦中的神經網路。成年人的大腦里有一千億個神經元,而這一千億神經元構成的網路能夠實現無數不可思議的功能。一個普通的人工神經網路,通常能夠實現人腦功能的很小一部分。我們可以把它看成一個黑箱,比如下面這個圖。

具體到AlphaGo採用的神經網路,我們可以把它看成一個只會下棋的大腦。

一個只會下棋的大腦是什麼樣的呢?我們可以用人類棋手下棋時的思維方式類比。請看這個圖。

我們下棋的時候,面對一個局面,就好像給大腦輸入了信息。接下來,大腦處理這個信息,得到兩個輸出。一是候選招法。這個局面,根據我十幾年下棋的經驗,大概有ABCD這麼四種走法。二是形勢判斷。這A招法,我獲利10目。B招法,獲利3目。C脫離戰場,D方向錯誤。注意,這裡的判斷既有定量的,也有定性的。這是人類棋手判斷的特點。最後我確定,選擇招法A,並且默默再做一次判斷,確定自己有優勢。

其實AlphaGo和人類的思維方式十分接近。AlphaGo的神經網路主要分為策略網路和價值網路。

策略網路其實就是模仿人類給出候選招法的過程,而價值網路就是模擬人類形式判斷的過程。接下來我們具體展開。

策略網路

策略網路的始祖,是監督學習策略網路,也就是Supervised Learning Policy Network。我們用一個棋手來做比喻,藤澤秀行。藤澤秀行,已故的日本名譽棋聖。在座的部分棋迷也很熟悉,秀行在日本以私生活混亂和酗酒著稱。既有所謂「家中紅旗不倒,外面彩旗飄飄」,也有在中國會見鄧小平時,一身酒氣,滿嘴胡話的軼事。當然,我的重點是,藤澤秀行當年號稱「前五十手天下第一」,說的是藤澤秀行布局功夫了得,選點有獨到之處。這和監督學習策略網路很像。

監督學習策略網路,是從人類業餘高手的棋譜中挑選出三千萬個局面學習得到的。學習的結果是,這個網路在大部分時候能夠像人類的業餘高手一樣選點,總體有業餘3段的水平,就好像一個超低配版的藤澤秀行。

這個低配版的藤澤,另一個特點就是「慢」。藤澤秀行下棋也慢,他曾經有一手棋長考三小時,然後怒屠對手大龍的經歷。而低配版的藤澤秀行呢,一秒鐘只能下三百步。你可能會問,一秒鐘三百步還算慢?別急。跟接下來這位比,這個藤澤還真算慢的。

快速走子

英文Fast Rollout. 我們也拿一位棋手打比方,羅洗河。

羅洗河,中國職業九段,綽號神豬。當年羅洗河曾串燒五位韓國頂級棋手,並在決賽戰勝石佛李昌鎬,奪冠的同時,也終結了李昌鎬的霸業。羅九段以幼年測智商160 聞名棋界,下棋時落子飛快,經常只用對手的一半時間。而我們的快速走子網路,比神豬羅洗河更快。快速走子,一秒能走五十萬步,簡直就要上天。不過,快,就要犧牲下棋的質量。當年我學棋的時候, 有一段時間也下得飛快。我的老師就斥責我,「你這下得是圍棋嗎?你這簡直就是擺石子!」 快速走子,實力也和擺石子狀態的我差不多,業餘2段水平。

但是這個水平也不簡單啊。第二代圍棋AI為什麼遇到瓶頸?很大程度上就是因為在蒙特卡洛搜索樹的模擬中缺少一個能把色子投得又快又好的人。現在我們有羅洗河。它比策略網路快一千倍,實力卻差不了太多,恰好是負責模擬的最佳人選。另一方面,羅洗河天賦異稟。這個快速走子不是從完整的棋譜里訓練出來的,而是把所有局部的棋型都列舉出來。所有的局部棋型,12格的小方塊裡面,幾萬個棋型,大家算算3^12是多少,全部輸入到羅洗河的腦子裡,然後讓他自己琢磨去。這個琢磨的方法不是深度學習,而是線性回歸。不過,還是管用的。我們訓練快速走子,「羅洗河」的口號就是,不求最好,只求管用!

強化學習策略網路

接下來是一位重量級人物,聶衛平。擂台賽英雄,不必多介紹了。這裡值得一提的是,藤澤秀行當年為了幫助中國圍棋發展,曾多次自費組團前往中國指導年輕棋手。老一輩的中國棋手,包括聶衛平在內,都把藤澤看作自己的老師。同樣,強化學習策略網路,低配版的聶衛平,也是低配版藤澤,監督學習策略網路的學生。低配版聶衛平,從低配版藤澤的招法開始,在自我對弈的過程中不斷更新迭代,穩定以後變得比老師更強大,達到業餘4段。

這個低配版「聶衛平」的主要職責,就是鞭策後生,訓練價值網路。想當年,2002年圍甲聯賽,50歲的聶衛平和一位13歲少年對戰。聶衛平寶刀不老,戰勝少年。復盤時,老聶在棋盤上指點江山,輕鬆寫意。不料,少年不服,反覆強調如果我這麼這麼下就贏了。老聶不悅,拂袖而去,留下一句「你丫牛逼」。這位日後成為世界冠軍的少年,就是陳耀燁。

價值網路

陳耀燁以形勢判斷準確而著稱。我們看圍棋TV的直播,那麼多頂尖職業做過主播,唯有陳耀燁判斷最准,好像一台形勢判斷機器。而我們的價值網路,也是一台形勢判斷機器,一個低配版的陳耀燁。價值網路從強化學習策略網路的棋局樣本中汲取營養,將自己訓練到能夠,看到一個局面,就立即給出當前局面黑方的勝率。這個判斷有多準確呢?如果我們讓價值網路單獨上場,那麼它能夠達到業餘3段的水平,相當不俗。

現在我們有一個「四人團隊」了。「藤澤秀行」、「羅洗河」、「聶衛平」、「陳耀燁」,雖然都是低配版的。其實還有第五位,和「羅洗河」很像,就不展開講了。那麼這些只有業餘水平的神經網路,是怎麼變成戰無不勝的AlphaGo的呢? 關鍵回到之前介紹的,蒙特卡洛搜索樹。

在AlphaGo這裡,蒙特卡洛搜索樹中的基本步驟,大致是上面這個圖。第一步,選擇。我們通過策略網路,就是圖中的P,給出幾個候選招法,這是第一層子節點。第二步,擴展。我們擴展第一層子節點,通過策略網路再下一招,給出第二層子節點。注意,這一步在剛開始模擬的時候是沒有的。只有當第一層的子節點經過的次數超過40次的時候,才擴展這個子節點。第三步,評估。對於每一個子節點,我們分別用兩種方式評估。一種是用價值網路,v_theta,直接做形勢判斷。第二種是用快速走子,p_pi,將棋局走到底,勝則記為1,敗則記為0,這就是圖中的r函數。最後一步,我們再把這兩個結果返回第一層子節點,更新行動函數Q。重複N次以後,我們以行動函數Q,和另一個關於策略網路的函數u(P),這二者為依據,最終決定選擇哪一招。

上面那段可能有些朋友聽了有點暈,我們再結合一個具體的局面解釋。

這個圖的棋盤部分是從AlphaGo的論文里摘下來的。拿到這樣一個局面,我們先請出「陳耀燁」。你先看一眼這個棋大概誰好啊?

請看圖a,「陳耀燁」說,哦這個棋,如果黑走這裡,勝率50,走那裡,勝率51,最好是走右下這個畫圈的地方,勝率54。我說哦好謝謝,你可以走了。這裡只是請「陳耀燁」看看而已,並不作為主要決策依據。

接下來我們請出「藤澤秀行」,以您老人家的布局眼光,這棋走哪裡好呀?請看d圖。「藤澤」說,以我五十年喝酒的經驗,不,下棋的經驗,這棋我多半會走下邊中間這個扳。還有三分之一機會走右下角的沖。其它棋,我基本上不會選。好嘞,謝謝您。勞煩您,您說的這兩步,再幫我們分別往下擺一手。藤澤老師就幫我們分別擺了一手。

接下來,我們再把「陳耀燁」請回來。再勞駕你看看藤澤推薦的這幾招,到底好不好啊,你給判斷判斷?我們也把羅洗河請來。勞駕他用一秒鐘五十萬步的神功,模擬一下,誰贏誰輸?哎,不是讓他倆隨機選變化。你們一開始要聽長輩,藤澤老師的,重點模擬他那兩手。過段時間,你們有信心了,再多考慮你們自己的想法,明白了嗎? UCT. 十幾秒以後,陳耀燁給出了一個綜合報告,就是圖b,仍然堅持右下角的沖最好。羅洗河呢,報告說左下角的扳最好。這倆人的評價有分歧,聽誰的呢?綜合起來,我們取模擬次數最多的那一手。這就是圖e,發現是右下角的沖模擬次數最多, 79%,下邊的扳次之, 20%。我們最後選擇右下角的沖。那圖f是什麼意思呢?圖f,就是在由整個團隊共同決定的模擬中,重複次數最多的那個分支,或者說變化。如果是兩個阿法狗在對局,那麼他們接下來就有比較大的可能按照圖f進行下去。

這裡有一點,「聶衛平」老師,也就是強化學習策略網路,沒有出現。明明他比老師,藤澤秀行強呀,怎麼不讓他決策呢?AlphaGo的團隊也曾經讓聶衛平代替藤澤秀行做決策,結果單打獨鬥更強的「聶衛平」,在團隊里的效果卻不如「藤澤秀行」。為什麼呢?這就有點玄學了,官方的解釋是「聶衛平」給出的選擇隨機性太小。聶老布局水平高嘛,有很多棋在他眼裡都不是圍棋,只有他這一步才是對的。隨機性小就阻礙了搜索的廣度,這很不好,一不小心就漏看了一步棋。不過,說不定是聶衛平和團隊里的其它成員八字不合吧,比如陳耀燁。不過,這個低配版「聶衛平」,並非沒有價值。畢竟,他鞭策了後生,親手訓練了「陳耀燁」嘛。

這樣的一個團隊,通過蒙特卡洛搜索樹結合到一起。三個臭皮匠賽過諸葛亮,戰勝了職業二段樊麾,又在2016年3月,以4比1戰勝傳奇棋手李世乭。領頭羊的突破總是會帶動後來者。

歷史長河中,每個時代總會出現一位思維層次高過同時期其他所有人的棋界霸主,從 黃龍士、道策、吳清源 到李昌鎬。

每個時代的大師都以前所未見的形式衝擊了舊的思維禁錮,打開了新的天地。

不知道多少人曾經想像過這樣一件事,如果計算機幫忙窮盡計算,我們來做決策,豈不美哉,AlphaGo的出現確實整體的拔高了棋界對圍棋的理解。

如今絕藝每天在野狐出沒,AlphaGo就要決戰柯潔。

期待今年的人機大戰,希望柯潔能夠贏一盤。

(今年大家該趕緊做柯潔的表情包了~)


推薦一些人工智慧領域的學習資料給大家:

這是AI垂直媒體@智能玩咖 (ID:VRdaxue)的館藏

800G人工智慧學習資料下載鏈接

鏈接: https://pan.baidu.com/s/1eSnAZse 密碼: j9sk

人工智慧圖書館

人工智慧學術論文資料下載鏈接:

鏈接: https://pan.baidu.com/s/1eSCD8Tc 密碼: itu1

人工智慧融資資料庫下載鏈接:

鏈接: https://pan.baidu.com/s/1c23ohbi 密碼: wa9k

人工智慧深度解讀資料下載鏈接:

鏈接: https://pan.baidu.com/s/1pL0PQ7T 密碼: 7ed2

人工智慧政策庫下載鏈接:

鏈接: https://pan.baidu.com/s/1bpd7L5l 密碼: 2rrq

人工智慧各類報告庫匯總下載鏈接:

鏈接: https://pan.baidu.com/s/1eRJiReE 密碼: hq3s

人工智慧技術庫資料下載鏈接:

鏈接: https://pan.baidu.com/s/1hssqEKO 密碼: vpge

最詳細的人工智慧歷史資料下載鏈接:

鏈接: https://pan.baidu.com/s/1nvr05Fb 密碼: zi6b

知名人工智慧公司介紹資料下載鏈接

鏈接: https://pan.baidu.com/s/1o817TN0 密碼: 84yq

人工智慧領域重要產品介紹資料下載鏈接

鏈接: https://pan.baidu.com/s/1jHJHctK 密碼: q54q

人工智慧與行業資料下載鏈接

鏈接: https://pan.baidu.com/s/1qYFGU4k 密碼: ffih

人工智慧電子書庫

26本深度學習電子書下載鏈接:

鏈接: https://pan.baidu.com/s/1jI5dM6a 密碼: j6s6

61本機器人電子書下載鏈接

鏈接: https://pan.baidu.com/s/1slhOZE1 密碼: d8rf

37本大數據電子書下載鏈接

鏈接: https://pan.baidu.com/s/1o8t0yOq 密碼: 4pte

30本人工智慧電子書下載鏈接

鏈接: https://pan.baidu.com/s/1cu4ID4 密碼: vtwq


推薦閱讀:

像《無主之地》、《求生之路》這類遊戲,怪物的 AI 是怎麼做的?
如何看待商湯科技B輪融資4.1億美元 創AI行業融資紀錄?
小米掃地機器人的實際體驗如何?
怎麼看上海大學王興興同學做的xDog?
《星際穿越》中的機器人違反過機器人定律嗎?

TAG:人工智慧 | 圍棋 | 谷歌Google | AlphaGo |