我們擅長商業策略與用戶體驗的完美結合。
歡迎瀏覽我們的案例。
2016 年,谷歌的人工智能程序擊敗了世界上最好的圍棋選手李世石(Lee Sedol),這場比賽吸引超過 1 億人觀看
1 月 2 日消息,據外媒報道,幾周前,谷歌人工智能(AI)子公司 DeepMind 的研究人員在《科學》(Science)雜志上發表論文,描述了 AI 在游戲中的應用潛力。雖然他們的 AI 系統是通用的,可以用于許多雙人游戲,但研究人員將其專門用于圍棋、國際象棋和日本象棋。除了每種游戲的規則之外,它沒有被輸入其他任何知識。
最初的時候,這種 AI 系統只是隨機下子。隨后,它開始通過自我游戲來學習棋路。在九個小時的訓練過程中,該程序的國際象棋版本在大量專門的谷歌硬件上與自己進行了 4400 萬場比賽。兩個小時后,它的表現開始好于人類選手;四小時后,它擊敗了世界上最好的國際象棋引擎。
這個項目名為 AlphaZero,它是從 AlphaGo 基礎上發展而來的。AlphaGo 也是一種 AI,因在 2016 年 3 月擊敗了世界上最好的圍棋選手李世石(Lee Sedol)而聞名于世。今年早些時候在 Netflix 上播放的紀錄片《AlphaGo》中,制片人跟蹤了開發這款 AI 的團隊及其人類陪練,他們將畢生精力都投入到了這款游戲中。
我們看著這些人經歷了一種新的悲傷。起初,他們不認為人類會輸給機器,李世石在在與 AlphaGo 進行五場比賽的前一天說:“我認為,人類的直覺仍然非常有用,AI 無法趕超。”可是當機器開始獲勝的時候,一種恐慌感油然而生。在一個特別令人痛心的時刻,李世石在輸掉第一場比賽后承受了巨大壓力,他從棋盤后面站了起來,不顧比賽時間限制,走到外面去抽煙。他站在首爾高樓的屋頂上往外看。
與此同時,AlphaGo 不知道它的對手已經去了其他地方,依然走出了評論員所謂的“創造性、令人驚訝的棋路”。最后,李世石以1:4 的比分輸掉了比賽,這讓他感覺非常沮喪。在一次新聞發布會上說,李世石承認:“我想為我的無能道歉。”最終,李世石和圍棋社區的其他成員開始欣賞這臺機器。他說:“我認為這將帶來一種新的范式改變。”歐洲圍棋冠軍范輝對此表示贊同,他指出:“也許 AlphaGo 可以向人類展示一些我們從未發現過的東西。也許它很美!”
對于 AlphaGo 的開發者來說,這的確是一場勝利,但仍然不令人滿意,因為 AlphaGo 在很大程度上依賴于人類的圍棋專業知識。在某種程度上,AI 通過模仿世界級旗手的棋路來積累經驗。它還使用了手工編碼的啟發式方法,以避免 AI 在游戲中思考未來棋路時出現最嚴重的錯誤。對于開發 AlphaGo 的研究人員來說,這些知識就像是一根“拐杖”。為此,他們開始建造新版本的 AI,它可以自學,并獨創出自己的棋路。
2017 年 10 月,DeepMind 研究人員發表論文中詳細介紹了這一成果,之所以稱新的 AI 系統為“AlphaGo Zero”,是因為它對除了圍棋規則外一無所知。這個新項目的知名度要低得多,但從某種意義上說,這是一項更了不起的成就,盡管這一成就與圍棋沒有多大關系。事實上,不到兩個月后,DeepMind 發表了第三篇論文的預印本,表明 AlphaGo Zero 背后的算法可以推廣到任何兩人、零和的完美信息游戲(即不存在隱藏元素的游戲)中。
DeepMind 去掉了 AlphaGo 名字中的“Go”,并給它的新系統命名為 AlphaZero。它的核心是一種強大的算法,你可以給它提供被人類研究得最透徹、經驗最豐富的游戲規則,然后那天晚些時候,它將成為有史以來最好的玩家。也許更令人驚訝的是,這個系統的迭代也是迄今為止最簡單的。
典型的國際象棋引擎堪稱是個大雜燴,需要經過幾十年基于嘗試和錯誤進行調整。世界上最好的國際象棋引擎 Stockfish 是開源的,它通過被稱為“達爾文式選擇”變得越來越好:即有人提出一個想法,成千上萬的游戲來驗證這個想法,最好的版本最終會勝出。因此,它可能不是特別優雅的程序,而且程序員可能很難理解。
程序員對 Stockfish 所做的許多改變最好是從國際象棋而不是計算機科學的角度來表述,他們更多關注如何在棋盤上評估給定的情況:騎士應該值 2.1 分還是 2.2 分?如果它是在第三等級,而對手有個相反顏色的主教呢?為了說明這一點,DeepMind 的研究主管大衛·西爾弗(David Silver)曾在 Stockfish 中列出了移動策略。
它們有五十多個步驟,每種都需要大量編碼,每一個都是來之不易的國際象棋奧秘:反移動啟發式(Counter Move Heuristic)、已知結束游戲數據庫、疊兵(Doubled Pawns)和抽將(Trapped Pieces)等評估模塊、搜索可能移動旗子的策略等。
相比之下,AlphaZero 只有兩個部分:一個神經網絡和一個被稱為 Monte Carlo Tree Search(MCTS)的算法。人們常說,MCTS 算法背后的理念是,像國際象棋這樣的棋類游戲實際上是一棵充滿了各種可能性的樹。如果我把車移到 d8 位置,你可以抓住它,或者隨它去,這時我可以移動兵、移動主教或者保護我的王后……
問題是,這棵樹變得難以置信的大,難以置信的快。任何計算能力都不足以徹底地搜索它。專業的人類玩家之所以是專家,正是因為她的大腦能自動識別出樹的基本部分,并將注意力集中在其上。而計算機想要競爭,必須以某種方式做同樣的事情。
國際象棋評論員對 AlphaZero 的表現贊不絕口
這就是神經網絡的作用所在。AlphaZero 的神經網絡作為輸入,接收游戲最后幾步的棋盤布局。作為輸出,它估計了當前玩家獲勝的可能性,并預測了當前可用的哪些棋路可能效果最好。MCTS 算法使用這些預測來確定樹上的重點位置。例如,如果網絡猜測“騎士干掉主教”可能是一步好棋,那么 MCTS 將投入更多時間來探索這步棋的后果。
起初,指導搜索的神經網絡顯得相當笨,它或多或少地隨機做出預測。結果,MCTS 在集中于樹的重要部分方面做得非常糟糕。但 AlphaZero 的天賦在于它的學習方式。它需要兩個部分的工作,并使它們彼此磨練。即使一個愚蠢的神經網絡在預測哪些動作會起作用方面做得不好,在博弈樹中向前看仍然很有用。例如,在游戲結束時,MCTS 仍然可以學習哪些位置實際上會促使勝利,至少在某些時候是這樣的。
這些知識可以用來改進神經網絡。當游戲結束時,你知道結果,你看神經網絡對每個位置的預測,并將其與實際發生的情況進行比較。然后,你可以通過調整神經網絡的突觸連接來“校正”神經網絡,直到它找到獲勝幾率更大的棋路。本質上,MCTS 的所有搜索都被提煉成神經網絡的新權值。當然,有了個稍微好點兒的網絡,搜索就不那么容易被誤導了,這使它能夠更好地搜索,從而為訓練網絡提取更好的信息。就這樣,在一個反饋回路中,它的能力會不斷提高。
當 AlphaGoZero 和 AlphaZero 的論文發表時,有些棋類愛好者開始在博客文章和 YouTube 視頻中描述該系統,并構建他們自己的模仿版。這項工作的大部分都是解釋性的,它源于業余愛好者對學習和分享的渴望,這種沖動最初導致了網絡的出現。但是,為了大規模地復制這項工作,還需要其他努力。畢竟,DeepMind 的論文只描述了世界上最偉大的圍棋和國際象棋程序,它們沒有包含源代碼,該公司也沒有向玩家提供這些程序。在宣布勝利后,它的工程師們已經離開了戰場。
曾在 Mozilla 公司工作的計算機程序員吉安-卡洛·帕斯卡托(Gian-Carlo Pascutto),在構建有競爭性游戲引擎方面有著良好的記錄,首先是國際象棋,然后是圍棋。他跟蹤最新的研究。隨著將 MCTS 和神經網絡相結合成為圍棋 AI 領域的最新技術,帕斯卡托創建了世界上最成功的開源圍棋引擎,首先是 Leela,然后是 LeelaZero,這也反映了 DeepMind 的進步。
問題在于,DeepMind 可以訪問谷歌龐大的云計算平臺,但帕斯卡托卻沒有。為了訓練自己的圍棋引擎,DeepMind 使用了 5000 個谷歌的“張量處理單元”(TPU)13 天,它們是專門為神經網絡計算設計的芯片。而為了在桌面系統上做同樣的工作,帕斯卡托必須運行自己的程序 1700 年才能取得同樣的效果。
為了彌補計算能力的不足,帕斯卡托分發了這項工作。LeelaZero 是個分布式系統,即任何想要參與的人都可以下載最新版本,將他擁有的任何計算能力貢獻出來,并上傳自己生成的數據,這樣系統就可以稍加改進。分布式的 LeelaZero 社區已經讓他們的系統與自己玩了 1000 多萬場游戲,比 AlphaGo Zero 略多一點兒。它現在是現有的最強大的圍棋引擎之一。
沒過多久,這個想法就擴展到國際象棋上。2017 年 12 月,當 AlphaZero 預印本出版時,加里·林斯科特(Gary Linscott)說:“它就像一顆炸彈擊中了社區。”林斯科特是從事 Stockfish 研究的計算機科學家,他使用了現有的 LeelaZero 代碼庫,以及 AlphaZero 論文中的新思想,創建了 LeelaChessZero。
關于 DeepMind 團隊在他們的論文中遺漏的細節,有些問題需要解決,也有些經驗猜測,但在幾個月內,這個神經網絡就開始改進了。國際象棋界已經癡迷于 AlphaZero:Chess.com 上的帖子慶祝了這款引擎的誕生,評論員和特級大師仔細研究了 DeepMind 在論文中發布的幾款 AlphaZero 游戲,宣稱“國際象棋就應該這么玩”。
很快,就像 Leela Chess Zero 的名字一樣,Lc0 吸引了數以百計的志愿者。由于他們貢獻了他們的計算機能力和改進的源代碼,引擎變得更好用。如今,一位核心撰稿人懷疑,距離趕超 Stockfish 只有幾個月的時間了。不久之后,它可能會變得比 AlphaZero 本身更好。
當我們在電話中交談時,讓林斯科特感到驚奇的是,像他推出的項目,曾經需要才華橫溢的博士生幾年的時間,現在卻可以由一個感興趣的業余人員在幾個月內完成。神經網絡的軟件庫只需要幾十行代碼就可以復制一個世界一流的設計,在一組志愿者之間分發計算的工具已經存在,而英偉達等芯片制造商已經將價格低廉、功能強大的 GPU(圖形處理芯片)完美地用于訓練神經網絡,并將其投入到數百萬普通計算機用戶的手中。像 MCTS 這樣的算法非常簡單,可以在一兩個下午內實現,你甚至不需要是這方面的專家。在創建 LeelaZero 的時候,帕斯卡托已經有 20 年沒玩圍棋了。
DeepMind 的研究主管大衛·西爾弗(David Silver)指出,他的公司最近在游戲方面的工作核心似乎存在一個悖論:程序越簡單(從 AlphaGo 到 AlphaGo Zero 再到 AlphaZero),它們的表現就越好。他在 2017 年 12 月的一次演講中說:“也許我們追求的原則之一是,通過少做些事情,消除算法的復雜性,使我們的技術變得更加通用。”通過去掉圍棋引擎中的圍棋知識,他們開發出更好的圍棋引擎。同時,它也是可以玩日本象棋和國際象棋的引擎。
我們從未想過,事情會變成這樣。1953 年,幫助創造現代計算機的艾倫·圖靈(Alan Turing)寫了一篇題為《數字計算機應用于游戲》的短文。在論文中,他開發了一個國際象棋程序,“基于對我玩棋時思維過程的內省分析”。這個程序很簡單,但在它的例子中,簡單并不是一種美德:就像圖靈一樣,他不是個有天賦的棋手,它錯過了游戲的很多深度思考,而且玩得不太好。
盡管如此,圖靈猜測,“人不能設計出比自己玩得更好的游戲機器”,這個想法是個“相當荒謬的觀點”。雖然說“任何動物都不能吞下比自己更重的動物”這句話聽起來是對的,但事實上很多動物都能做到。類似地,圖靈提出,糟糕的棋手開發出色的國際象棋程序,可能也不會有矛盾。要做到這一點,一個誘人的方法就是讓這個程序自己去學習。
AlphaZero 的成功似乎證明了這一點。它有個簡單的結構,但能夠學習游戲中最令人驚訝的特征。在 AlphaGo Zero 的文章中,DeepMind 團隊展示了他們的 AI 在經過訓練數周后,可以找到熟練玩家所熟知的策略,但只在幾個周期后就拋棄了它們。看到人類最好的想法在通往更好的道路上徘徊讓人感覺有點兒怪異,也讓人感到不安:它以一種讓人眼睜睜看著物理機器超越我們的方式沖擊著我們。
在《科學》雜志最近的社論中,1997 年曾輸給 IBM“深藍”計算機的前國際象棋冠軍加里·卡斯帕羅夫(Garry Kasparov)表示,AlphaZero 的下棋方式并沒有反映出系統性的“程序員優先事項和偏見”;相反,盡管它每一步搜索的位置要比傳統引擎少得多,但它以開放、積極的方式發揮作用,似乎從戰略而不是戰術的角度考慮問題,就像一個有著不可思議遠見的人一樣。卡斯帕羅夫寫道:“通過 AlphaZero 的程序本身,我想說它的風格反映了事實。”
當然,像人一樣下棋和像人一樣思考象棋,或者像人一樣學習,并不是一回事。有一句老話說,玩游戲就是 AI 的果蠅,這就像果蠅之于生物學家、圍棋和國際象棋等游戲之于研究智能機制的計算機科學家,它們都同樣重要。這是個令人回味無窮的類比。然而,下棋的任務一旦轉化為在一棵博弈樹中每秒搜索數萬個節點的任務,所使用的智能可能與我們最關心的截然不同。
以這種方式下國際象棋可能比我們想象的更像地球運動:這種活動最終不是我們的強項,因此不應該對我們的靈魂那么珍貴。要學習,AlphaZero 需要比人類多玩幾百萬個游戲。但當它完成時,它就可以像天才那樣去玩。它依靠的攪動速度比人通過深層搜索樹所能做到的更快,然后使用神經網絡將它發現的東西處理成類似直覺的東西。
當然,這個項目教會了我們更多關于智力的新東西。但它的成功也突顯出,世界上最優秀的人類玩家可以通過一種非常不同的方式看到更多東西,即除了親身體驗外,我們還可以基于閱讀、交談和感覺等方式加以理解。也許最令人驚訝的是,我們人類在那些似乎是為機器設計的游戲中表現得同樣好。
(邯鄲網絡公司)