[轉錄] 從前兩局推測AlphaGo算法的重大進展

看板GO作者 (Kumi)時間8年前 (2016/03/13 04:02), 8年前編輯推噓12(1209)
留言21則, 12人參與, 最新討論串1/1
http://www.guancha.cn/chenjing/2016_03_12_353697_s.shtml 陳經 2016年3月10日人機大戰第二局,AlphaGo執黑211手中盤勝李世石。對於不懂圍棋的圍觀群眾,這意味著機器以5:0獲勝的前景確認,可能會轉而關注人工智能進步對社會的影響。對棋迷特別是職業棋手來說,會更關注第二局中AlphaGo在圍棋技藝上帶來的震撼,這個震撼比第一局更大。 先用一段文學性的描述概括前兩局: 在圍棋這個令許多人沉醉的迷失大陸上,忽然半空中浮現了一個既令人恐懼,又令人興奮的帶著魔幻主義色彩的怪物。離得還遠看不太清的時候,職業高手群體作為人類護法,把AlphaGo當作一個有趣的小妖怪,準備用自己明顯更高的法力去吊打它。第一局過後,人們發現這小妖扛過了大法師的主動挑戰,第102手趁法師沒有防備忽然出手偷襲,獲得了勝利。人們稱讚這小妖法力可以啊,但並不認為它有多強大,而是認為大法師發揮不佳。 第二局,人類大法師平心靜氣地開局,小妖更多地主動出招主導了棋局的進程。事實說明AlphaGo不是小妖,而是大魔王。它的著數與人類很不相同,下出了人們從未見過的次序與招數,但卻自成體系。 大魔王的著法並非天衣無縫,一次主動出擊甚至被抓到了明顯破綻,卻靠著瀰漫在全局的邪氣維持著局面。後半盤,大魔王的威力開始顯現出來,差距越拉越大,在人類的眼中終於完成了從小妖到魔王的形象轉變。職業棋手們現在已經普遍悲觀,認為整個大陸都將被魔王統治,只有柯潔、孟泰齡等少數人還想著進行最後的抵抗。還有一些企圖抓住最後一根稻草,相信大魔王有「不會打劫」的死穴,盼望著最後三局出現奇蹟。 下面用幾個圖介紹一下AlphaGo帶有魔性的著法。 http://i.guancha.cn/news/2016/03/12/20160312084420667.png
開局AlphaGo第13手脫先就讓所有人大吃一驚。15手這麼早刺一下,都是沒人下過的招。雖然難以論定好壞,但AlphaGo從魔界過來的作派已經初露端倪了。 http://i.guancha.cn/news/2016/03/12/20160312084437883.png
黑37是讓所有職業高手都難以置信的創新招手。人類理論說,三路和四路是地勢平衡線,四路尖沖三路常見。AlphaGo卻五路尖沖四路,沒有人敢想。而且這招並不是胡下,四周有配合,得到了聶老等佈局高手的讚許。仔細品味,為什麼三路四路的地勢平衡線就是定死的?如果有配合,為什麼平衡線不能上移到四路五路?白R4R5R6這個頭非常硬,本來就是不應該去圍地的形狀,再加上黑S14扳白為了護住「四路大空」要應,等於黑先手護角。這幾個理由加起來,地勢線真的可能就上移了。 http://i.guancha.cn/news/2016/03/12/20160312084451836.png
白80打入,黑81手卻悠然地封住白棋聯絡自身。這實在是很難想到的方向,這麼緊急的地方不去攻打入的那子,卻到這裡自補。但是細細品味,卻會發現這是好招,是一種間接攻擊。也許AlphaGo模擬了幾百萬個局面,認為有了81的自補,白就動不出什麼東西。這無疑是一種非常高級的思路。 http://i.guancha.cn/news/2016/03/12/20160312084505540.png
李世石白120手凶悍出手。黑棋121扳123連125淡定得不得了,白似乎獲利極大。但是黑再127扳住,赫然發現黑這裡圍了不少地,而且整體厚了很多,122那裡的最後一個毛病沒有了,下面就輪到黑對中間白棋發起令人膽寒的魔性攻擊了。 感性完了,我們還是回到技術性的探討。從2015年10月AlphaGo與樊麾的對局來看,雖然AlphaGo正式比賽是5:0,但以高手的標準,五局中它的招數平平無奇,毫無魔性。是下得像人,比以前的程序強太多了,不會抽風。但並沒有真正震懾到人,人們還發現了它不少明顯的漏洞與不精確的地方,前面我寫文章分析介紹了 http://www.guancha.cn/chenjing/2016_02_01_349900.shtml 而且五局非正式對局樊麾也勝了2局。考慮到樊麾心理失衡表現大打折扣,可以認為這時單機版的AlphaGo和他正常的棋力差不多,分佈式版本的高一些。谷歌論文也說了單機版AlphaGo的等級分和樊麾差不多,2900多分,差李世石600分。 2016年1月28日論文在《自然》上發表了,棋譜公佈了,3月挑戰李世石的計劃也宣佈了。在當天WeiqiTV立即推出的談話節目中,劉星透露不久前樊麾來北京時喝大了,又因為保密協議不能說,只是反覆說出大事了,要變天了。 http://www.weiqitv.com/index/video_play?videoId=56a9f3b1d4c36c360f8b4567 如果AlphaGo只是和樊麾差不多的實力,這只能說是人工智能界值得慶祝的大事,對圍棋界卻不是變天性質的大事。這還是個好事,幫圍棋打響世界知名度。如果機器總是勝不了人類高手,這對圍棋發展到全球是一個絕佳機會。這是孟泰齡等職業棋手看到的機會,也是我內心的期盼。由於樊麾加入了谷歌團隊,他顯然知道了更多的東西,知道了AlphaGo的實力突破。可以認為,在2015年12月左右,谷歌團隊取得了顯著的算法突破。 3月9日人機大戰第一局開戰前,就有一個谷歌工程師傳出來的流言,說內部評估李世石勝率為0,AlphaGo三天就完成了一次進化,對上一個版本的勝率達到了100%!現在看來這很可能是真的。後來流言又變成,每三天完成一次進化,對上一個版本達到100%。這應該不成立。谷歌放出的內部消息意思應該是,取得了算法突破,搞了一次學習進化,AlphaGo用三天時間進化完成後,對勝樊麾的那個版本勝率100%。 所有圍棋AI不斷開發提升實力的過程中,都存在瓶頸。例如之前最強的程序Zen,2011年在KGS上就很厲害了,打到了5D。但之後三四年雖然不斷調整代碼開發,實力進展卻很小。只有在最近引入了深度學習後,才再次突破站穩了7D。 之前圍棋AI的主要開發工作是寫程序代碼,怎麼用代碼寫一個走子策略,寫出蒙特卡洛搜索(MCTS)算法的代碼,怎麼優化代碼,怎麼加進一些代碼消除bug。這種工作還是比較依賴人的具體代碼工作的,主要是人在那動腦子想。主要框架定了以後,不斷改進調試就到頂了,再想有所突破就難了。表現出來就是代碼改了這裡,那裡就不好了,顧此失彼。想加進一些改進的思想,大的加不了,小的越來越瑣碎,加了也不一定有大用。 那麼AlphaGo的瓶頸是什麼?從谷歌論文來看,與Zen等上一代程序很不相同。這裡我們要再次描述一下AlphaGo的算法框架。 AlphaGo的核心程序代碼有兩部分。一部分是MCTS算法代碼、快速走子策略中一些和圍棋專業知識相關的代碼。更重要的部分是策略網絡、價值網絡等幾個多層神經網絡中,那幾百萬個節點與更多聯結邊的「係數」。 AlphaGo的開發者並不是從頭開始的,兩個並列第一作者David Silver和Aja Huang都是之前研究了圍棋算法多年的,整個團隊有約15-20人的業界頂級專家。但我相信,要讓他們去調整MCTS代碼,加一些代碼去消除bug,去提升最終的程序表現實力,他們也很快就會工作很煩卻進展不大,這是代碼開發中常有的事。程序算法框架定下來了,從2015年10月到2016年3月,五個月時間作出重大改變基本不可能。 但是,那幾百萬幾千萬個神經網絡中的「係數」卻是很容易變動的。你可以隨便去改那些係數,如果表現不好大不了回到原來的。要是找到了新辦法,搞個三天時間的訓練學習,大批大批地改係數,說不定就取得好的效果,再實踐檢驗下就知道有沒有用了。實踐檢驗很簡單,就是和沒改係數之前的版本下,勝率大躍進,就成功了。這時團隊的開發工作,就不是在那改代碼了,而是想「新的訓練方法」。當然這也不容易,按谷歌論文的說法,你得有一套訓練的「流水線」。想把這個流水線建起來,那就是砸錢,要把各類專家都配齊了,還得有一堆高性能機器。 比如短時間暴力生成3000萬個自我對局,這得多少高性能機子同時對下?還有「深度學習」,輸入的是10萬個甚至更多的棋局,然後用高性能機器訓練出一個節點特別多的多層神經網絡。還有「強化學習」,意思差不多如下。比如你要改進策略網絡,就有一個初始的「策略網絡」。策略網絡的結構是不會變的,變的是上面的係數。然後你用什麼方法變一下係數,就相當於變出了一個新的策略網絡。然後讓新舊兩個網絡對下,從結果看你剛才變的是好是壞,再決定繼續怎麼變。這麼反覆弄下去,就會弄出一個對舊網絡勝率很高的,新的策略網絡。 總之就是讓機器self-play,左右互搏,看結果來變係數。這都是需要一堆高性能機器一起做的,不然根本沒有時間完成訓練。 但是對谷歌這樣有實力的公司,「這都不是事」。一旦把流水線建起來了,那個爽就沒法說了。現在整個團隊的開發工作簡直進入了另一個境界。不是去改代碼了。改來改去調bug,誰知道進度怎麼樣,這就是走入死路了。主要開發工作就是去高層次地想,還有什麼新的訓練方法?感覺靠譜就去試,流水線一開,成千上萬台高性能機器在那暴力運算,self-play熱火朝天。一計不成再生二計,盤算的都是類似於上帝的事,怎麼讓一堆機器幫你辦底層的事,團隊核心就負責想大招。 當然這流水線研發也會有瓶頸。谷歌論文中就說了,他們用KGS的高段對局者的10萬局棋譜,深度學習訓練出了一個「初始策略網絡」SL,然後又用「強化學習」對著它不斷「強化」,最後出了一個「強化策略網絡」RL。RL和SL對下,勝率高達80%。但是在整個AlphaGo中,把SL替換成RL,和別人下,等級分表現反而更差!原因論文上也有提及,可能是RL過於強調對SL的勝率,訓練得鑽牛角尖了,對別人反而不如SL好,因為SL是很多人的棋招訓練出來的,各種情況都見識過。但是RL也不是沒有用處,用RL自己下,可以生成3000萬個高質量棋局,用來訓練價值網絡效果好。 我當時就注意到這個了,所以認為AlphaGo可能水平到了瓶頸了,再怎麼暴力堆數據,堆更多棋局,可能就像RL不如SL一樣,提高不了水平。也因為對整個程序訓練機制理解不夠深,在仔細看棋譜後對AlphaGo的算法缺陷印象更深,從而作出了「AlphaGo還不如人類頂尖高手,但有勝機」的判斷。 但我們回過頭看,這個瓶頸其實並不嚴重,比起Zen這類程序代碼調整死去活來沒有進步的境地,AlphaGo就算有瓶頸,情況也好多了。谷歌開發者都是業界頂級牛人,肯定能想出一些新訓練方法。比如想個妙招,改用不同的「強化學習」訓練方法,加點小變化。 這回從SL強化學習完了,學出個RL-Plus。然後拿RL-Plus換掉SL,變出個新版AlphaGo一試,哇,等級分高了200,大招見效了!又趕緊用RL-Plus在一堆機器對下,生成3000萬個質量更高的棋局,用它們深度學習,訓練出了新的價值網絡V-PLus。然後什麼都不變,新版的RL-Plus + V-Plus,對舊版的RL+V,對戰400局,全勝!這下就搞定了,幾個工程師碰杯慶祝,等級分一算,知道李世石機會為0了。 這個流水線非常厲害。谷歌甚至放出了激動人心的消息,不再用人類棋局訓練策略網絡!也就是說,讓AlphaGo從零知識開始,從胡亂扔子棋力最差的策略網絡開始,不斷刷流水線,通過強化學習、self-play、深度學習更新幾個神經網絡。 這樣肯定會比較慢,說不定要幾個月時間才訓練好。但是一旦訓練好了,這就是真正沒有和人學過任何東西,全靠自己對下幾十億局訓練出來的,沒有受過人「污染」的機器智能!這個純種AlphaGo可能出手就和人完全不一樣,也許一開始就下的是天元、五五之類的怪招,直到中後盤才和人類棋手以及現在的AlphaGo走得差不多。這種自己在山洞裡練習出來的東西,會不會比人強,甚至比現在這個學了人走法的AlphaGo強,會是特別有意思的事。不懂圍棋的人可能很難理解,為什麼這特別有意思,但真的是很浪漫很狂野的一個事,非常激動人心。 谷歌論文出來以後,專家的解讀也出來了,我也仔細讀了。一開始以為,都是以前見過的東西,就是各個環節都做得不錯,下本錢加在一起細化優化了,所以弄出一個棋力大躍進,戰勝了人類低水平職業棋手。但再要進步,似乎得發明「新技術」,再來一個創新,才能棋力進步追上頂級職業棋手過招。 然而這是一個錯覺。就MCTS,策略網絡,價值網絡等等技術環節而言,別人都做過。但是搞出工業級的流水線,沒有人做過!流水線本身才是最大的創新!這個流水線誕生以後,潛力無窮,極易取得突破。開發者們一定玩得開心死了。 我大約想明白了谷歌圍棋算法的秘密,最厲害的就是這個神經網絡訓練的流水線。技術不是新的,但是量變到質變,暴力堆數據的各個環節打通以後,就產生了無窮的威力,一舉在短時間內破解了圍棋這個人工智能的核心問題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 72.74.249.157 ※ 文章網址: https://www.ptt.cc/bbs/GO/M.1457812976.A.0C1.html ※ 編輯: rgx (72.74.249.157), 03/13/2016 04:04:30

