揭秘谷歌AlphaZero:從AlphaGo進化 如何通殺棋類遊戲

特邀精選發表於2019-01-08

美國《紐約客》雜誌(The New Yorker)近日發表的文章揭秘谷歌旗下DeepMind最新公佈的人工智慧AlphaZero。這個AI程式起源於在2016年名聲大噪的圍棋AI AlphaGo,而AlphaZero被應用於更多棋類遊戲中,取得了令人可喜的成就。以下為文章全文:

幾周前,谷歌AI子公司DeepMind內的一群研究人員在國際權威學術期刊《科學》(Science)上發表了一篇論文,其中描述了一種遊戲領域的人工智慧(AI)。儘管他們的通用AI系統適用於許多雙人遊戲,但是研究人員卻進行了調整,使其專門針對圍棋、國際象棋以及將棋(日本象棋)。這種AI程式事先並不瞭解任何一種棋類遊戲的規則。一開始,它只是隨意下子。之後,它透過和自己對弈掌握了遊戲規則。九個小時內,AlphaZero在大量特殊谷歌硬體叢集中自我對弈4400萬局。之後兩個小時,它的表現已經超過人類棋手。四個小時之後,它就打敗了全球最出色的象棋引擎。

這一名為AlphaZero的程式起源於AlphaGo。AlphaGo曾經在2016年3月打敗了全球最出色的圍棋棋手李世石。李世石的失利讓大家感到震驚不已。去年早些時候在Netflix上播出的一部紀錄片《AlphaGo》中,影片製作人員跟蹤了開發這款AI的團隊及其人類陪練,他們將所有精力都奉獻給了AlphaGo的研發。在觀看紀錄片的時候,我們見證了這部分人所經歷的一種新的悲傷階段。一開始,他們認為自己不會輸給一臺機器:“我想人類的直覺非常高階,AI無法超越我們。”李世石在與AlphaGo對弈前的一天這樣說道。可是,當AlphaGo開始贏得勝利之後,恐慌感油然而生。在某一個心生酸楚感的瞬間,李世石因首局失利承受著巨大的壓力,他突然起身離開桌子,不顧比賽時間限制,走到外面去抽了一根菸。他俯瞰著首爾的屋頂。(在網際網路上,有五千多萬人在關注著這場比賽。)與此同時,AI並不知曉他的對手跑到何處了,而是繼續下子,這一步就連評論員也稱讚是“創造性、令人驚訝的棋路”。最終,李世石以1:4的比分輸掉了比賽。在接受事實之前,他倍感受挫。“我要為我的無能而道歉。”他在新聞釋出會上這樣說道。最後,李世石以及其他圍棋界的成員開始欣賞這臺機器。“我想,這給圍棋帶來了一種新的正規化。”他說。歐洲圍棋冠軍樊麾也對此表示贊同,並且表示:“也許它能向人類展示出更多我們從未發現過的東西。或許這也是一種美。”

對於AlphaGo的開發者來說,這確實是一場勝利,但他們依然覺得不夠滿意,因為AlphaGo的學習依然非常依賴於人類圍棋棋手的經驗。該AI程式會透過模仿世界一流棋手的棋路來掌握自己該如何落子。它還會使用手工編碼的啟發法,避免在思考接下來的棋路時出現嚴重錯誤。對於開發AlphaGo的研究人員來說,這些認知就像是一根柺杖。他們決意開發一種白板式的新版AI,讓其完全透過自學來開發自己的棋路。

2017年10月發表的一篇論文中詳細介紹了AlphaGo Zero。之所以要取這個名字,那是因為除了圍棋規則之外,這款AI程式對其他事情一無所知。這種新的正規化沒有引起眾多關注。但從某種角度來說,這是一項更加卓越的成就,儘管它與圍棋並沒有太大聯絡。事實上,在不到兩個月時間裡,DeepMind就發表了第三篇論文的預印本,表示AlphaGo Zero背後的演算法可以應用到任何一種雙人零和完美遊戲中(即沒有任何隱藏元素的遊戲,例如撲克牌中牌面朝下的卡片)。DeepMind將名字中的“Go”去掉了,並將新的系統命名為AlphaZero。本質上來說,它是一個強大的演算法。你可以給它輸入人類能想到的最為複雜的規則,讓它去完成一個被人類研究得最為透徹的遊戲。當天內的遲些時候,它就會成為有史以來最出色的玩家。也許更加驚人的是,這種系統的迭代是迄今為止最簡單的一種。

