AlphaGo是如何學會下圍棋的
原題:In a Huge Breakthrough, Google's AI Beats a Top Player at the Game of Go
原載:Wired連線 2016.01.27
標籤:人工智能(AI),算法,圍棋。
翻譯:芒芒 原文有刪減
譯註:該文章刊載於人工智能AlphaGo與李世石對戰前夕,當時大眾對比賽的預測還有很大分歧。圍棋界的風雨欲來時,亦是AI界的重要突破日,本文將為你重現人工智能來臨時代的重要進步時刻。
第一縷星火
人工智能領域取得了一項重要突破----一在圍棋項目中,一個由谷歌研究團隊開發的計算機系統AlphaGo擊敗了歐洲的頂尖職業棋手。在此之前,這個關於戰略性和直觀判斷的古老東方競技遊戲,已經困擾了人工智能專家們數十年之久。
在大多數公認的智力遊戲中,機器已經戰勝了最優秀的人類,包括國際象棋、拼字遊戲、黑白棋等等。但是圍棋----這個有着2500年的歷史,比象棋複雜得多的遊戲,即使是面對最先進的計算機系統,頂尖棋手們也能保持優勢。
本月早些時候,谷歌以外的人工智能專家質疑其是否能在短時間內實現突破,而就在去年,許多人認為機器在圍棋項目上打敗頂尖人類還需要再過十年。
但谷歌AlphaGo已經做到了這一點。
「這一切發生的比我想象中快太多。」法國研究員雷米·庫倫説。他的背後,是曾經的世界最佳圍棋AI,Crazystone。
AlphaGo系統
DeepMind計劃自稱為「人工智能界的阿波羅」,於2014年被谷歌收購。在10月倫敦舉辦的這場人機比賽上,DeepMind的系統----一個更廣為人知的名字「AlphaGo」,在與歐洲圍棋冠軍樊麾的對弈中發揮出色,五局比賽未嘗一敗。比賽結果在《自然》雜誌的編輯和英國圍棋聯盟代表的監督和見證下產生,事後《自然》雜誌的編輯評價:這是我職業生涯中最激動人心的時刻之一,無論是作為一名學者還是作為一名編輯。
關於AlphaGo的論文發表在自然雜誌,並登上封面
今天早上,《自然》雜誌發表了一篇論文,描述了AlphaGo的系統,它巧妙地利用了一種越來越重要的人工智能技術,即深度學習。
通過輸入收集到的大量人類棋譜,DeepMind的研究人員開始訓練這個系統自己下圍棋。但這僅僅是第一步。從理論上講,這樣的訓練只會產生一個和頂尖人類一樣優秀的系統(但這不能保證對人類的絕對優勢)。為了打敗最頂尖的人類,研究人員讓這個系統進行自我間對弈。這使得系統自身又可以產生一系列新的棋譜,基於新棋譜訓練出的新人工智能,有着超越人類大師的能力。
「這其中最重要的方面……是AlphaGo不僅僅是一個手動規則構建下的專門系統,」負責DeepMind監督的戴密斯·哈薩比斯説,「相反,它還使用通用的機器學習技術來贏得勝利。」
窮舉與剪枝
早在2014年初,庫倫的圍棋程序Crazystone就挑戰了日本的職業棋手依田紀基並獲得了勝利,但有一點需要聲明----這是AI在受讓四子的情況下。在圍棋中,這代表着開局的巨大優勢。當時,庫倫預測,機器還需要10年的發展,才能在分先的情況下贏得頂尖棋手。
這項研究的難度在於圍棋規則本身。
即使是功能再強大的超級計算機,處理能力也有極限,無法在給定任意的合理的時間內分析出棋盤中可行的每步棋着的變化。當深藍在1997年戰勝國際象棋冠軍卡斯帕羅夫時,就是以這樣的「暴力」做到的。從本質上講,IBM的超級計算機分析了當前可行的每一步棋的結果,這樣的預測視野超越了人類棋手的極限。但在圍棋中,這是不可能做到的。在國際象棋中,任意給定的回合平均約有35種可行的變化;而圍棋--這種兩個玩家在19×19的網格上以拋光的棋子互相對抗的遊戲,有着約250種變化,並且每種都能生出另外的250種,依此類推,無法窮盡。就像哈薩比斯指出的一樣:橫盤上存在的變化比宇宙中的原子還要多。
在使用一種被稱為蒙特卡羅樹搜索的技術後,像Crazystone這樣的系統能夠脱穎而出,結合其他技術,系統可以縮小必須分析的步數的範圍,最終他們可以戰勝一些圍棋高手----但不能戰勝最頂尖的棋手。
局面形式判斷
在頂尖棋手中,每一手棋更具直觀性。棋手可能會告訴你,要基於盤中的棋形和局勢來決定下一步棋着(棋手思維),而不是仔細分析盤上每個點可能的後續變化(系統思維)。「好的選點看上去就覺得很棒,就像遵循着某種美學一般。」同時也是一名棋手的哈薩比斯説,「歷經數千年依然是一個迷人的遊戲,或許這就是它的魅力所在。」
但是,隨着2014年讓步至2015年,包括愛丁堡大學團隊,Facebook團隊以及DeepMind團隊在內的研究者們,開始將深度學習應用於圍棋研究。這個想法是利用技術來模仿下棋時所需要的「人類直覺」。「圍棋是隱式的,且都是模式匹配(一種算法)」哈薩比斯説:「但這正是深度學習的優勢所在。」
自我增強
深度學習依賴於所謂的神經網絡----一種硬件和軟件網絡,類似於人腦中的神經元。這些神經網絡並非依靠暴力計算或手動制定的規則來運作,他們分析大量數據以「學習」特定的任務。將足夠多的袋熊照片送入神經網絡,它可以學習識別袋熊;給它「投餵」足夠多的口語,它可以學會辨認你説的話;「投餵」足夠的圍棋走法,它就可以學會下圍棋。
在DeepMind,研究人員希望神經網絡可以通過「看」盤中的選點來掌握圍棋,就像人類在下棋時一樣。這項技術反饋良好,通過將深度學習與「蒙特卡洛樹」方法結合,Facebook旗下的系統已經擊敗了一些人類玩家。
但DeepMind團隊更加深入的執行了這個理念。當接受了3千萬步人類棋着的訓練後,DeepMind神經網絡能以57%的概率預測下一手人類棋着,這是一個令人印象深刻的數字(此前的記錄是44%)。在這之後,研究員們讓該神經網絡和與其自身略有不同的版本進行相互對弈,這被稱之為強化學習。本質上來説,通過神經網絡進行自我對弈,系統會追蹤哪一手棋能夠帶來最大利益----在圍棋中體現在獲得最多的地盤。隨着時間的增加,系統在識別「哪些棋能帶來利益,哪些不能」方面變得越來越完善。
「AlphaGo通過其神經網絡之間的數百萬次相互對弈,日漸提高,最終學會了自己發現新的戰略。」DeepMind的研究員西爾弗説。
據團隊成員西爾弗的説法,這使得AlphaGo能夠超越包括Crazystone在內的所有圍棋AI系統。在這之後,研究員們將研究結果輸入第二個神經網絡,收集它通過自我對弈給出的建議棋着,神經系統便可以預見這之後的每一步的變化。這類似於較舊的系統(如深藍)在國際象棋領域所表現出的一樣,只不過AlphaGo系統在分析更多數據時,會不斷進行自我學習並最終做到這一點,而非通過暴力的手段探索棋盤上所有的可能性。這樣一來,AlphaGo不僅學會了擊敗現有AI程序,也能學會擊敗頂尖的人類棋手。
風雨欲來
在非公開場合打敗了歐洲的圍棋大師之後,哈薩比斯和他的團隊旨在在公開論壇上擊敗世界頂尖棋手之一的李世石。
不久之後的三月,AlphaGo將在韓國挑戰圍棋世界冠軍李世石。李世石是至今為止世界冠軍數第二位的棋手,並在過去的十年裏獲得了最多的世界冠軍。哈薩比斯將他視為「圍棋世界的費德勒」。
根據庫倫等人的説法,戰勝世界冠軍將比戰勝歐洲冠軍樊麾更具挑戰性。但是這次,庫倫將賭注押在了一直以來的競爭對手----AlphaGo上。在過去的十年中,他一直嘗試開發出能夠擊敗世界最頂尖棋手的AI系統,現在,他相信這個系統就在眼前。
------完-------
PS:庫倫和他背後的crazystone,感覺也是一個被後起之秀超越而壯志未酬的故事呢,冥冥中太像棋界人生~