編者按:本文來自微信公眾號「機器之心」(ID:almosthuman2014),路雪、劉曉坤編譯,36氪經授權發布。
DeepMind 最近發表了一篇關於 AlphaZero 的論文,介紹了一個通過自我學習掌握西洋棋或將棋的系統。
進入正文之前,我首先做個自我介紹。我是一名人工智慧領域研究者,方向是自然語言處理;我同樣也是一名西洋棋大師,目前是韓國的頂尖選手,但是由於我全職科研最近幾年不是很活躍。因此,我會盡力提出一個合理的、有建設性的觀點。很明顯我會著重講西洋棋,但是一些論點是通用的,可推算至將棋或圍棋。本文僅代表個人觀點,可能出現錯誤或誤解,請見諒。
西洋棋可以說是在「人機對戰」和人工智慧中研究最為廣泛的遊戲。該領域的首個突破是 1997 年 IBM 深藍(Deep Blue)擊敗世界冠軍 Garry Kasparov。在此之前,人們普遍認為在西洋棋上機器不如人,但自深藍勝利以後,人與機器的西洋棋之爭已勝負分明。
Garry Kasparov 對戰 IBM 深藍,1997。
2016 年,DeepMind 推出圍棋引擎 AlphaGo,可擊敗一些人類頂尖圍棋選手。值得注意的是圍棋的複雜性要遠高於西洋棋,正由於此,儘管計算機的算力有了很大提升,但機器依然無法在圍棋上戰勝人類。
因此,AlphaGo 被認為是一次突破。AlphaGo Zero 在 AlphaGo 的基礎上更進一步,可通過完全自我對弈掌握圍棋 。最近出現的 AlphaZero 是一個類似的模型,通過通用強化學習算法訓練神經網絡架構,並擊敗了最好的將棋和西洋棋引擎 。
AlphaZero 的壯舉已被大眾媒體和西洋棋媒體大量報導,其中不乏對其突破的過分誇大。然而,通過仔細地閱讀 AlphaZero 的論文,我認為確實存在對其重要聲明有效性的合理質疑。有些質疑本身可能並不重要,並且作者可能也做出了解釋。但即便如此,所有的疑慮聚合到一起就形成了對其主要聲明的科學有效性的合理質疑。
以下列舉了一些普遍的疑慮:
可用性/可復現性。DeepMind 開發的 AlphaZero 系統都沒有對公眾開放:代碼沒有開源,甚至都沒有一個商業版本讓用戶進行測試。這是一個很大的阻礙,因為從科學角度看,這些方法既不能被驗證也不能被其他專家利用。這種缺乏透明度的做法使他們的實驗基本不可能被復現。
4 小時訓練。AlphaZero 的訓練量成為最難理解的因素之一。根據論文,AlphaZero 在 5000 個 TPU 上訓練了 4 個小時,就達到了超越開源西洋棋引擎 Stockfish 的級別(充分訓練的 AlphaZero 需要再多幾個小時的訓練)。這意味著如果僅使用一塊 TPU,AlphaZero 需要花費大約兩年的訓練時間,這個訓練時間大大超過了使用一塊普通 CPU 的訓練時間。
因此,即使 4 小時訓練時間給我們留下深刻的印象(確實很深刻),這也主要是近幾年算力得到極大發展的功勞,特別是像 DeepMind 這樣對算力進行大量投資的公司。例如,到 2012 年,7 子以內的所有象棋局面已經可以使用數學方法和少得多的計算資源求解。計算能力的提升為新算法的開發鋪平了道路,可能幾年後西洋棋這樣的遊戲甚至可以使用暴力求解方法來解決。
AlphaZero 和 Stockfish 的比賽實驗設置。為了證明 AlphaZero 相對於以前的西洋棋引擎的優越性,DeepMind 讓 AlphaZero 和 Stockfish 進行了 100 次比賽(AlphaZero 以 64:36 的成績打敗了 Stockfish)。
選擇 Stockfish 作為對手看起來是挺合理的,Stockfish 是目前最強大的開源西洋棋引擎,且在最近的 TCEC(目前世界上水平最高的引擎競賽)中取得了第三名(排名在 Komodo 和 Houdini 之後)。
然而,AlphaZero 和 Stockfish 比賽的實驗設置看起來並不公平。他們使用的 Stockfish 版本並不是最新的,更重要的是,該版本還是在一個普通 PC 上運行的,而 AlphaZero 使用的計算能力要強大得多。
例如,在 TCEC 競賽中,所有的引擎都必須使用相同的處理器進行比賽。此外,對時間的選擇看起來也很奇怪。每一個引擎被設置成每一手一分鐘的思考時間。然而,大部分人機競賽都只為整場比賽指定固定時間,每一手的時間由選手自行管理。
正如 Stockfish 的最初開發者之一 Tord Romstad 指出的,這是影響 Stockfish 表現的另一項可疑決定,「研究者投入了大量努力使 Stockfish 能夠鑑別遊戲中的關鍵點,在走棋中決定什麼時候使用額外的時間 。」
Tord Romstad 還指出 Stockfish「執行的搜索線程遠遠多於多次測試中的線程」。此外,AlphaZero 對戰 Stockfish 的超高勝率使某些頂尖的西洋棋選手非常驚訝,它挑戰了「西洋棋引擎幾乎不可戰勝」的普遍觀念(例如,世界排名第九的西洋棋選手 Hikaru Nakamura 質疑了 AlphaZero 和 Stockfish 比賽中的低平局率 )。
和 Stockfish 的 10 局比賽。DeepMind 的論文只分享了 10 場比賽樣本,10 場全是 AlphaZero 取得勝利 。由於 AlphaZero 展示出的對象棋的「深度理解」,這些比賽獲得了象棋社區的一致讚揚:Peter-Heine Nielsen ,象棋特級大師、世界冠軍 Magnus Carlsen 的教練;Maxime Vachier Lagrave ,世界排名第五的象棋選手,二者均對 AlphaZero 在和 Stockfish 比賽中的表現做出了積極回應。
但是,在科技論文中展示提出系統出現缺點或表現不太好的樣本是一種慣例,以使大家對該系統有一個全局了解,也便於其他研究者基於此進行進一步研究。該論文另一個不明確的地方是比賽是從特定的開局開始還是從頭開始。鑑於這 10 場比賽的開局類型,似乎初始棋局是預先確定好的。
AlphaZero 和 Stockfish 的比賽。最後一手:26. Qh1!象棋特級大師 Francisco Vallejo Pons 稱這場比賽像「科幻小說」。圖片來源:chess24
自我對弈。AlphaZero 完全從自我對弈中學習的嗎?根據論文提供的細節來看是這樣的,但有兩個重要的地方需要注意:在開始自我對弈之前必須先教會系統遊戲規則和通常手數(typical number of moves)。這一點並不像看上去那麼無足輕重。要尋找可以對規則進行編碼的合適神經網絡架構必須投入大量研究,正如 AlphaZero 論文中解釋的那樣。
AlphaGo 使用的基於卷積神經網絡的架構適合圍棋,但不適合其他遊戲。例如,西洋棋、將棋就和圍棋不同,它們是不對稱的,一些棋子根據局面進行不同的操作。
最新的 AlphaZero 引入了更通用的 AlphaGo 算法版本,適用於象棋和將棋。第二點(即教會 AlphaZero 棋類遊戲的通常手數)還需要遊戲的一些先驗知識。
此外,超出最大步數的賽局被定為平局(DeepMind 未提供最大步數的信息)。現在不清楚這種啟發式方法是否也用於對抗 Stockfish 的比賽中,還是僅用於訓練。
泛化。AlphaZero 稱其使用了可在多個領域中獲勝的通用強化學習方法。但是,在前面關於自我對弈的觀點之後,也出現大量爭論關於 AlphaGo 和 AlphaZero 系統泛化至其他領域的能力。假設現實生活的很多場景可以被簡化成固定的預製規則集,像圍棋、象棋、將棋那樣,這似乎不切實際。
此外,這些遊戲不僅具備固定的規則集,而且是有限的,即可能的配置情況是有限的,儘管它們的複雜程度各有不同。這和其他也有固定規則集的遊戲不一樣。比如,網球比賽中需要考慮的變量很難量化,必須考慮速度和風向、球速、球和球面的角度、球面類型、球拍材質、場地問題等。
我們應該科學、審慎地觀察這些所謂的突破,尤其是在現在這個 AI 炒作的時代。準確地描述和推廣我們的成就是該領域研究者的責任,研究者不應助長不實信息,把該領域神秘化。事實上,在月初的 NIPS 大會上,一些研究者表達了對近年來該科學領域缺乏嚴謹性的擔憂。
在這種情況下,我希望這些擔憂能夠得到解決,準確地評估 AlphaZero 的實際科學貢獻,而這一判斷並不是現在就能做出的。或許如果有更好的實驗設計和對復現的考慮,DeepMind 的結論就沒有現在那麼讓人震驚了,不過也說不準。
但是我們很難對此做出評估,除非 DeepMind 真的在這方面做出努力。我個人非常希望 DeepMind 在 AI 領域實現更多相關發現,但是我也希望這些成績的取得是以一種同行可以輕鬆評價且對社會有所貢獻的方式進行。