傳統的象棋引擎就像是一個大雜燴,包含了數十年來人們反覆試驗得到的經驗和教訓。全球最出色的引擎Stockfish是開源的。它的最佳化是基於一種達爾文式的選擇:有人提出了一個想法,之後便會進行上萬局遊戲來驗證這個想法是否有效。優勝劣汰。因此,這並非是十分簡明的正規化,程式設計師也許都很難理解。程式設計師對Stockfish進行的最佳調整都是源於國際象棋本身,而不是電腦科學,他們關心的是如何評定棋盤上的某一種情況:騎士值2.1分還是2.2分?如果這是第三橫線,對手卻有一個相反顏色的主教呢?為了說明這一點,DeepMind的研究主管大衛·西爾弗(David Silver)曾經在Stockfish上列出了對應的解決方案。結果需要五十多步,每一步移動都需要大量程式設計運算,而每一步運算也都包含了來之不易的國際象棋奧秘:反移動啟發式(Counter Move Heuristic)、已知殘局的資料庫、疊兵(Doubled Pawns)、陷阱(Trapped Pieces)、半開放線(Semi Open Files)等的評估模組,還要搜尋可能移動棋子的策略,例如“迭代加深”(iterative deepening)等。

相比之下,AlphaZero只有兩個部分:一個神經網路以及一個被稱作為Monte Carlo Tree Search(MCTS)的演算法。(出於對於遊戲的認可,數學家將這種基於隨機數的方法稱作是蒙特卡洛樹。)MCTS背後的理念就是指像國際象棋這類的遊戲實際上是一棵擁有諸多可能性的樹,如果我將車移到d8位置,你可以抓住它或是選擇按兵不動,而此時我可以移動兵或移動主教或保護我的王后……問題在於,這棵樹會以驚人的速度長大。沒有一種計算力能夠足以徹底進行搜尋。專業的人類棋手之所以是專家,原因在於他們的大腦能夠自動識別出這棵樹的基本部分並能聚焦注意力。而計算機如果要想參與遊戲的話,它們也需要這樣做。

揭秘谷歌AlphaZero:從AlphaGo進化 如何通殺棋類遊戲

此時,神經網路就開始派上用場了。AlphaZero神經網路會接收遊戲最後幾步的棋盤佈局,這就是資訊輸入。而作為資訊輸出,它需要評估當前的棋手有多大機率能取得勝利並且預測在當下走什麼樣的棋路能夠以最大可能獲得勝利。MCTS演算法利用這些預測來決定在這棵樹中的關注要點。舉個例子,如果神經網路猜測“騎士吃掉主教”是最佳棋路,那麼MCTS就會投入更多時間用於探究這一步的後果。但如果它認為可行的棋路會有一些冒險,那麼有些時候它就會選擇自己認為較為安全的棋路。

最初,指導搜尋的神經網路顯得略微笨拙:它會隨機進行預測。這樣一來,MCTS就不能很好地聚焦重要部分。但是AlphaZero的天賦就在於它進行學習的方式。它需要兩個部分進行工作,但會讓其相互訓練。即便一個愚蠢的神經網路非常不善於預測可行棋路,它依然能夠起到一定作用:比如說,有些時候,MCTS依然可以獲悉哪一個位置能夠促使其獲得勝利。這種認知能夠被用於改進神經網路。當一局結束時,你就會知道結果,你可以看到神經網路對每個位置的預測(比如說有80%的可能,易位是最好的策略),然後與實際情況進行比對(比如說這一比例更接近60.5%),之後你就可以調整突觸連線來“校正”神經網路,直到它能夠選擇贏得勝利的棋路。從本質上來說,所有MCTS搜尋中的“精華”都被提取出來,用於最佳化改進神經網路

