AlphaGo技术剖析:揭开围棋大脑的神秘面纱
● 每周一言
智能所體現的思維與認知,沒有標準。
?
?
導語
圍棋,起源于我國堯舜時期,自古以來備受追捧,蘊含著中華文化的豐富內涵。有別于象棋和國際象棋,圍棋棋盤之大,玩法千變萬化,其落子的可能性更是不可估量,因此一直以來都是棋類AI無法攻克的一道屏障。
隨著深度學習的快速發展及計算機硬件技術的突飛猛進,DeepMind團隊研發的AlphaGo圍棋AI程序于去年一月以5:0優勢橫掃歐洲圍棋專業二段棋手樊麾,之后的三月份則以4:1大勝圍棋專業九段、世界排名第四的韓國棋手李世石。?
最近,新版AlphaGo又與世界排名第一的我國棋手柯潔對弈三局:5月23日第一局柯潔以四分之一子的半目差距憾負;25日第二局柯潔中盤認負;27日第三局209手柯潔投子。最終柯潔0:3敗于AlphaGo。
?
那么,AlphaGo為何如此之強?其背后的算法思想是什么?能橫掃當今的人類最強棋手柯潔,是否意味著已經開啟強AI時代之門?
AlphaGo
其實網上已經有很多介紹AlphaGo背后技術的文章,不過其中大部分文章一上來就把AlphaGo分成策略網絡(Policy Network)和價值網絡(Value Network)兩個部分來講,個人感覺有點過于抽象和籠統。本著學習交流的態度,想從技術角度為大家剖析一下AlphaGo的內部實現機制,若有理解偏差之處,還請留言相告。?
揭開AlphaGo的神秘外衣,它是一個機器學習項目。既然是一個機器學習項目,那么至少包含這三個模塊:特征提取,模型訓練和模型預測。我們不妨就從這三個方面展開,來講講這個“神秘的”機器學習項目。
?
特征提取
對于圍棋數據來說,特征提取就是把每一步下棋狀態數值化、結構化。?AlphaGo所用的原始圍棋數據取自KGS圍棋服務器上6到9段的對局,共16萬盤近3000萬步走棋。根據不同子模型的需求,AlphaGo從這些原始的棋局中一共提取了兩份特征數據。?
首先,我們不難想到第一個最直觀的棋盤特征,那就是落子情況。如上圖所示,圍棋棋盤大小為19×19,每一個位置的可能落子情況有三種:黑子、白子或留白。因此一個樣本的落子特征數據就是3個19×19的矩陣,每個矩陣分別描述棋盤上的一種落子情況。
?
除了落子情況,當前棋盤本身的狀態也可以提取出許多特征,比如當前執黑還是執白、每個落子經過的輪次、落子后預計吞子數目以及落子是否合法等。拿“每個落子經過的輪次”特征舉例,一個8位的二進制串足以表示任一方在整盤棋中所下的輪數,因此該特征可以用8個19×19的矩陣表示。下圖舉例展示了落子情況的特征矩陣形式,其他特征以此類推。?
加上落子情況,AlphaGo一共提取了48種特征,構成一個19×19×48的特征空間。為了方便后文敘述,這份特征數據集先命名為SetA。SetA相當于一份圖片數據集,作為卷積神經網絡的輸入。
?
除開圖片數據集,AlphaGo還根據圍棋的領域知識提取了另一份喂給softmax回歸網絡的局部特征,用來實現快速走棋,為后面的蒙特卡洛樹搜索 (MCTS)做準備。對于這些局部特征,AlphaGo只提供了數目統計,并未給出這些特征的具體提取方法,數目統計如下圖所示。?
同樣,為了便于后文描述,這份特征數據集命名為SetB。
?
模型訓練
一上來就分為策略網絡與價值網絡來講,只會加“厚”AlphaGo的神秘面紗。講道理,AlphaGo的子模型其實一共有四個:卷積策略網絡、增強策略網絡、softmax回歸網絡和卷積價值網絡。下面我將逐一講解這四個網絡結構及其訓練過程。
卷積策略網絡
這里有必要先鋪墊幾句,自從機器學習的泰山北斗Hinton在06年重新掀起深度學習的熱潮以來,伴隨著計算機硬件技術的迅猛發展,作為深度學習代表之一的卷積神經網絡(Convolutional Neural Network,CNN),在算法界可謂無人不知無人不曉。CNN擅長解決的問題是圖像識別和圖片分類,在這些問題上有著驚人的效果,因此DeepMind團隊選擇了CNN來訓練AlphaGo的base模型。這個模型的網絡結構如下圖所示。?
可知,輸入數據集為setA,卷積策略網絡共有13個卷積層,一個softmax全連接層。其中第1個卷積層使用5×5的卷積核同尺寸Relu輸出,第2~12個卷積層均使用3×3的卷積核同尺寸Relu輸出,第13層使用1×1的單元核做了一個線性歸一的過濾,最后softmax全連接層預測輸出下一步落子位置的可能性。
?
可想而知,這個卷積策略網絡所形成的圍棋AI水平已經很高了,起碼它已經學會了大部分人類高手的下法。但是,這對于AlphaGo來說還遠遠不夠。
增強策略網絡
如果說卷積策略網絡是一個學習他人、超越他人的階段,那么增強策略網絡就是一個自我學習、超越自我的階段。據說AlphaGo的內部測試結果為,增強策略網絡對上卷積策略網絡的勝率高達80%!那么其究竟是如何實現自我學習的呢?
這里不得不說一下增強學習了。增強學習又稱強化學習,是通過一種不斷地自我試錯方式,來找到最佳策略并加以激勵的機器學習方式。就以下圍棋為例,好比兩個完全不會下棋的人,一開始都隨機落子,直到一方獲勝。獲勝的一方根據走法來優化自己的落子策略,然后兩人再繼續不停地下棋、優化、下棋,重復這樣的過程,直到滿足某一條件。最終,不會下棋的人也能知道哪一步是好棋,哪一步是臭棋。這就是增強學習的一種通俗解釋,有點像周伯通的雙手互搏術。?
增強策略網絡使用增強學習進行訓練,這里可不是隨機落子,而是用卷積策略網絡這個基礎AI開始落子。具體方法是先復制一份卷積策略網絡參數給增強策略網絡初始化,最終輸贏標簽和棋為0、贏棋為1、輸棋為-1,然后用增強策略網絡反復和自己弈棋,根據輸贏結果反向傳播更新網絡參數。經過若干次迭代之后更新一份參數至對手網絡,直至滿足一定的條件后結束。
?
據說單憑該網絡的下棋水準就已經達到了KGS的3d水平。不過,AlphaGo并沒有在最后的系統中使用這個增強策略網絡,理由是增強策略網絡的走棋風格缺乏變化,對后面的蒙特卡洛樹的搜索不利。
softmax回歸網絡
大家或許會問,上面已經有了一個很強的走棋網絡,為什么還需要一個softmax回歸網絡來走棋呢?我想可能有如下兩點原因:
第一,回歸網絡結構只有一個隱層,相比卷積神經網絡的13層結構,其落子的速度實在是快太多了,根本不在一個數量級上,且準確率還不錯,而后面要講的蒙特卡洛樹搜索方法對搜索的時間要求很高,卷積網絡無法滿足要求;?
第二,**softmax回歸網絡的數據集是**setB,與setA處于完全不同的特征空間,因此能提高走棋策略的多樣性,增加了是落子的不同可能性。
?
事實證明,用softmax回歸網絡單獨落子,也達到了KGS的3d水平。
卷積價值網絡
這是AlphaGo的又一個厲害之處,就是說AlphaGo不僅要有高效的落子方案,還要有這么一個網絡來評估當前棋局的獲勝概率,來雙重保證當前的落子方案是最優方案。
卷積價值網絡的算法思想是:每次隨機一盤棋局之中的輪次T,棋局的第1輪到T-1輪落子由卷積策略網絡生成;然后在第T輪隨機落子,第T+1輪一直到該局結束則使用增強策略網絡生成落子;最后計算輸贏,贏棋為1,輸棋為0,反向傳播誤差調整網絡參數。這個卷積價值網絡的結構如下圖所示。?
觀察上圖可知,除了輸出層把softmax層替換成了256的全連接層外加一個Tanh激活層,其它層的結構與卷積策略網絡一模一樣。此外,需要注意的是,這里的輸入數據集全部是由卷積策略網絡和增強策略網絡共同生成。而且為了避免同一對局下,輸入不同但結局相同所帶來的過擬合現象,每一個對局只會取一個樣本進行訓練,這也是為什么單獨采集了3000萬個對局的樣本作為訓練集的原因。
?
模型預測
打造好了上述四件兵器,卷積策略網絡、增強策略網絡、softmax回歸網絡和卷積價值網絡,AlphaGo披掛上陣。它走進了人類頂級圍棋道場與頂級棋手較量,采用的戰術策略就是前面提到的蒙特卡洛樹搜索 (MCTS),其搜索示意圖如下所示。?
?
蒙特卡洛樹搜索
MCTS的基本思想是:多次模擬未來棋局,然后選擇模擬次數最多的落子方案作為當前走法。具體步驟如下:
首先,用卷積策略網絡生成到未來T輪的落子方案;?
然后,用卷積價值網絡評估該落子方案的勝率,用softmax回歸網絡基于該落子方案繼續快速走棋,直至棋局結束得到輸贏結果,綜合兩個結果算出該T輪落子方案的勝率;?
接著,結合該勝率,用卷積策略網絡重新生成到未來T輪的落子方案,若出現相同走法,則勝率取平均值;?
最后,循環上述過程若干次,選擇模擬次數最多的勝率最高的落子方案作為當前走法。?
現在這里可以總結說一下了,如果單純把AlphaGo分成策略網絡和價值網絡,那么策略網絡指的就是上面所說的卷積策略網絡,而價值網絡則是卷積價值網絡與softmax回歸網絡的結合。其中策略網絡負責計算當前的落子位置,價值網絡則負責評估落子該位置的最終勝率,MCTS則利用這兩個結果進行搜索,給出最終的落子方案。
?
據說最近對戰柯潔的AlphaGo Master版本要勝去年的李世石版本三目,與柯潔三局下來也沒有出現像去年第四局那樣,因昏招而落敗的情況。推測原因,一是在MCTS的時候做了優化,結合快速走棋來搜索節點而不是只用卷積策略網絡,這樣就能避免短期內落入局部思維而完全忽略人類的“神來之筆”;二是數據集已經完全棄用人類棋局,而是用從AlphaGo自我對弈中挑選出的樣本來構成,因此策略網絡也會更加強大。?
這里多說一句,只用卷積策略網絡搜索節點存在弊端,是因為卷積核一般都很小,導致棋盤不同位置的局部視野需要在若干輪之后才能相互影響,因此才出現了所謂的昏招。
?
文末,想表達一下我對下面這個問題的觀點。
先后勝樊麾、李世石與柯潔,是否意味著AlphaGo已具備自主意識,走向強AI時代?
對于這個問題,我想用兩點來回答一下。?
其一,一個能識別出美女圖片的圖像識別系統,是否就是好色呢??
其二,Facebook黑暗森林的負責人田淵棟老師說,AlphaGo在去年三月和李世石對局的時候要求用中國規則,因為如果換成別的規則,預測目標發生改變,AlphaGo就需要重新訓練價值網絡了。?
智能所體現的思維與認知,沒有標準。而目前各大公司的人工智能項目,更像是標準化的產物。所以從這些方面看,無論是AlphaGo、Google Brain,還是百度大腦,離真正的智能其實都還很遙遠。
總結
以上是生活随笔為你收集整理的AlphaGo技术剖析:揭开围棋大脑的神秘面纱的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GBDT和RF的区别
- 下一篇: zookeeper应用之分布式锁