昨天關於AlphaGo的報導再次震驚所有人。
而就在前不久,這個史上最強圍棋AI的兩位主要開發者——David Silver和Julian Schrittwieser,做客知名網站reddit,展開一場超級問答AMA(Ask Me Anything)。
比較關注AlphaGo的朋友對其中一位應該不會陌生,David Silver是AlphaGo團隊負責人,也是上一代AlphaGo的主要作者。從首爾到烏鎮,都有他的身影。關於David Silver我們在之前報導黃士傑的文章裡也有提及。
名字更長的Julian Schrittwieser,是這次新一代AlphaGo的三位並列主要作者之一,而且非常年輕。2013年,Schrittwieser本科畢業於奧地利的維也納技術大學;同年9月,Schrittwieser加入DeepMind。
此前DeepMind關於AlphaGo和《星際2》的研究論文中,Schrittwieser也都有參與。
背景就介紹到這裡,以下問答經過量子位(QbitAI)編輯整理。
最強AlphaGo是怎麼煉成的
提問:深度強化學習本來就是出了名的不穩、容易遺忘,請問是如何讓Zero的訓練如此穩定的?
下圖顯示了在自我對弈強化學習期間,AlphaGo Zero的表現。整個訓練過程中,沒有出現震蕩或者災難性遺忘的困擾。
David Silver:AlphaGo Zero所用的算法,與策略梯度、Q-learning之類的傳統(無模型)算法完全不同。通過使用AlphaGo搜索,我們大大改進了策略和自我對弈結果,然後用簡單的基於梯度的更新來訓練下一個策略和價值網絡。
這似乎比漸進的、基於梯度的策略改進要穩定得多,梯度策略可能會忘記之前的優化。
提問:為什麼這次AlphaGo Zero就訓練了40天?訓練3個月會怎麼樣?
David Silver:我想這是一個人力和資源優先級的問題。如果我們訓練了3個月,我想你還會好奇訓練6個月會發生什麼。
提問:看完論文我有個疑問,輸入維度那麼高好像完全沒必要,AlphaGo的residual block輸入維度為什麼是19×19×17?我不太理解為什麼每個玩家要用8個二值特徵plane。
David Silver:實際上,不是只有8個二值特徵這一種選擇,用其他形式的表示可能也沒問題,但我們用了觀察值的堆疊歷史,有三個原因:
提問:你們發了AlphaGo論文之後,網友們說裡邊的算法實現起來不難,但很難達到你們那個訓練量;在計算機下象棋的圈子裡,開發者們也沒少複製其他程序的算法。你認為算法和數據哪個更重要?
Julian Schrittwieser:我認為還是算法更重要,比較一下新AlphaGo Zero和之前論文中的版本,新版效率有多高就知道了。另外,我認為我們在數據效率方面還能有更多提升。
提問:據說和柯潔對戰的AlphaGo,計算力的消耗只有對戰李世乭版本的十分之一。這中間做了怎樣的優化,能簡單說是AlphaGo的算法比之前提高了10倍嗎?
(量子位註:和柯潔對戰的AlphaGo Master,用了和Zero版一樣的算法和架構,不同之處在於引入了人類對局數據和特徵。)
Julian Schrittwieser:主要是因為改進了價值/策略網絡,訓練和架構都變得更好了,不同的網絡架構之間的對比如下圖所示:
提問:你們為什麼一開始選擇用人類對局數據來訓練AlphaGo,而不是通過自我對弈來從0開始?還是當時也嘗試了但效果不好呢?為什麼會這樣?我想知道,兩年前設計一個完全自學的AlphaGo瓶頸在哪?
David Silver:創造一個完全自學成才的系統,一直是強化學習中的一個開放式問題。我們一開始嘗試的方法,以及在文獻綜述部分提到的很多其他方法,都非常不穩定。我們做了很多實驗,最終發現,AlphaGo Zero的算法是最有效率的,好像攻克了這個特定的問題。
提問:你們有沒有想過用生成對抗網絡(GAN)?
David Silver:在某種意義上,AlphaGo的自我對弈訓練已經有了對抗——每次迭代都試圖找到上一代版本的「反策略」。
為何成功者不是Facebook
提問:我聽說在AlphaGo開發初期,你們在訓練中人為向特定方向引導,來解決它在棋局中表現出來的弱點。現在它的能力已經超越人類認知了,會不會還需要人工調整,避免它落入局部最大化?你們有這個打算嗎?
David Silver:實際上,我們從來沒有為特定的弱點而人為引導過AlphaGo,而是一直專注於原則化的機器學習算法,讓算法自己學會糾正自己的錯誤。
想找到圍棋的最優解當然是不現實的,所以弱點總是存在。在實踐中,用正確的探索方法來保證訓練沒有卡在局部最優解中非常重要,但我們沒有用上人為的引導。
提問:AlphaGo的研究中,最困難的是什麼?
David Silver:我們遇到的第一個大挑戰,是在跟李世乭比賽的時候。當時我們意識到,AlphaGo偶爾會產生「妄想」,也就是會系統地誤判盤面情況,並且持續數手。我們嘗試了很多想法來解決這個弱點。而引入更多圍棋知識,或者人類元知識一直是種誘惑。
但最終我們取得了巨大的成功,徹底解決了AlphaGo的問題。我們用的方法是,更多地依賴強化學習的力量,讓它自己找到更好的解決方案。
提問:AlphaGo在行棋時間安排上是怎麼考慮的?
David Silver:我們實際上用了一個相當直接的時間控制策略,基於自我博弈中勝率的簡單優化。當然可以應用更複雜的策略,性能也應該可以再提升一點點。
提問:DeepMind和Facebook研究這個問題大概是在同一時間,是什麼讓AlphaGo這麼快拿到了圍棋最高段位?
David Silver:Facebook更專注於監督學習,這是當時最厲害的項目之一。我們選擇更多地關注強化學習,是因為相信它最終會超越人類的知識。最近的研究結果顯示,只用監督學習的方法的表現力驚人,但強化學習絕對是超出人類水平的關鍵。
AlphaGo不開源,打《星際2》還早著呢
提問:你們有開源AlphaGo的計劃嗎?
David Silver:我們過去開源了不少代碼,但是開源這個過程總是很複雜。在AlphaGo這個問題上,非常不好意思,它的代碼庫實在是過於複雜了。
提問:AlphaGo Zero還在訓練麼?未來還會有突破麼?
David Silver:AlphaGo已經退役了!我們的人力和硬體資源,已經轉移到其他AI項目上了。
提問:AlphaGo Zero是最終版本的AlphaGo麼?
David Silver:我們已經不再主動研究如何讓AlphaGo變得更強,但它仍然是所有DeepMind同仁的研究測試平臺,用於嘗試新的想法和算法。
提問:與圍棋相比,AlphaGo Zero打《星際2》有多難?什時候能有新進展?
David Silver:前不久我們剛發布了《星際2》的環境,現在相關研究還在相當早期的階段。《星際2》的行為空間顯然比圍棋大得多,需要監控的數據量也更大。從技術上來講,圍棋是一個完美信息博弈,而戰爭迷霧讓星際變成不完美信息博弈。
關於AI研究
提問:AlphaGo在神經網絡的可解釋性方面有什麼進展?
David Silver:可解釋性對我們所有的系統來說都是有趣的問題,而不僅僅是AlphaGo。DeepMind內部正努力研究詢問系統的新方式。最近,他們的研究已經發表出來,主要是從認知心理學出發,來嘗試破譯神經網絡內部的情況。這項研究非常棒。
提問:似乎使用或模擬強化學習智能體的長期記憶是一個很大瓶頸。展望未來,你是否相信我們即將以一種新的思維方式「解決」這個問題?
Julian Schrittwieser:你說的沒錯,長期記憶確實是個重要因素。例如,在《星際2》的一場比賽中可能有上萬個動作,另外還得記住你偵察到的東西。
我認為目前已經有了很一顆賽艇的組件,比如神經圖靈機,但在這個領域,我們還將看到一些更令人印象深刻的進步。
提問:有沒有強化學習(RL)用在金融領域的案例?
David Silver:很難在公開發表的論文中找到真實世界的金融算法。但是有一些經典論文非常值得一讀,例如Nevmyvaka和Kearns在2006年發布的研究、Moody和Safell在2001發布的研究。
提問:怎樣進入AI行業?我覺得「讀個PhD然後找工作」好像是個挺明顯的途徑,但是最常見的路徑不見得就是最好的吧?
Julian Schrittwieser:還有一種方法效果也不錯,挑一個有意思的問題,訓練很多神經網絡,探索它們的結構,然後你會發現一些效果很好的部分,去發表一篇論文,或者去參加會議展示你的成果。
不斷地重複這個過程。
關於圍棋
提問:現在西洋棋程序能給選手評分,通過棋步的分析,來推算Elo等級分。AlphaGo能在圍棋上搞這個嗎?
David Silver:我認為在圍棋上也能做這樣的事情,可能會通過計算最佳下法和實際下法之間的價值差異來實現,或者計算策略網絡下出實際下法的概率。等我有時間試試這個。
提問:關於對局中的第一手棋,我想問,AlphaGo會有一些你從未見過的開局嗎?比如10-10或5-3,或者走很奇怪的一步。如果沒有這種情況,那是出於「習慣」,還是有強烈的信念,3-3、3-4和4-4是最優的?
David Silver:在訓練中,我們看到AlphaGo探索了各種不同的動作——甚至在訓練開始時下出過1-1。即使在經過一段訓練後,Zero也嘗試過下6-4,但很快又回到了熟悉的3-4。
Julian Schrittwieser:實際上,在剛開始訓練AlphaGo Zero時,它完全是隨機的。你可以看到它實際上是在1-1點下出第一手,但逐漸適應網絡後,隨著它變得更強大,就開始青睞4-4、3-4和3-3。
提問:現在AlphaGo能讓頂級圍棋選手几子?能讓柯潔兩子麼?
David Silver:還沒有在與人類選手的對弈中讓過子棋,我們想專注在整場的圍棋比賽中。然而,在讓子條件下測試不同版本的AlphaGo卻很有意義。在Zero的論文中我們提到了各個版本的棋力:AlphaGo Master > AlphaGo Lee > AlphaGo Fan,每個版本都讓三子擊敗了它的前一代。
值得注意的是,因為這些神經網絡沒有專門為讓棋子訓練過。此外,由於AlphaGo是自我對弈訓練的,特別擅長打敗自身較弱的版本。因此,我認為我們不能以任何有意義的方式將這些結果推廣到人類的讓棋子中。
提問:AlphaGo Zero會處理徵子之類的問題嗎?你們是怎樣解決這類問題的?
David Silver:AlphaGo Zero並沒有特殊的特徵來處理徵子,或者任何其他圍棋中的特定問題。在訓練早期,Zero偶爾會因為徵子下滿棋盤,就算它對全局有很複雜的理解也沒用。但在我們分析的棋局中,經過完全訓練的Zero能正確識別所有無意義的徵子。
提問:已經發布的少量AlphaGo自我對弈棋局中,白棋勝率太高。是不是貼目應該降低?
Julian Schrittwieser:從我的經驗和實驗來看,貼7.5目非常平衡。我們只觀察到白棋的勝率略高一點(55%)。
提問:還會再和職業棋手下棋嗎?
Julian Schrittwieser:我們五月份說過,烏鎮那場就是AlphaGo的最後一次比賽了。