無疑,神經網路的一點點最佳化,都能減少搜尋被誤導的機率——這可以最佳化搜尋,進而提取出更好的資訊來訓練網路。在這樣的反饋迴路中,神經網路就能提升至已知能力的穩定期。

當有關AlphaGo Zero和AlphaZero的論文剛釋出時,一小群愛好者開始在部落格文章與YouTube影片中描述這些系統,並開發他們自己的模擬版本。這項工作的大部分為解釋性的——它源於業餘愛好者學習和分享的衝動,正是這份熱情率先引起了網路轟動。但是也有一小部分努力涉及到大規模地複製這項工作。畢竟,DeepMind論文僅僅描述了世界上最偉大的圍棋和象棋遊戲,他們並不包含任何原始碼,而且公司也沒有把專案本身提供給玩家。專案成功後,工程師們隨即離開了這一領域。

吉安-卡洛·帕斯庫託(Gian-Carlo Pascutto)是Mozilla公司的一名計算機程式設計師,擁有開發競技遊戲引擎的豐富經驗,先是國際象棋接著是圍棋。他一直在跟進最新研究。隨著蒙特卡洛樹搜尋和神經網路的結合成為圍棋AI的最先進技術,帕斯庫託開發了全球最成功的開源圍棋引擎——先是Leela,然後是LeelaZero——其反應了DeepMind取得的成就。但問題在於,DeepMind可以訪問谷歌的大量雲資料,但帕斯庫託不能。為了訓練公司的圍棋引擎,DeepMind使用了五千個谷歌的“張量處理器”(TPU)——專門為神經網路計算而設計的晶片——訓練了13天。若要在他的桌面系統上完成同樣的工作,帕斯庫託需要連續執行系統一千七百多年。

為彌補計算能力的不足,帕斯庫託決定分發自己的工作。LeelaZero是一個聯合系統:任何想要參與的人都可以下載最新版本,貢獻他自己的計算能力,然後上傳他生成的資料,以便稍稍改進系統。分散式的LeelaZero社群得以讓他們的系統與自己對抗了上千萬個遊戲——比AlphaGo Zero還多一點點。如今,LeelaZero是現存最強大的Go引擎之一。

不久之後,這個想法被擴充套件到國際象棋領域。去年12月份,當AlphaZero的預印本出版時,加里·林斯科特(Gary Linscott)稱:“它好比一顆投向社群的炸彈。”電腦科學家林斯科特曾經研究過Stockfish,他利用現有的LeelaZero程式碼庫,結合AlphaZero論文中的新理念,開發了Leela Chess Zero(Lc0)。(對於Stockfish,他開發了一個測試框架,以便將引擎的新理念分發給一群志願者,從而進行快速的審查;分發神經網路的訓練是十分自然而然的下一個步驟。)起初,還有一些缺陷需要梳理,並且DeepMind團隊在他們的論文中遺留的細節存在一些有根據的猜測。但幾個月之內,神經網路就開始改進。國際象棋世界已然沉迷於AlphaZero:chess.com上的帖子大肆慶祝這個引擎;評論員和象棋大師們仔細研究了DeepMind團隊在他們論文中釋出的AlphaZero遊戲,並宣佈“這才是象棋應有的玩法”,引擎下起象棋來“好似超級人類”。很快,Lc0吸引了數百名志願者。隨著他們不斷貢獻自己的計算能力並改進原始碼,引擎越來越優異。今天,一名核心貢獻者懷疑,再有幾個月這個引擎或將超越Stockfish。不久之後,它可能會超越AlphaZero本身。

當我們透過電話交談時,林科斯特十分驚訝於自己的專案程式。曾經,一個才華橫溢的博士生需要數年時間才能完成類似的專案,但如今一個感興趣的業餘愛好者幾個月內就可以完成類似的專案。神經網路的軟體庫允許人們使用幾十行程式碼複製全球一流的設計;在志願者中間分配計算的已有工具,以及英偉達等晶片製造商為數百萬普通計算機使用者提供了廉價但功能強大的影像處理晶片(GPU)。該晶片非常適合於訓練神經網路。像MCTS這樣的演算法非常簡單,花一兩個下午便可以實施。你甚至都不需要成為你所開發之引擎的遊戲專家。當帕斯庫託開發LeelaZero時,他差不多已有20年時間沒玩過圍棋。

