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