作者簡介
鄭宇(博士、教授,、博士生導(dǎo)師)微軟亞洲研究院 主管研究員,、城市計算領(lǐng)域負責人, Editor-in-Chief of ACM Transactions on Intelligent Systems and Technology,,2013年被MIT Techology Review評委全球杰出青年創(chuàng)新者(MIT TR35),,ACM數(shù)據(jù)挖掘中國分會秘書長,。
張鈞波(博士),微軟亞洲研究院副研究員,、城市計算組成員,,從事深度學習領(lǐng)域的研究。
近期AlphaGo在人機圍棋比賽中連勝李世石3局,,體現(xiàn)了人工智能在圍棋領(lǐng)域的突破,,作為人工智能領(lǐng)域的工作者,我們深感欣慰,。其實質(zhì)是深度學習網(wǎng)絡(luò)(CNN)跟蒙特卡羅搜索樹(MCTS)結(jié)合的勝利,,是人類智慧的進步。不少所謂的“磚”家開始鼓吹機器戰(zhàn)勝人類,、甚至人類將被機器統(tǒng)治等無知言論,,讓人實在看不下去。作為圍棋愛好者和人工智能領(lǐng)域工作者,,我們覺得是時候跟大家講講AlphaGo的原理及其弱點了,。 可以很負責任的告訴大家,AlphaGo還沒有完全攻克圍棋這個難題,,職業(yè)棋手也并非沒有希望贏Go了,,更不能說機器戰(zhàn)勝了人類。AlphaGo未來需要走的路還很長,。如果有中國職業(yè)棋手想挑戰(zhàn)AlphaGo,,我們愿意為其組建最頂尖(且懂圍棋)的人工智能專家顧問團,助其取勝AlphaGo,。 雖然網(wǎng)上技術(shù)貼不少,,但還沒有一篇文章完全講清楚AphaGo的原理,Nature上刊登的文章也缺乏一張刨解全局的圖(加之用英文描述,,同學們很難理解透徹),。以下是我跟微軟亞洲研究院的張鈞波博士在多次閱讀原文并收集了大量其他資料后,一起完成的一張圖,,解釋了AlphaGo的原理,,看完后大家自然知道其弱點在何處了。
圖1,、AlphaGo的原理圖 (作者為本圖花費大量心血,版權(quán)歸兩位作者所有,,歡迎轉(zhuǎn)發(fā),,但請勿盜圖)
AlphaGo總體上包含離線學習(圖1上半部分)和在線對弈(圖1下半部分)兩個過程。 離線學習過程分為三個訓(xùn)練階段,。 第一階段:利用3萬多幅專業(yè)棋手對局的棋譜來訓(xùn)練兩個網(wǎng)絡(luò),。一個是基于全局特征和深度卷積網(wǎng)絡(luò)(CNN)訓(xùn)練出來的策略網(wǎng)絡(luò)(Policy Network),。其主要作用是給定當前盤面狀態(tài)作為輸入,輸出下一步棋在棋盤其它空地上的落子概率,。另一個是利用局部特征和線性模型訓(xùn)練出來的快速走棋策略(Rollout Policy),。策略網(wǎng)絡(luò)速度較慢,但精度較高,;快速走棋策略反之,。
第二階段:利用第t輪的策略網(wǎng)絡(luò)與先前訓(xùn)練好的策略網(wǎng)絡(luò)互相對弈,利用增強式學習來修正第t輪的策略網(wǎng)絡(luò)的參數(shù),,最終得到增強的策略網(wǎng)絡(luò),。這部分被很多“磚”家極大的鼓吹,但實際上應(yīng)該存在理論上的瓶頸(提升能力有限),。這就好比2個6歲的小孩不斷對弈,,其水平就會達到職業(yè)9段?
第三階段:先利用普通的策略網(wǎng)絡(luò)來生成棋局的前U-1步(U是一個屬于[1, 450]的隨機變量),,然后利用隨機采樣來決定第U步的位置(這是為了增加棋的多樣性,,防止過擬合)。隨后,,利用增強的策略網(wǎng)絡(luò)來完成后面的自我對弈過程,,直至棋局結(jié)束分出勝負。此后,,第U步的盤面作為特征輸入,,勝負作為label,學習一個價值網(wǎng)絡(luò)(Value Network),,用于判斷結(jié)果的輸贏概率,。價值網(wǎng)絡(luò)其實是AlphaGo的一大創(chuàng)新,圍棋最為困難的就是很難根據(jù)當前的局勢來判斷最后的結(jié)果,,這點職業(yè)棋手也很難掌握,。通過大量的自我對弈,AlphaGo產(chǎn)生了3000萬盤棋局,,用作訓(xùn)練學習價值網(wǎng)絡(luò),。但由于為其的搜索空間太大,3000萬盤棋局也不能幫AlphaGo完全攻克這個問題,。
在線對弈過程包括以下5個關(guān)鍵步驟:其核心思想實在蒙特卡洛搜索樹(MCTS)中嵌入了深度神經(jīng)網(wǎng)絡(luò)來減少搜索空間,。AlphaGo并沒有具備真正的思維能力。 根據(jù)當前盤面已經(jīng)落子的情況提取相應(yīng)特征,; 利用策略網(wǎng)絡(luò)估計出棋盤其他空地的落子概率,; 根據(jù)落子概率來計算此處往下發(fā)展的權(quán)重,初始值為落子概率本身(如0.18),。實際情況可能是一個以概率值為輸入的函數(shù),,此處為了理解簡便,。 利用價值網(wǎng)絡(luò)和快速走棋網(wǎng)絡(luò)分別判斷局勢,兩個局勢得分相加為此處最后走棋獲勝的得分,。這里使用快速走棋策略是一個用速度來換取量的方法,,從被判斷的位置出發(fā),快速行棋至最后,,每一次行棋結(jié)束后都會有個輸贏結(jié)果,,然后綜合統(tǒng)計這個節(jié)點對應(yīng)的勝率。而價值網(wǎng)絡(luò)只要根據(jù)當前的狀態(tài)便可直接評估出最后的結(jié)果,。兩者各有優(yōu)缺點,、互補。 利用第四步計算的得分來更新之前那個走棋位置的權(quán)重(如從0.18變成了0.12),;此后,,從權(quán)重最大的0.15那條邊開始繼續(xù)搜索和更新。這些權(quán)重的更新過程應(yīng)該是可以并行的,。當某個節(jié)點的被訪問次數(shù)超過了一定的門限值,,則在蒙特卡羅樹上進一步展開下一級別的搜索(如圖2所示)。 圖2,、MCTS拓展下一級節(jié)點
AlphaGo的弱點在哪里,? 攻其策略網(wǎng)絡(luò),加大搜索空間,。進入中盤后,,職業(yè)選手如能建立起比較復(fù)雜的局面,每一步棋都牽連很多個局部棋的命運(避免單塊,、局部作戰(zhàn)),,則AlphaGo需要搜索空間則急劇加大,短時間內(nèi)得到的解的精度就會大打折扣,。李世石九段的第四局棋就有這個意思,。此處左右上下共5塊黑白棋都相互關(guān)聯(lián)到一起,白1下后,,黑棋需要考慮很多地方,。很多地方都需要在MCTS上進行跟深入的搜索。為了在一定的時間內(nèi)有結(jié)果,,只能放棄搜索精度,。 圖3、李世石對AlphaGo第四盤棋棋譜
攻其價值網(wǎng)絡(luò),,萬劫不復(fù):AlphaGo的價值網(wǎng)絡(luò)極大的提高了之前單純依靠MCTS來做局勢判斷的精度,,但離準確判斷圍棋局勢還有不小的差距。神經(jīng)網(wǎng)絡(luò)還不能完全避免在某些時候出現(xiàn)一些怪異(甚至錯誤)的判斷,,更何況其訓(xùn)練樣本還遠遠不足,。這也是為什么有了價值網(wǎng)絡(luò)還仍然需要依靠快速走棋來判斷局勢。大家都曾經(jīng)懷疑過AlphaGo的打劫能力,,也感覺到了AlphaGo有躲避打劫的跡象,。實際上南京大學的周志華教授曾經(jīng)撰文指出打劫會讓價值網(wǎng)絡(luò)崩潰的問題,原理不再重復(fù),??傊蚪僖嗽纾砹怂阉骺臻g變小,,即便價值網(wǎng)絡(luò)失效,,還可以靠快速走棋網(wǎng)絡(luò)來彌補。開劫應(yīng)該以在剛剛進入中盤時期為好(太早劫財還不夠),,并切保持長時間不消劫,,最好在盤面上能同時有兩處以上打劫。沒有了價值網(wǎng)絡(luò)的AlphaGo其實水平也就職業(yè)3段左右,。
長按以下二維碼關(guān)注KDD China
|