DeepMind研究負責人大衛·西佛爾(David Silver)指出公司最近在遊戲領域的核心工作中的一個看似矛盾的問題:程式越是簡單——從AlphaGo到AlphaGo Zero再到AlphaZero——它們的表現越優秀。“也許我們追求的原則之一,”在2017年12月的一次演講中他提到,“是透過少做,透過減少演算法中的複雜性,它可以使我們的演算法變得更加通用。”從他們的圍棋引擎中移除圍棋知識,引擎可以成為更好的圍棋引擎——並且同時,這個引擎也可以下將棋和國際象棋。

從未有人料想到事情會這樣發展。1953年,協助建立了現代計算機的阿蘭·圖靈(Alan Turing)寫了一篇題為《數字計算機在遊戲中之應用》的小論文。在這篇論文中,圖靈基於“對我下棋時的思維過程的一個內省分析”開發了一個國際象棋程式。程式很簡單,但是在這一情況下,簡單並非好事:正如圖靈他自己並非天才國際象棋玩家,程式本身也缺乏足夠的遊戲深度,下棋的技巧性也不足。即便如此,圖靈猜測“一個人無法開發出下棋水平超越他自身的程式”的這個想法著實是“未經思考的”。雖然說“沒有動物可以吞下比它們自己更重的動物”這話聽上去很有道理,但實際上很多動物都可以吞下比自己重的動物。同樣地,圖靈認為,一個糟糕的國際象棋選手當然可以開發出下棋水平優越的程式。一個引人入勝的辦法就是讓程式自學。

AlphaZero的成功似乎證實了這一點。AlphaZero結構簡單,但卻可以學習其正在對陣之遊戲的深層功能。在AlphaGo Zero論文的一個章節中,DeepMind團隊描述了在經過一定數量的訓練週期之後,他們的AI可以發現大師級玩家所熟知的策略,但在接下來幾個訓練週期之後又捨棄這些策略。看到人類最好的想法在通向更美好未來的道路上被無情拋棄,無疑這是怪異且有點令人感到不安的;物理機器不斷超越我們著實碰觸到了人類的痛處。前國際象棋冠軍加里·卡斯帕羅夫(Garry Kasparov)曾在1997年輸給了IBM開發的超級電腦深藍。在最近的一篇《科學》論文中,卡斯帕羅夫認為AlphaZero並沒有按照可以反映據推測是系統性“程式設計師偏好和偏見”的方式來下棋;相反,即便它對下一步棋的可能位置的搜尋要遠少於傳統引擎,它以一種開發、激進的方式來下棋,並且似乎從戰略而非策略的角度進行思考,就好比一個具有不可思議的想象力的人類。“因為AlphaZero可以自己程式設計,”卡斯帕羅夫寫道,“我會說它的風格更接近真相。”

當然,像人類一樣下棋,與像人類一樣看待國際象棋或像人類學習,完全是兩回事。有句老話說棋類遊戲好比AI界的果蠅:好比果蠅之於生物學家,諸如圍棋和國際象棋這樣的棋類遊戲對於電腦科學家而言是研究智力機制的途徑。這是一個令人回味的類比。但是,曾經只是下棋的任務,一旦有朝一日變成在遊戲樹中每秒搜尋成千上萬個節點的任務時,我們訓練的則是一種完全不同的智力。按這樣的玩法,國際象棋恐怕遠不止是我們所想象的推土機:最終,這個活動不再是我們人類的特長。為了學習,AlphaZero需要對陣數百萬次,遠多於人類一生中對陣次數——但是,一旦AlphaZero完成學習,它可以像天才一般下棋。透過深度搜尋樹,它依賴比人類快得多地思考,然後使用神經網路將其發現變為類似於直覺的東西。當然,程式也讓我們對智力有了新的認識。但是它的成功也印證了世界上最優秀的人類玩家透過另一種過程——一個除了對陣之外,基於閱讀、交談和感受的過程——所見的多少。以及最令人驚訝的是,在這種如今看起來為機器準備的遊戲中,我們人類的表現也也會很好。

相關文章