AlphaGo從零開始自學圍棋為什麼能成功 | 陳經
關注風雲之聲提升思維層次
解讀科學,洞察本質
戳穿忽悠,粉碎謠言
導讀
可以說人類知識可能存在問題,但不要說學了人類知識就沒法到高境界。意識到舊知識體系的問題,作出突破就可以了。而且人類沒法和機器比,不可能真從零知識開始瘋狂自己下,沒那個體力。現實的選擇只有學習前輩的經驗。也許AlphaGo的意義是說,要有一個知識體系,這個知識體系可以是自己學出來並檢驗的,也可以是Master那樣借鑒了別人的,但要接受實踐檢驗,也要敢於懷疑突破成見。
___________________________________________________________________
本文來自微信公眾號:觀察者網(ID:guanchacn) 作者:陳經
一.AlphaGo從零開始自學習新版本演算法框架與等級分表現
2017年10月18日,業界非常期待的AlphagGo新論文終於在《自然》上發表了。Deepmind開發了一個名為AlphaGo Zero的新版本,它只用一個策略與價值合體的神經網路下棋,從隨機走子開始自我對弈學習,完全不需要人類棋譜。新的強化學習策略極為高效,只用3天,AlphaGo Zero就以100:0完全擊敗了2016年3月轟動世界的AlphaGo Lee。經過21天的學習,它達到了Master的實力(而Master在2017年5月3:0勝人類第一柯潔)。
40天後,它能以90%的勝率戰勝Master,成為目前最強的圍棋程序。而且AlphaGo Zero的計算過程中直接由神經網路給出葉子節點勝率,不需要快速走子至終局,計算資源大大節省,只需要4個TPU就行(AlphaGo Lee要48個)。
從Goratings棋力等級分上看,AlphaGo Zero其實和Master還能比較,只多個300多分。這相當於論文發表當天,人類第一柯潔九段的3667分與第38名的人氣主播孟泰齡六段3425分的分差,兩人肯定實力有差距,但也還有得下。論文公布了AlphaGo Zero的83局棋譜,其中與Master下的有20局,Master在第11局還勝了一局。
AlphaGo新版本從零開始訓練成功,這個結果大大出乎了我的預料,相信也讓業界不少人感到震驚。我本來是預期看到Master的演算法解密,為什麼它能碾壓人類高手。AlphaGo退役讓人以為Deepmind不研究圍棋了,剩下任務是把Master版本的演算法細節在《自然》公布出來,騰訊的絕藝等AI就可以找到開發方向突破目前的實力瓶頸了。
本來5月的烏鎮圍棋大會上說,6月新論文就能出來了,開發者們可以參考了。至於從零知識開始學習,是個有趣的想法,2016年3月人機大戰勝李世石後就有這樣的風聲,人們期待這個「山洞中左右互搏」的版本出來,與人類的下法是不是很不相同,如開局是不是會佔天元?但是後來一直好像沒進展,烏鎮也沒有提。
好幾個月了,新論文一直沒出來。絕藝明顯進入發展瓶頸,總是偶而會輸給人,還輸給了DeepZenGo與CGI。各個借鑒AlphaGo的AI都迫切需要Deepmind介紹新的思路與細節。到8月跑出來一篇AlphaGo打星際爭霸的論文,從零知識開始學,學人類錄像打,兩種辦法都不太行。
這時我認為讓AlphaGo從零知識開始學可能不太成功,會陷入局部陷阱,人類棋譜能提供一個「高起點」,高水平AI還是需要人類的「第一推動」。
實際是Deepmind團隊認為,僅僅寫Master對於《自然》級別的文章不夠震憾。新的論文標題是 「Mastering the Game of Go without Human Knowledge」,這個主題升華就足夠了。而Master用人類棋譜訓練了初始的策略網路,人類知識還是有影響,雖然後來自學習提升後人類影響很小了。對於不懂圍棋或者對演算法細節不關心的人,Master相比AlphaGo Lee無非是棋力更強一些,戰勝的柯潔與李世石都是頂級高手沒本質區別,Master的創新性也需要懂圍棋才能明白。
AlphaGo Zero是真正的從零開始訓練,整個學習過程與人類完全沒有關係,全是自己學,這個哲學意義還是很大的。過程中與人或者其它版本下,只是驗證棋力不是學招。
二.真正的演算法突破是Master版本實現的
可以認為,在技術上從AlphaGo Lee進步到Master是比較難的,需要真正的變革,神經網路架構需要大變,強化學習過程也要取得突破。絕藝、DeepZenGo等AI開發就一直卡在這個階段,突破不了AlphaGo Lee的水平,總是出bug偶爾輸給人,離Master差距很大。
但如果Master的開發成功了,再去試AlphaGo Zero就是順理成章的事。如果它能訓練成功,應該是比較快的事,實際不到半年頂級論文就出來了,回頭看是個自然的進展。Deepmind團隊在五月後應該是看到了成功的希望,於是繼續開發出了AlphaGo Zero,新論文雖然推遲了,但再次震驚了業界。
也可以看出,2016年Deepmind《自然》論文描述的強化學習過程,整個訓練流水線比較複雜,要訓練好幾種神經網路的係數,進化出一個新版本需要幾個星期。用這個訓練流水線,從零開始強化學習,應該是意義不大,所以一直沒有進展。
但是Master的自學習過程取得了重大突破,之前從人類棋譜開始訓練2個月的水平,改進後只要一星期就行了,學習效率,以及能夠達到的實力上限都有了很大進展。以此為基礎,再把從零開始引進來,就能取得重大突破。所以Deepmind真正的技術突破,應該是開發Master時取得的。AlphaGo Zero是Master技術成果的延續,但看上去哲學與社會意義更重大。
Master與AlphaGo Zero的成功,是機器強化學習演算法取得巨大發展的成果與證明。訓練需要的局數少了,490萬局就實現了AlphaGo Lee的水平。而絕藝到2017年3月就已經自我對弈了30億局,實力一直卡著沒有重大進步,主要應該是強化學習技術上有差距。
我在2017年1月9日寫的《AlphaGo升級成Master後的演算法框架分析》文中進行了猜測:
從實戰表現反推,Master的價值網路質量肯定已經突破了臨界點,帶來了極大的好處,思考時間大幅減少,搜索深度廣度增加,戰鬥力上升。AlphaGo團隊新的prototype,架構上可能更簡單了,需要的CPU數目也減少了,更接近國際象棋的搜索框架,而不是以MCTS為基礎的複雜框架。比起國際象棋AI複雜的人工精心編寫的局面評估函數,AlphaGo的價值網路完全由機器學習生成,編碼任務更為簡單。
理論上來說,如果價值網路的估值足夠精確,可以將葉子節點價值網路的權重上升為1.0,就等於在搜索框架中完全去除了MCTS模塊,和傳統搜索演算法完全一樣了。這時的圍棋AI將從理論上完全戰勝人,因為人能做的機器都能做,而且還做得更好更快。而圍棋AI的發展過程可以簡略為兩個階段。第一階段局面估值函數能力極弱,被逼引入MCTS以及它的天生弱點。第二階段價值網路取得突破,再次將MCTS從搜索框架逐漸去除返樸歸真,回歸傳統搜索演算法。
從新論文的介紹來看, 這個猜測完全得到了證實。Master和AlphaGo Zero的架構確實更簡單了,只需要4個TPU。AlphaGo Zero到葉子節點就完全不用rollout下完數子了,直接用價值網路(已經與策略網路合併)給出勝率,就等於是「價值網路的權重上升為1.0」。Master有沒有rollout沒有明確說,從實戰表現看應該是取消了。
當然新論文中還是將搜索框架稱為「MCTS」,因為有隨機試各分支,但這不是新東西,和傳統搜索差異不算大。對圍棋來說,2006年引入MCTS演算法真正的獨特之處是從葉子節點走完數子,代替難以實現的評估函數。
這種瘋狂的海量終局模擬更像是絕望之下的權宜之計,也把機器弄得很疲憊。但是Master與AlphaGo Zero都成功訓練出了極為犀利的價值網路,從而又再次將rollout取消。價值網路的高效剪枝,讓Master與AlphaGo Zero的判斷極為精確,從而算得更為深遠戰鬥力極為強大。這個價值網路怎麼訓練出來,就是現在Deepmind的獨門絕技。可以說,新論文最有價值的就是這個部分。
從Master開始,AlphaGo的網路結構應該就有大變了。到AlphaGo Zero,將價值與策略網路合為一個,這並不奇怪。因為第一篇論文中,就明確說價值與策略網路的架構是完全一樣的,只是係數不同。那麼二者共用一個網路也不奇怪,前面盤面特徵表述應該是一樣的,等需要不同的輸出時再分出不同的係數。Master網路結構大變之後,也許Deepmind發現,許多盤面特徵都可以訓練出來,所以就簡單將盤面輸入簡化成黑白。
AlphaGo Zero的強化學習過程,應該與Master差不多,都是成功地跳出了陷阱,不斷提升到超乎人類想像的程度。Master從研發上來說,像一個探路先鋒,證明了這條路是可以跑通的,能把等級分增加1000分。而AlphaGo Zero,像是一個更為精減的過程,本質是與Master類似的。
新論文中的AlphaGo Zero確實顯得架構優美。只需要一個網路,既告訴機器可以下哪,也能給出局面的勝率。盤面輸入就是黑白,也不需要任何人類知識。強化學習就是兩招,搜索的結果好於神經網路直覺想下的點,可以用於策略選點的訓練,一盤下完的結果回頭用於修正勝率,都很自然。但是為了實現這個優美結果,需要勇敢的探索。一開始的AlphaGo並沒有這麼優美,路跑通了,才想到原來可以做得更簡單。
本文再提出一個猜測:現在的絕藝、DeepZenGo等AI實力接近AlphaGo Lee了,但都經常出現死活bug,會怎麼出和人類對手的實力關係不大,並不是對手等級分高的它就容易出bug,基本是自己莫明其妙送死。這個bug的原因是rollout模塊帶來的,因為rollout策略是人類棋譜訓練出來的,也可能有人工加代碼打補丁。
它的目的是快速下完終局,但如果牽涉到死活,這種快速下完就不太可靠了,活的下死,死的殺活。但是,怎麼實現不出錯的rollout,這非常困難,應該是不可能完成的任務。Master和AlphaGo Zero的辦法,是取消這個不可靠的rollout,直接讓神經網路給出結果。如果神經網路給出的勝率結果有問題,那就靠訓練來解決。這樣糾錯,強過程序員去排查rollout代碼里出了什麼錯。
三.機器與人類對圍棋的適應能力差異很大
Master和AlphaGo Zero的突破說明,在極高的水平上,需要考慮出現瓶頸的原因。人類棋譜能夠提供一個「高起點」,但是機器從零開始訓練一兩天也就追上了,帶來的「先發優勢」沒多少。而人類棋譜中顯然有一些「有害成分」,這可能將AI的學習過程帶歪。如果AI不能找到消除這些「人類病毒」的辦法,那訓練就會陷入瓶頸。如下圖,零知識強化學習的版本實力迅速追上有人類棋譜幫忙的。
從圍棋本身看,它的規則幾乎是所有遊戲中最優美最簡單的。規則就是兩句話可以了,氣盡提子,禁全同(打劫的由來)。甚至貼目這樣的勝負規則都是人類強加的,圍棋遊戲不需要勝負規則就可以成為一個定義明確的遊戲。打磚塊這樣的Atari遊戲就是這樣,目標就是打到更高的分。圍棋遊戲的目標可以是占更多的地,結果可能是黑183、184、185子這樣,不需要明確說出黑勝黑負。黑白博弈,會有一個上帝知道的「均衡」結果,猜測可能是黑184子白177子,或者黑184.5白176.5(有眼雙活)。
這是一個優美的博弈問題,是掌握了強化學習方法的AI最喜歡的遊戲,規則這麼簡單,太容易了。最終強大的圍棋AI,應該是自然的,開發只依靠原始規則,不需要其它的信息了。AlphaGo Zero應該已經接近了這個目標,除了中國規則強加的7.5目的貼目。也許以後可以讓AlphaGo不考慮貼目了,黑白都直接優化佔地的多少,不再以勝率為目標,說不定能訓練出一個更優秀的AI。如優勢時不會退讓了,劣勢時也不自殺。這次Master與AlphaGo Zero一些局終局輸定時就表現得很搞笑,有時搖頭劫死棋打個沒完。
AlphaGo Zero的棋力提升過程非常流暢,說明圍棋精緻的規則形成的數學空間很優美,神經網路很快就能抓住圍棋空間的特徵,表現得非常適應。而這種神經網路與圍棋空間的適應性,是之前人們沒有想到的,因為人自己感覺很困難,沒料到神經網路學習起來美滋滋。
AlphaGo Zero能從零開始訓練成功,也是因為圍棋的絕對客觀性。圍棋規則如此自洽,不需要人類干預,就能很容易地自我對弈出結果,直接解決了「學習樣本」這個大問題。人工智慧機器學習碰上的很大問題就是需要海量樣本,而實際生活中有時只有少量樣本,有時需要人工標註很麻煩。
圍棋的對局天然在那了,AlphaGo Zero的任務就是找到合適的學習方法,沒有樣本的問題。而人類既無法自我產生海量對局,也無法像AI那樣目標明確地快速改進自己的腦神經,單位時間學習效率被AI完全碾壓。所以圍棋是更適合AI去學習的遊戲。人類的學習方法也許還是適合人的,但AI學習方法更強。
對於圍棋這麼自然而且絕對客觀的遊戲,消除人類的影響應該從哲學上來說是有深度的想法。從圍棋規則來看,日韓規則對AI簡直是不可理解,甚至無法定義,未來肯定會消亡。而人類的棋譜是客觀的,但對棋譜的解讀是主觀的。主觀的東西就可能出錯,這要非常小心。
對於人類的知識體系也是如此。客觀世界的運行是與人無關的,人對客觀世界的解讀就是主觀的,很可能帶入了錯誤的東西。所以,有時需要返回到客觀世界進行本原觀察,而不是在錯誤的知識體系上進入所謂的「推理與搜索」。客觀上不成立,什麼都完了。經濟學道理寫得再雄辯,實踐中失敗了就不行。
另一方面,也不要片面強調說人類知識沒用,還不如零知識。實際上Master與AlphaGo Zero的差距從演算法層面看,並不太大。二者300分的等級差距,也許不是Master開始學了人類棋譜帶來的,也許是更精細的網路架構、訓練過程的小細節之類的影響。Master其實找到辦法跳出了人類知識的陷阱。
因此,可以說人類知識可能存在問題,但不要說學了人類知識就沒法到高境界。意識到舊知識體系的問題,作出突破就可以了。而且人類沒法和機器比,不可能真從零知識開始瘋狂自己下,沒那個體力。現實的選擇只有學習前輩的經驗。也許AlphaGo的意義是說,要有一個知識體系,這個知識體系可以是自己學出來並檢驗的,也可以是Master那樣借鑒了別人的,但要接受實踐檢驗,也要敢於懷疑突破成見。
四.AlphaGo Zero的實戰表現
雖然AlphaGo Zero完全與人類棋譜無關了,但是也許會讓棋手們欣慰的是,它下得其實很像人。訓練沒幾個小時就下得非常像人了,也是從角上開始,這方面的判斷和人是一致的。
而且它甚至比Master還要像人類棋手,顯得比較正義。Master不知道為什麼喜歡出怪異的手段,棋譜極為難懂,對人類而言更為痛苦,打又打不過,看也看不懂。AlphaGo Zero對Master的棋譜結果是19:1,感覺上AlphaGo Zero戰勝Master的招數不是以怪制怪,而是用正招去應付,然後Master的強招碰上正義的力量就失敗了。而人類對Master應錯了,就輸了。也許是因為,Master訓練到後來,為了提高勝率走上了劍走偏鋒的路線,出怪招打敗之前的版本,而同一版本的黑白是同等實力,以怪對怪正好實力相當,維持了半目勝負。碰上AlphaGo Zero就失去了這種平衡,被正義的招數鎮壓。
圖為AlphaGo Zero執黑對Master。Master氣勢洶洶54位飛,要吃掉黑三子。在Master與人類棋手的計算中,以及解說的這盤棋的絕藝看來(騰訊圍棋經常有絕藝配合人類棋手解說棋局的節目),黑這三子應該是被吃了,要考慮棄子。但是AlphaGo Zero不這麼認為。
黑棋AlphaGo Zero在左下角將白棋做成了打劫殺。遭此打擊,Master就此陷入被動。這說明Master的計算也不一定毫無破綻,只是碰上算得更深的才被抓住。這個計算手數很長,出現錯誤也可以理解。這也說明Master以及AlphaGo Zero從演算法原理看,都可能會被抓住計算錯誤,仍然有進步空間。一度我被Master的極限對局嚇住了,以為圍棋的終極奧義可能就是這種看不懂的死掐。
AlphaGo Zero執白對Master。這是雙方對局的常見局面,白AlphaGo Zero撈足了實地,Master的中央模樣像紙糊的一樣被打破,敗下陣來。
AlphaGo Zero自戰。勝率落後的黑用129的手筋撐住了局勢,但最後還是勝率越來越低失敗了。
應該說AlphaGo Zero的棋譜還是較為自然的,雖然中盤顯然很複雜,但不像Master那樣完全看不懂心生恐懼。對於人類棋手來說,AlphaGo Zero會更為親切,它就像一個最高水平的人類棋手,下得是意圖可以說清楚的棋,只是永遠正確,不像人類低手這錯那錯。而Master的自戰譜就顯得不可理解,蠻不講理,動不動就搞事,撐得很滿步步驚心搞極限對局,人類看得很暈。
圍棋AI應該還是在發展過程中,自我對弈容易顯得較死勁,實力有差距就會顯得一方瀟洒自然。圍棋的狀態空間還很大,應該還能有更厲害的版本一級級發展出來,就像國際象棋AI仍然在不斷進步。
當然對Master以及AlphaGo Zero的棋譜,需要人類高手們配合AI的後台數據來解讀。AlphaGo Zero這個不需要人類知識的AI棋手,再次給人類提供了不同風格的棋譜,讓棋壇越來越精彩。而且Deepmind的這篇論文提供了優美簡潔的開發方法,更容易模仿成功,會有越來越多高水平的AI取得突破。
背景簡介:本文作者筆名陳經,香港科技大學計算機科學碩士,科技與戰略風雲學會會員,微博@風雲學會陳經。文章於2017年10月21日發表於觀察者網(http://m.guancha.cn/chenjing/2017_10_21_431711.shtml),風雲之聲獲授權轉載。責任編輯:郭尖尖
歡迎關注風雲之聲
知乎專欄:
http://zhuanlan.zhihu.com/fengyun
一點資訊:
http://www.yidianzixun.com/home?page=channel&id=m107089
今日頭條:
http://toutiao.com/m6256575842
推薦閱讀:
※傅園慧的「洪荒之力」畫風清奇,人工智慧也是這樣
※真便宜。買買買!
※iPhone X 是現在還是未來?
※想精想怪48——做事的智能
※新突破「中國量子計算機」,真比神威·太湖之光還厲害?