03/13 04:17, , 1F
03/13 04:17, 1F

03/13 04:29, , 2F
03/13 04:29, 2F

03/13 04:42, , 3F
我看等散功自練完再與柯潔戰好了
03/13 04:42, 3F

03/13 07:26, , 4F
打通任督二脈了
03/13 07:26, 4F

03/13 08:41, , 5F
翻譯:外行人看不懂 AI,以為技術有進步
03/13 08:41, 5F

03/13 08:54, , 6F
To樓上: 確實有進步啊,這篇文章就說去年版本是輸李九段
03/13 08:54, 6F

03/13 09:31, , 7F
這篇蠻專業的
03/13 09:31, 7F

03/13 09:32, , 8F
總之就是流水線,流水線是什麼東西?
03/13 09:32, 8F

03/13 09:33, , 9F
很多領域可以套用這方法
03/13 09:33, 9F

03/13 09:58, , 10F
把最大的突破說成是砸錢堆硬體流水線這也太膚淺了吧
03/13 09:58, 10F

03/13 10:37, , 11F
應該說作者認為突破是在於找到幾種適當方法後靠著適當
03/13 10:37, 11F

03/13 10:37, , 12F
的組合 再讓電腦自我訓練進化 這說流水線只是種比較low
03/13 10:37, 12F

03/13 10:37, , 13F
的講法 但本身並當然不trivial
03/13 10:37, 13F

03/13 10:38, , 14F
五個月下人類一千年下的圍棋量…
03/13 10:38, 14F

03/13 10:38, , 15F
柯潔如果是應戰新版,大概也要等個五個月
03/13 10:38, 15F

03/13 11:22, , 16F
其實我覺得Google Deepmind可能會轉向別的目標,一方面
03/13 11:22, 16F

03/13 11:22, , 17F
圍棋已經有許多人類智慧的累積,但是比起google關心的
03/13 11:22, 17F

03/13 11:23, , 18F
醫學、工程還是不知道什麼應用還是性質很不一樣。我覺得
03/13 11:23, 18F

03/13 11:23, , 19F
不是很確定google會不會再花大力氣拓展這個計畫其實@@
03/13 11:23, 19F

03/13 11:35, , 20F
有商業利益的話,就值得google繼續拓展
03/13 11:35, 20F

03/13 12:31, , 21F
ceo已經講過會將alphago架構用在其他領域上
03/13 12:31, 21F
文章代碼(AID): #1Mv7Nm31 (GO)