阿爾法狗(AlphaGo)運行機制是怎么樣的?

在很多評論中,對于AlphaGo都有很多不正確的猜測,首先是AlphaGo有沒有整體棋局評估的能力,那么阿爾法狗的運營機制導致到底是怎么樣的?

AlphaGo有哪兩個大腦組成的神經網絡系統組成?

在架構上,AlphaGo可以說是擁有兩個大腦,兩個神經網絡結構幾乎相同的兩個獨立網絡:策略網絡與評價網絡,這兩個網絡基本上是個13層的卷積神經網絡所構成,卷積核大小為5*5,所以基本上與存取固定長寬像素的圖像識別神經網絡一樣,只不過我們將矩陣的輸入值換成了棋盤上各個坐標點的落子狀況。

第一個大腦「策略網絡」基本上就是一個單純的監督式學習,用來判斷對手最可能的落子位置。他的做法是大量的輸入這個世界上職業棋手的棋譜,用來預測對手最有可能的落子位置。在這個網絡中,完全不用去思考贏這件事,只需要能夠預測對手的落子即可。目前AlphaGo預測對手落子位置的正確率是57%(這是刊登在Nature文章時的數據,現在想必更高了)。那各位可能認為AlphaGo的弱點是否應該就在策略網絡呢?

一方面是由于預測準確率不高,再者是如果下了之前他沒看過的棋局是不是就有機會可以贏過他。可惜并不是,因為AlphaGo的策略網絡有做了兩個層面增強,第一個層面是利用了名為增強策略網絡的技術,他先使用部分樣本訓練出一個基礎版本的策略網絡,以及使用完整樣本建立出來的進階版策略網絡,然后讓兩個網絡對弈,后者進階版策略網絡等于是站在基礎版前的高手,因此可以讓基礎網絡可以快速的熟即到高手可能落子的位置數據,進而又產生一個增強版,這個增強版又變成原有進階版的「高手」,以此循環修正,就可以不斷的提升對于對手(高手)落子的預測。

第二個大腦是評價網絡。在評價網絡中則是關注在目前局勢的狀況下,每個落子位置的「最后」勝率(這也是我所謂的整體棋局),而非是短期的攻城略地。也就是說策略網絡是分類問題(對方會下在哪),評價網絡是評估問題(我下在這的勝率是多少)。評價網絡并不是一個精確解的評價機制,因為如果要算出精確解可能會耗費極大量的計算能力,因此它只是一個近似解的網絡,而且透過卷積神經網絡的方式來計算出卷積核范圍的平均勝率(這個做法的目的主要是要將評價函數平滑化,同時避免過度學習的問題),最終答案他會留到最后的蒙利卡羅搜尋樹中解決。

當然,這里提到的勝率會跟向下預測的步數會有關,向下預測的步數越多,計算就越龐大,AlphaGo目前有能力自己判斷需要展開的預測步數。但是如何能確保過去的樣本能夠正確反映勝率,而且不受到對弈雙方實力的事前判斷(可能下在某處會贏不是因為下在這該贏,而是這個人比較厲害),因此。這個部分它們是透過兩臺AlphaGo對弈的方式來解決,因為兩臺AlphaGo的實力可以當作是相同的,那么最后的輸贏一定跟原來的兩人實力無關,而是跟下的位置有關。

也因此評價網絡并不是透過這世界上已知的棋譜作為訓練,因為人類對奕會受到雙方實力的影響,透過兩臺對一的方式,他在與歐洲棋王對弈時,所使用的訓練組樣本只有3000萬個棋譜,但是在與李世石比賽時卻已經增加到1億。由于人類對奕動則數小時,但是AlphaGo間對奕可能就一秒完成數局,這種方式可以快速地累積出正確的評價樣本。所以先前提到機器下圍棋最大困難點評價機制的部分就是這樣透過卷積神經網絡來解決掉。

蒙地卡羅搜尋樹技術跟阿爾法狗有什么關系?

AlphaGo技術的最后環節就是蒙地卡羅搜尋樹,相較于以前深藍所使用的搜索(搭配MinMax搜索算法以及Alpha-Beta修剪法,這里就不再贅述),由于我們并非具有無限大的計算能力(請注意,如果是有限的排列組合,蒙地卡羅搜尋樹的確有可能針對所有組合進行通盤評估,但是在圍棋的場景下是沒有辦法的,就算這樣做,恐怕也會造成計算時間的大幅增加),因此不可能是適用于舊的方法,不過在前面策略網絡以及評價網絡中,AlphaGo已經可以針對接下來的落子(包括對方)可能性縮小到一個可控的范圍,接下來他就可以快速地運用蒙地卡羅搜尋樹來有限的組合中計算最佳解。

一般來說蒙地卡羅搜尋樹包括4個步驟:

1.?選?。?/b>首先根據目前的狀態,選擇幾種可能的對手落子模式。

2.?展開:根據對手的落子,展開至我們勝率最大的落子模式(我們稱之為一階蒙地卡羅樹)。所以在AlphaGo的搜尋樹中并不會真的展開所有組合。

3.?評估:如何評估最佳行動(AlphaGo該下在哪?),一種方式是將行動后的棋局丟到評價網絡來評估勝率,第二種方式則是做更深度的蒙地卡羅樹(多預測幾階可能的結果)。這兩種方法所評估的結果可能截然不同,AlphaGo使用了混合系數(mixing?coefficient)來將兩種評估結果整合,目前在Nature刊出的混合系數是50%-50%(但是我猜實際一定不是)

4.?倒傳導:在決定我們最佳行動位置后,很快地根據這個位置向下透過策略網絡評估對手可能的下一步,以及對應的搜索評估。所以AlphaGo其實最恐怖的是,李世石在思考自己該下哪里的時候,不但AlphaGo可能早就猜出了他可能下的位置,而且正利用他在思考的時間繼續向下計算后面的棋路。

使用蒙利卡羅搜索樹技術能夠阿爾法狗的等級層度達到迅速的提高

根據AlphaGo團隊的實測,如果單獨使用一個大腦或是蒙利卡羅搜索樹技術,都能達到業余(段)的等級(歐洲棋王樊摩強度等級大概是在2500~2600,而李世石是在3500以上)。但是當這些技術整合就能呈現更強大的力量。

但是在刊登Nature論文時他的預估強度大概也只有職業3~4段(李世石是9段),不過剛剛提到他透過增強技術強化策略網絡、透過兩臺AlphaGo來優化評價網絡,這都可以讓他可以在短時間變得更加強大。而且計算機沒有情感也不怕壓力,更不會因為對手表現而輕敵(AlphaGo的策略網絡一向只預測強者),所以人類就算有更強大的實力也未必能夠承受輸贏壓力而做最好的發揮。


公子義【微信號gongzi348】80后,90后心理研究專家,4年心理學,9年大數據研究者,專注于移動互聯網,大數據究狂熱愛好者,熱愛寫作。原創文章,未經許可,嚴禁轉載,違者追究法律責任。

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

推薦閱讀更多精彩內容