AI大事記
圍棋作為一款完全信息博弈游戲,因其復雜性,從人工智能初期便吸引了無數的計算機專業人士的興趣,并設計各種算法與職業棋手進行挑戰。
隨著2016年3月份AlphaGo以4:1戰勝職業選手李世乭,今年5月推出Master以3:0戰勝世界第一的柯杰,再到2017年10月18日推出阿法元(在國際頂級期刊Nature發表文章),完全自主學習100:0完勝Mater,標志著圍棋人工智能經過多年的發展,徹底碾壓了人類。
接下來我就從圍棋人工智能的難度、阿法元的核心技術和未來幾個方面做一個梳理和介紹。
1. 圍棋人工智能的難度
圍棋人工智能的難度在于以下兩點:
- 搜索空間巨大:合法的圍棋變化(10^170) 大于宇宙中原子數(10^80)
- 局面判斷難:局面的判斷分為三個層次,首先是對當前雙方盤面的正確理解,其次是能夠識別對方意圖的識別,最后是評估,對對方各種意圖造成的后果進行客觀的評估。這三點逐層遞進,難于形式化,因此也是圍棋AI的一個重要挑戰。
2. 阿法元的技術思路
最新出爐的阿法元,仔細閱讀DeepMind發布的文章,其核心的思路如下圖所示,即
利用當前最優模型自主博弈產生大量訓練樣本->利用訓練樣本進行深度強化學習,更新當前訓練的決策模型->當前訓練模型和最優模型進行多輪對弈,利用結果評估兩個模型的優劣,并決定是否替換最優模型。然后依次迭代。
2.1 基于蒙特卡洛樹搜索的對弈數據生成
蒙特卡洛算法基于大數定理,即采樣點越多,則結果越接近于真實分布。那么在圍棋中,即每一步都通過選取最大可能的若干種走子,依次迭代從而產生了一個從當前局面出發的搜索樹。在若干步之后,再采用快走的方式從葉節點到本局結束,得出最終的雙方輸贏。然后反傳路徑到數的頂端,經過的每一個節點都修改其上的輸贏概率。那么最終的走子就是贏得概率最大的那一步棋。這就是蒙特卡洛搜索樹的基本步驟。
在阿法元中,比較精妙的是,它采用MCTS(蒙特卡洛搜索樹)依次生成最優的白方走子,黑方走子一直到分出輸贏,將整個過程作為若干的模型訓練樣本,即讓模型朝著最優模型的走棋方式逼近。這種self-play方式,在alphaGo中也使用過,只是之前進行self-play的模型是完成監督學習后采用的方法,將模型從業余4段提升到職業水平,并且在之前的文章提到如果初期就采用self-play進行學習效果并不好。這個從邏輯上也是成立的:讓兩個臭棋簍子天天下,肯定無法達到專業水平。現在看來,這種邏輯的漏洞在于,臭棋簍子相互下無法提升的原因在于他們沒有一直和比自己稍微高一點點的對手博弈,而且博弈的時間不夠長。阿法元則不同,足有模型就相當于對手,一旦決策模型水平稍微超過了最優模型,那么就把最有模型換成當前的決策模型。也就有點兒像乒乓球的循環賽,誰的水平最高,誰就當指導,一旦你不行了,就立刻換上更優秀的。這樣一來就避免了窩里斗的局部最優。
2.2 基于卷積神經網絡與殘差網絡的特征抽取與模型訓練
阿法元采用了目前較為流行的CNN+ResNet進行特征抽取,較少的應用人為設計的特征,只是把1919的圍棋落子和雙方過去8步的走子歷史形成1919*17的三圍矩陣做輸入,最終的特征輸出一方面輸入到策略網絡,同時又輸入到價值網絡,也就是價值網絡和策略網絡公用一套特征抽取,這個也好理解,同一個大腦不可能在判斷當前局勢和走子策略時進行兩次不同特征抽取。這樣做的好處一方面降低了訓練時間,同時也提高了兩個網絡的和諧度(前期處理結果一致,差別僅在后期功能)。當然這個并非阿法元的創新,幾個月前在deepmind公布星際爭霸baseline時已經采用這種網絡架構了。
2.3 基于對抗評估的策略模型更新
模型更新那就計較好理解,用訓練好的新模型和最優模型進行多場較量(500局),如果新模型勝率超過55%,也就是比最優模型好一點點,那么就用新模型更換最有模型。然后開始新的一輪迭代。如果新模型勝率不夠,說明學的還不夠好,繼續跟著學。
這里頭有一點就是,萬一新模型訓練總是超不過最優模型怎么辦?這里算法也進行了一下小trick(這個也比較關鍵),就是在生成策略時,加入了噪聲信息,也就是新模型除了跟著最優模型學習外,還會自己在嘗試新的走法。這應該也是能左右互搏的關鍵點之一。
3. 阿法元的意義
好了,算法的核心點介紹完,是不是覺得很簡單。在AI領域就是這樣,越是經典好用的算法,往往思路和過程都比較簡單。那么這次阿法元的橫空出世,到底有哪些重要影響呢?
3.1 擺脫人類知識的自主學習
AI的三個階段分別是專家系統->監督學習->自主學習。自從2015年Deepmind提出DQN,將強化學習和深度神經網絡結合在一起,在atari多款游戲上超過人類,就已經宣告一個全新的機器智能時代來臨。然而任何新興事物和技術的發展都不會一蹴而就,都會經歷一個從懷疑到半信半疑,到嘗試到應用到接受的過程。隨著這兩年DRL技術在游戲、機器人等多個領域的擴展,尤其是alphaGo、阿法元的沖擊,相信很快就會掀起繼深度學習后的又一波AI狂潮。無疑,阿法元的出現,進一步刷新大家的認知,加速DRL、自主學習技術發展的進程。
3.2 自我提升的從0到1
selp-play技術在理論上是有一定可行性的,當然也有人質疑。AI作為一個應用科學,最終還是需要實驗和應用來證明。alphaGo的self-play驗證了從1到10的可行性,這次,阿法元則更加徹底,直接從0到1.而這個也是比從1到10更具有突破性的結論。即機器可以不借助任何人的經驗達到超越人類最高智力。
3.3 特征輸入的進一步去人工化
在alphaGo時代,網絡的輸入還是人工設計的191948的人工特征,而這次則不同,只是把原始的棋子矩陣和歷史信息輸入到網絡,就能得到更快更好的效果。又一次對人工經驗進行了碾壓。
后阿法元時代
阿法元是在自主智能學習道路上的有一個階梯,她的成功讓更多的領域專業人士意識到DRL的強大,接下來我相信,這項技術會很快向其他領域擴展。當然正如2007年hinton提出了DNN,到2011年深度學習才在語音識別領域取得突破性的應用,到了2014-2015年,整個領域內才正真開始了大面積的深度神經網絡擴展和推進。在未來幾年,基于大數據+神經網絡的機制依然會存在,尤其是在產業界,因為移動互聯網形成的漣漪效應和大數據的自動生成,DNN等技術會繼續提升弱人工智能應用的效果。
另一方面,因目前神經網絡的優化都是對事先設計好的網絡結構上進行參數優化,主流還是采用BP反傳機制,無論從訓練效果,還是訓練數據的要求,訓練的計算資源需求都遠遠超過生物人腦的學習。為此,目前OpenAI正在開展的神經網絡進化模型,因可以在訓練中動態的調整網絡結構,具有更加靈活的學習模式。只是目前才剛剛開始,在計算資源使用上有些過大。不過從趨勢上看,有可能為自主學習開拓出一條陽光大道。一切都剛剛開始,讓我們拭目以待!