| 幼河:為何AlphaGo會占上風? |
| 送交者: 幼河 2016年03月15日23:07:21 於 [五 味 齋] 發送悄悄話 |
|
為何AlphaGo會占上風?
在AlphaGo和李世石將對陣五盤棋之前,歐洲圍棋冠軍已以0:5慘敗。大家普遍認為,那個歐洲冠軍是水貨,李世石將大勝AlphaGo。我也是這麼認為的。為什麼呢?因為我把AlphaGo想象成“深藍”了。下圍棋遠比國際象棋更具有不確定性,AlphaGo如何贏得了?其實不然。 李世石敗給AlphaGo的第一盤後,人們都認為李世石沒下好。從雙方行棋上看,似乎有點彆扭,或者說水平不高似的。但第二盤我就閉嘴了。我雖然圍棋水平極其業餘,但從盤面上看,李世石還是走出了他的風格的,然而敗得更慘。職業圍棋高手們質疑李世石為什麼沒有在行棋中使用打劫的戰術(圍棋中最常見的)。第三盤,據我看,李世石下得精彩,也進行了打劫,然而又是慘敗! 正當人們大都沮喪地預測李世石會以零比五慘敗的時候,這位韓國“殭屍流”老將在3月13日絕地反擊成功,第四盤取得中盤勝!李世石在行棋中展現出了自己的風格,在中央的戰鬥中,下出妙手,把AlphaGo“打得抽瘋”。AlphaGo隨後好不容易清醒過來,但已為時過晚。 第四盤輪到李世石執白。對他來說已無勝負的壓力,他真正放開了自己,走出了李世石風格的圍棋。AlphaGo一如既往地“冷酷”,總是能從自己的角度客觀判斷局勢。開局,李世石似乎落入下風,但整個局勢按照他的期待進行。李世石的棋風擅長絞殺,在對方的陣勢中尋找破綻。 從白棋40手靠開始,棋局進入了李世石期待的局面,雖然大部分職業棋手都判斷,李世石白棋困難,但李世石心中的真正想法只有他自己知道;他78手這一挖如鬼神般的一擊,黑棋大空中的種種隱患被串聯起來,頓陷困境。 有趣的是,AlphaGo似乎對李世石的這步妙手感到很“意外”,接下來的招數明顯看出“失去了睿智”。李世石甚至忍不住笑場。難道阿爾法也出現了“心理波動”? 黑87不設計打劫直接逃出死子,黑93繼續送吃,最不像話的是黑97,直接送吃黑子,韓國前方的研究室里爆發出鬨笑聲,人類此刻終於明白,AlphaGo電腦程序出現了異常;最終AlphaGo在180手中盤認輸。 而據“DeepMind”創始人哈薩比斯賽後發布Twitter指出:電腦的錯誤出現在李世石白78這一手後,AlphaGo直到第87手才反應過來,察覺自己在第79手就犯了錯。也就是說,人機系列賽以來,電腦很可能是第一次出現判斷上的錯誤,李世石的白78,導致AlphaGo誤讀了局面,並由此產生了一系列崩潰反應。
李世石和AlphaGo第四盤比賽的圖譜: http://slide.sports.sina.com.cn/go/slide_2_820_97489.html/d/1#p=1
AlphaGo的DeepMind鞏固學習小組負責人大衛-席爾瓦在賽後稱,李世石的神之一手,可能點中了電腦此前不為人知的“BUG”:“衷心祝賀李世石九段,贏得漂亮。AlphaGo通過自我對局來進行學習,這樣有可能會存在缺陷。我們不是職業棋手,正需要進行這場比賽,希望能尋找到這樣的缺陷,發現AlphaGo的極限。今天在棋盤中央就看到了,李世石下得非常漂亮,我們希望能促進AlphaGo的進步。期待周二的第五盤比賽。” 3月15日我滿懷期待着第五盤李世石能繼續擋住AlphaGo,結果苦戰的李世石最終惜敗。1比4,世界圍棋高手與機器人的大戰暫時結束。 前四局戰罷,AlphaGo的模樣漸漸展現在大家面前,奇思妙想的布局,咄咄逼人的中盤,滴水不漏的官子,綜合實力強大毋庸置疑。不過在李世石的探索下,AlphaGo的神話也被打破,它也會失誤,並非無懈可擊。 第五局李世石執黑先行,選擇了穩健的錯小目,無憂角開局。阿爾法繼續不走尋常路,很快走出新鮮的招法。不過李世石今天的戰術非常明確——“先撈後洗”。圍棋關於實地和外勢的爭辯很多,人類棋手更傾向於實地,AlphaGo則對外勢似乎有着更深刻的理解。 右下角AlphaGo的下法有些令人費解,白棋白白送死了數子。雖然這裡本來就是黑棋的“地盤”但白棋還是損失了一些目數。據研究,局部白棋似乎有更好的下法。 隨着棋局進入中盤戰鬥,圍棋的魅力也漸漸展現在大家面前。李世石左上角一手尖沖,意圖順勢削弱中央白勢,AlphaGo在空中反鎮,中央模樣漸漸成型。即使不太會下圍棋的人,也能隱約讀出這兩手棋的棋盤語言,黑棋不利。 後半盤AlphaGo被聶衛平評價為“十好幾段”的實力開始展現;當然,李世石也並未放棄,雖然進入了讀秒,但連續走出強硬的下法,期待把局勢變得更加複雜。可惜,阿爾法穩紮穩打,把微弱的優勢保持到最後,李世石於280手投子認負。本局李世石雖然失利,但還是展現出了自己風格,在AlphaGo強大的後半盤面前,李世石拼搏到了最後一刻。
李世石與AlphaGo的第五盤對局棋譜:
http://slide.sports.sina.com.cn/go/slide_2_820_97594.html/d/1#p=1
………………………………………………………… 怎麼搞的,是不是AlphaGo越下越好了?就是這麼回事兒!趕緊去看看AlphaGo的介紹吧。
AlphaGo的設計者
和象棋相比,由於棋盤更大,圍棋的走法更為複雜,圍棋被看成是對人工智能研究人員的試金石,同時圍棋比賽中對戰略和推理的要求更具有挑戰性。AlphaGo和李世石的世紀對弈吸引了無數目光,那群要用“機器”挑戰人類的“Google大神”都是什麼人?如果將神經系統科學家、人工智能程序員、電腦遊戲設計者、國際象棋神童這幾類人的見識結合到一起,你會得到什麼?答案是:一個科技界的“銀河護衛隊”,也是Google在歐洲最大手筆收購的人工智能公司“DeepMind”。 當史蒂芬·霍金、比爾·蓋茨和馬斯克都在極力反對發展AI(Artificial Intelligence 人工智能)時,進入這個領域看起來是蠢得不能再蠢的舉動。但是DeepMind卻正矗立在AI發展的前沿,英國媒體稱,最不可能發生在這個團隊身上的就是“愚蠢”。 DeepMind科技公司位於倫敦,是一家專注於機器學習算法的初創公司,現有140多名研究人員。英國企業家穆斯塔法·蘇萊曼與象棋大師傑米斯·哈薩比斯,以及計算機科學家謝恩·列格共同創辦了DeepMind。傑米斯·哈薩比斯出生在倫敦,現年39歲,他是DeepMind的靈魂人物。13歲時,傑米斯·哈薩比斯就成為象棋大師,少年時曾沉浸於英國遊戲界,不過現有的資料並沒有顯示他也懂得圍棋。 青少年時期,傑米斯·哈薩比斯曾在一場為遊戲《太空侵略者》設計續集的比賽中獲得第二名,並被遊戲公司“牛蛙”相中。在牛蛙公司,哈薩比斯協助設計和發布了《主題公園》這款模擬現實遊戲。17歲時,哈薩比斯去劍橋大學攻讀計算機科學。整個大學期間,哈薩比斯一直沒有脫離遊戲的世界。1998年,他成立了自己的遊戲公司Elixir Studios,不過他開發的遊戲並沒有取得他期待的那種成功。 為了尋找靈感,哈薩比斯開始研究人腦。他在倫敦大學學院念完了神經科學博士,發表了12篇研究論文,並在該校的蓋茨比計算神經科學所工作。在UCL期間,哈薩比斯研究的方向是海馬體。海馬體是人腦的一個區域,對方向感、記憶調取和未來事件的想象至關重要。 早在被Google突然收購以前,DeepMind就是AI界最有實力的代表。公司創始人之一穆斯塔法·蘇萊曼表示,DeepMind將在20年內開創出真正具有“意識”的人工智能形式。穆斯塔法·蘇萊曼說:“這是我對改變世界、讓世界變得更好所做的努力。” 各大科技公司都在想方設法地模擬人類思維模式。2013年Facebook建立了一個人工智能研究組,以便更好地掌握帖子裡透露出來的行為模式。IBM為自己的“認知計算”項目Watson投入了10億美元。 DeepMind試圖通過研究腦細胞如何互相作用,製造出能夠模仿人腦工作的軟件。蘇萊曼說,多數人工智能算法是依靠程序員將預編碼“標籤”附在數據上,DeepMind的做法與之不同。 在接受《自然》雜誌採訪時,傑米斯·哈薩比斯透露了“嫁給Google”的原因:“我們有相似的公司文化,不過,主要原因還是這樣的結合有助於加速研究步伐。Google擁有豐富的資源,比如數據、計算機,而我們有算法,這是一個很明智的結合。如果展望未來十年或更遠的時間,我們會很激動有機會可以將現在的技術以及未來的技術進步累積起來,最終我們就能在人工智能的幫助下——無論是AI scientists還是AI-assisted scientists,取得科學進步,我們真的會取得科研上的新突破。”
AlphaGo是如何學圍棋的?
AlphaGo為何如此強悍,竟讓世界頂級的圍棋手連敗?因為它突破了傳統的程序,有了一些深度學習的能力。研究人員在AlphaGo的程序中搭建了兩套模仿人類思維方式的深度神經網絡。第一種叫“策略網絡”它讓程序學習人類棋手的下法,挑選出比較有勝率的棋譜,拋棄明顯的差棋,使總運算量維持在可以控制的範圍內。另一種叫“價值網絡”,主要用於減少搜索的深度,它不會一下子搜索一盤棋所有的步數,而是一邊下一邊進行未來十幾步的計算,這樣也就大量減少計算量。 這款程序還會自己與自己下棋,通過大量的鍛煉,拋棄可能失敗的方案,精中選精。“深度思維”(DeepMind)研究人員大衛·希爾韋表示,普通人一生時間能夠進行的比賽數量是有限的,一年可能下一千盤,但阿爾法狗每天能下三百萬盤棋。
有網友介紹了AlphaGo在《自然》雜誌上發表的文章。AlphaGo這個系統主要由幾個部分組成: 1. 走棋網絡(Policy Network),給定當前局面,預測/採樣下一步的走棋。 2. 快速走子(Fast rollout),目標和1一樣,但在適當犧牲走棋質量的條件下,速度要比1快1000倍。 3. 估值網絡(Value Network),給定當前局面,估計是白勝還是黑勝。 4. 蒙特卡羅樹搜索(Monte Carlo Tree Search,MCTS),把以上這三個部分連起來,形成一個完整的系統。 我們的DarkForest和AlphaGo同樣是用4搭建的系統。DarkForest較AlphaGo而言,在訓練時加強了1,而少了2和3,然後以開源軟件Pachi的缺省策略 (default policy)部分替代了2的功能。以下介紹下各部分。
1.走棋網絡:
走棋網絡把當前局面作為輸入,預測/採樣下一步的走棋。它的預測不只給出最強的一手,而是對棋盤上所有可能的下一着給一個分數。棋盤上有361個點,它就給出361個數,好招的分數比壞招要高。DarkForest在這部分有創新,通過在訓練時預測三步而非一步,提高了策略輸出的質量,和他們在使用增強學習進行自我對局後得到的走棋網絡(RL network)的效果相當。當然,他們並沒有在最後的系統中使用增強學習後的網絡,而是用了直接通過訓練學習到的網絡(SL network),理由是RL network輸出的走棋缺乏變化,對搜索不利。 有意思的是在AlphaGo為了速度上的考慮,只用了寬度為192的網絡,而並沒有使用最好的寬度為384的網絡,所以要是GPU更快一點(或者更多一點),AlphaGo肯定是會變得更強的。 所謂的0.1秒走一步,就是純粹用這樣的網絡,下出有最高置信度的合法着法。這種做法一點也沒有做搜索,但是大局觀非常強,不會陷入局部戰鬥中,說它建模了“棋感”一點也沒有錯。我們把DarkForest的走棋網絡直接放上KGS就有3d的水平,讓所有人都驚嘆了下。可以說,這一波圍棋AI的突破,主要得益於走棋網絡的突破。這個在以前是不可想像的,以前用的是基於規則,或者基於局部形狀再加上簡單線性分類器訓練的走子生成法,需要慢慢調參數年,才有進步。 當然,只用走棋網絡問題也很多,就我們在DarkForest上看到的來說,會不顧大小無謂爭劫,會無謂脫先,不顧局部死活,對殺出錯,等等。有點像高手不經認真思考的隨手棋。因為走棋網絡沒有價值判斷功能,只是憑“直覺”在下棋,只有在加了搜索之後,電腦才有價值判斷的能力。
2. 快速走子
那有了走棋網絡,為什麼還要做快速走子呢?有兩個原因,首先走棋網絡的運行速度是比較慢的,AlphaGo說是3毫秒,我們這裡也差不多,而快速走子能做到幾微秒級別,差了1000倍。所以在走棋網絡沒有返回的時候讓CPU不閒着先搜索起來是很重要的,等到網絡返回更好的着法後,再更新對應的着法信息。 其次,快速走子可以用來評估盤面。由於天文數字般的可能局面數,圍棋的搜索是毫無希望走到底的,搜索到一定程度就要對現有局面做個估分。在沒有估值網絡的時候,不像國象可以通過算棋子的分數來對盤面做比較精確的估值,圍棋盤面的估計得要通過模擬走子來進行,從當前盤面一路走到底,不考慮岔路地算出勝負,然後把勝負值作為當前盤面價值的一個估計。這裡有個需要權衡的地方:在同等時間下,模擬走子的質量高,單次估值精度高但走子速度慢;模擬走子速度快乃至使用隨機走子,雖然單次估值精度低,但可以多模擬幾次算平均值,效果未必不好。所以說,如果有一個質量高又速度快的走子策略,那對於棋力的提高是非常有幫助的。 為了達到這個目標,神經網絡的模型就顯得太慢,還是要用傳統的局部特徵匹配(local pattern matching)加線性回歸(logistic regression)的方法,這辦法雖然不新但非常好使,幾乎所有的廣告推薦,競價排名,新聞排序,都是用的它。與更為傳統的基於規則的方案相比,它在吸納了眾多高手對局之後就具備了用梯度下降法自動調參的能力,所以性能提高起來會更快更省心。AlphaGo用這個辦法達到了2微秒的走子速度和24.2%的走子準確率。24.2%的意思是說它的最好預測和圍棋高手的下子有0.242的概率是重合的,相比之下,走棋網絡在GPU上用2毫秒能達到57%的準確率。這裡,我們就看到了走子速度和精度的權衡。 和訓練深度學習模型不同,快速走子用到了局部特徵匹配,自然需要一些圍棋的領域知識來選擇局部特徵。對此AlphaGo只提供了局部特徵的數目,而沒有說明特徵的具體細節。我最近也實驗了他們的辦法,達到了25.1%的準確率和4-5微秒的走子速度,然而全系統整合下來並沒有復現他們的水平。 在AlphaGo有了快速走子之後,不需要走棋網絡和估值網絡,不藉助任何深度學習和GPU的幫助,不使用增強學習,在單機上就已經達到了3d的水平,這是相當厲害的了。任何使用傳統方法在單機上達到這個水平的圍棋程序,都需要花費數年的時間。在AlphaGo之前,Aja Huang曾經自己寫過非常不錯的圍棋程序,在這方面相信是有很多的積累的。
3. 估值網絡
AlphaGo的估值網絡可以說是錦上添花的部分,沒有它AlphaGo也不會變得太弱,至少還是會在7d-8d的水平。少了估值網絡,等級分少了480分,但是少了走棋網絡,等級分就會少掉800至1000分。特別有意思的是,如果只用估值網絡來評估局面(2177),那其效果還不及只用快速走子(2416),只有將兩個合起來才有更大的提高。我的猜測是,估值網絡和快速走子對盤面估計是互補的,在棋局一開始時,大家下得比較和氣,估值網絡會比較重要;但在有複雜的死活或是對殺時,通過快速走子來估計盤面就變得更重要了。考慮到估值網絡是整個系統中最難訓練的部分(需要三千萬局自我對局),猜測它是最晚做出來並且最有可能進一步提高的。 關於估值網絡訓練數據的生成,值得注意的是文章中的附錄小字部分。與走棋網絡不同,每一盤棋只取一個樣本來訓練以避免過擬合,不然對同一對局而言輸入稍有不同而輸出都相同,對訓練是非常不利的。這就是為什麼需要三千萬局,而非三千萬個盤面的原因。對於每局自我對局,取樣本是很有講究的,先用SL network保證走棋的多樣性,然後隨機走子,取盤面,然後用更精確的RL network走到底以得到最正確的勝負估計。 令人吃驚的地方是,程序中完全沒有做任何局部死活/對殺分析,純粹是用暴力訓練法訓練出一個相當不錯的估值網絡。這在一定程度上說明深度卷積網絡(DCNN)有自動將問題分解成子問題,並分別解決的能力。
4. 蒙特卡羅樹搜索
這部分基本用的是傳統方法,沒有太多可以評論的,他們用的是帶先驗的UCT,即先考慮DCNN認為比較好的着法,然後等到每個着法探索次數多了,選擇更相信探索得來的勝率值。而DarkForest則直接選了DCNN推薦的前3或是前5的着法進行搜索。我初步試驗下來效果差不多,當然他們的辦法更靈活些,在允許使用大量搜索次數的情況下,他們的辦法可以找到一些DCNN認為不好但卻對局面至關重要的着法。 一個有趣的地方是在每次搜索到葉子節點時,沒有立即展開葉子節點,而是等到訪問次數到達一定數目(40)才展開,這樣避免產生太多的分支,分散搜索的注意力,也能節省GPU的寶貴資源,同時在展開時,對葉節點的盤面估值會更準確些。除此之外,他們也用了一些技巧,以在搜索一開始時,避免多個線程同時搜索一路變化,這部分我們在DarkForest中也注意到了,並且做了改進。
5. 總結
總的來說,這整篇文章是一個系統性的工作,而不是一兩個小點有了突破就能達到的勝利。在成功背後,是作者們,特別是兩位第一作者David Silver和Aja Huang,在博士階段及畢業以後五年以上的積累,非一朝一夕所能完成的。他們能做出AlphaGo並享有現在的榮譽,是實至名歸的。 從以上分析也可以看出,與之前的圍棋系統相比,AlphaGo較少依賴圍棋的領域知識,但還遠未達到通用系統的程度。職業棋手可以在看過了寥寥幾局之後明白對手的風格並採取相應策略,一位資深遊戲玩家也可以在玩一個新遊戲幾次後很快上手,但到目前為止,人工智能系統要達到人類水平,還是需要大量樣本的訓練的。可以說,沒有千年來眾多棋手在圍棋上的積累,就沒有圍棋AI的今天。 在AlphaGo中,增強學習(Reinforcement Learning)所扮演的角色並沒有想像中那麼大。在理想情況下,人工智能系統能在對局中動態地適應環境和對手的招式並且找到辦法反制之,但是在AlphaGo中增強學習更多地是用於提供更多質量更好的樣本,給有監督學習(Supervised Learning)以訓練出更好的模型。在這方面增強學習還有很長的路要走。
常見的幾個問題:
問題1:“Alphago的MCTS做rollout的時候,除了使用快速走子,還用了搜索樹的已有部分,看起來像是AMAF/RAVE反過來:AMAF是把快速走子的信息傳導到樹的其它無關部分,Alphago是把樹的其它無關部分拿來增強快速走子。我懷疑這是不是它棋力比其它DCNN+MCTS強的原因之一。” 這個辦法在解死活題的文章中出現過,會在一定程度上提高搜索效率,但是提高多少還不知道。
問題2:“rollout的走法質量變好可能會導致棋力下降。”
這裡要分兩種情況,tree policy和default policy。在AlphaGo的文章裡面已經說過了,tree policy的分布不能太尖,不然在搜索時太過重視一些看起來的好着,可能使得棋力下降。但是除了這種原因,一般來說tree policy變好棋力還是會變強的。 default policy這邊,即(半)隨機走子到最後然後判分,就很複雜了,質量變好未必對局面能估得更准。default policy需要保證的是每塊棋的死活大體正確,不要把死的棋下成活的或者反之,而對大局觀的要求反而沒有那麼高。雙方完全可以配合着把每塊棋下完,然後轉戰另一塊,而不是說搶在對方前去別處占先手。
………………………………………………………… 以上具體介紹AlphaGo如何下棋的我幾乎沒有刪節。首先我不懂電腦編程,別把重要的部分給刪掉。第二,我希望讀者明白,AlphaGo之所以如此強大,就在於它會自我完善,自我學習。此前總聽到科學家們聲稱“機器人早晚會毀滅人類”。我當時認為是聳人聽聞,現在我看了AlphaGo下圍棋後便不這麼認為了。機器人會自我完善! 這次人機大戰,我當然希望李世石能贏,其心理就是不想讓事實證明人類“很笨”;AlphaGo這個圍棋智能機器人剛剛出世就把人類頂尖棋手殺得丟盔卸甲,我們是得不由自主地想到人類的尊嚴問題。
|
|
![]() |
![]() |
| 實用資訊 | |
|
|
| 一周點擊熱帖 | 更多>> |
| 一周回復熱帖 |
| 歷史上的今天:回復熱帖 |
| 2015: | 沉痛哀悼我軍上將我黨領袖我國傑出領導 | |
| 2015: | 男人的魅力不在於財富,而在於精神深度 | |
| 2014: | 今天到某市公幹,順便捏了幾張影。看看 | |
| 2014: | 屁爺,我認為中國還是洗心革面,踏踏實 | |
| 2013: | 鐵獅子: 美國行---鹽湖和銅礦大坑(圖 | |
| 2013: | 可笑隨便阿Q還開口閉口精英領導。神奇 | |
| 2012: | 重慶人民對薄熙來的評價: | |
| 2012: | 整體來看,中國假右派在美國也是支持法 | |
| 2011: | 珍曼:遇到過的一個韓國女孩... | |
| 2011: | 向“福島50”致敬。留在福島控制核輻射 | |




