關於 AlphaGo 論文的閱讀筆記

這是Deepmind 公司在2016年1月28日Nature 雜誌發表論文 《Mastering the game of Go with deep neural networks and tree search》。介紹了 AlphaGo 程序的細節。html

本博文是對這篇論文的閱讀筆記。算法

AlphaGo 神經網絡構成

AlphaGo 整體上由兩個神經網絡構成。如下我把它們簡單稱爲「兩個大腦」,這並不是原文中的提法,僅僅是個人一個比喻。網絡

第一個大腦(Policy Network)的做用是在當前局面下推斷下一步可以在哪裏走子。它有兩種學習模式:一個是簡單模式。它經過觀察 KGS(一個圍棋對弈server)上的對局數據來訓練。粗略地說:這可以理解爲讓大腦學習「定式」,也就是在一個給定的局面下人類一般會怎麼走,這樣的學習不涉及對優劣的推斷。機器學習

還有一個是自我強化學習模式。它經過本身和本身的海量對局的終於勝負來學習評價每一步走子的優劣。因爲是自我對局,數據量可以無限增加。函數

第二個大腦(Value Network)的做用是學習評估整體盤面的優劣。它也是經過海量自我對局來訓練的(因爲採用人類對局會因爲數據太少而失敗)。post

在對弈時。這兩個大腦是這樣協同工做的:學習

第一個大腦的簡單模式會推斷出在當前局面下有哪些走法值得考慮。google

第一個大腦的複雜模式經過蒙特卡洛樹來展開各類走法,即所謂的「算棋」,以推斷每種走法的優劣。在這個計算過程當中,第二個大腦會協助第一個大腦經過推斷局面來砍掉大量不值得深刻考慮的分岔樹,從而大大提升計算效率。人工智能

與此同一時候,第二個大腦自己經過下一步棋致使的新局面的優劣自己也能給出關於下一步棋的建議。spa

終於,兩個大腦的建議被平均加權。作出終於的決定。

在論文中一個有趣的結論是:兩個大腦取平均的結果比依賴二者各自得出的結果都要好很是多。

這應當是讓 AlphaGo 表現出和人類類似性的關鍵所在。


======================================
兩個網絡的輸入都是整個棋盤的狀態,不存在一個注重局部一個注重整體。差異在於功能,policy network用於直接給出落子策略,value network用於高速預計當前局面致使終於獲勝的機率。MCTS在一個簡化版的policy network的指導下屢次搜索到終局來實時(但比較慢)預計當前局面終於獲勝的機率。

value network估算的機率和MCTS估算的機率直接加權平均,終於選擇落子位置的時候是根據這個加權平均和完整版policy network給出的對各落子位置的收益的一個加權平均,但是一個位置被MCTS搜索(類似於計算)的次數越多,policy network的結果(類似於經驗和直覺)給的權值也越小。因此這一步並不是一個簡單的加權平均。也不是局部推斷和全局推斷的加權平均。兩個網絡考慮了多少全局因素和局部因素僅僅跟訓練數據和當前棋盤狀態有關,跟用的哪一個網絡沒有關係。

使用圖像識別常用的卷積神經網咯識別棋局確實可能不是最好的方案,但是圍棋的狀態和圖像都具備必定的平移對稱性。這是卷積網絡擅長利用的特色。

我不瞭解圍棋,但我猜人識別圍棋局面應該也是有使用識別圖像時的類似思惟的。我看到有懂圍棋的說人會使用一些抽象的模糊的概念進行高速但不精確的推演,假設這點很是重要的話,現在的算法可能還需要增長recurrent neural network來實現類似的功能。但也應該不是大問題。

加上機器高速搜索的能力。我以爲三月份輸贏或許很差說。但是AI在圍棋上碾壓人類也就一兩年內的事了。

學習效率問題。現在AI學習的方式確實跟人很是不同,但這僅僅是因爲人在學習一個新領域的知識的時候並不是真正從零開始的,而像神經網絡這樣的模型每每是從隨機的參數開始訓練的,沒有不論什麼別的先驗信息。

比方AI假設懂得人類語言以及各類常識,常用概念,那麼開始學圍棋的時候並不用像現在這樣看大量人類的棋譜,而後瘋狂本身跟本身下,而可以跟人同樣由老師從基礎知識開始一點點教授。這樣或許起步能更快一些。

但是到了需要大量模仿和練習來提高技能的階段,AI的學習效率真不必定比人差。

======================================


提出如下這些問題和評論

首先,這些神經網絡訓練在很是大程度上是經過自我對局來實現的。

這既是某種優點(依照 Facebook 人工智能研究員田淵棟的說法,幾千萬自我對局這樣的規模是至關驚人的數據量)。某種程度上來講也是不得已而爲之,因爲人類對局的總數實在太少,會致使機器學習中常見的過分擬合問題。

但是這樣是否有可能形成自我設限乃至畫地爲牢的後果?這同一時候牽涉到人們對神經網絡學習過程的理解和對圍棋自己的理解。

一方面,神經網絡自己是否包容必定程度的「think out of the box」的能力。這當然取決於詳細的神經網絡算法,但也確實是人們對神經網絡方法的一個本質困惑。

還有一方面,因爲 AlphaGo 最基礎的定式仍然是來源於人類對局,所以。這個問題依賴於人類棋手自己是否已經窮盡了圍棋中所有有意義的基本定式。

(做爲一個案例,在 AlphaGo 和樊麾的第二盤對局中,很是多人都注意到 AlphaGo 走了一個不標準的大雪崩定式。這是說明 AI 學錯了呢,仍是它發現這是更好的走法?)

其次,這兩個大腦的工做方式確實和人類很是類似,一個推斷細部,一個縱覽全局。但 AlphaGo 終於的結合二者的方式至關簡單粗暴:讓二者各自評估一下每種可能的優劣,而後取一個平均數。

這可毫不是人類的思惟方式。

對人類來講,這兩種思考問題的方式的結合要複雜的多(不只僅是在圍棋中是這樣)。

人們並不是老是同一時候對事態作出宏觀和微觀的推斷。而是有時候側重於大局。有時候側重於細部。

詳細的精力分配取決於事態自己,也取決於人在當時的情緒、心理和潛意識應激反應。這固然是人類不完美之處,但也是人類行爲豐富性的源泉。

而 AlphaGo 當然體現出必定的大局觀,但從詳細算法看來。它在爲了宏觀優點作出局部犧牲這方面的能力和人類全然不能相提並論。AlphaGo 引入整體盤面評估確實是它勝於不少別的圍棋 AI 的地方。但從根本上來講,這僅僅是人們讓 AI 具備「戰略思惟」的嘗試的第一步,還有太多可以改進的可能性。

最後。和很是多別的圍棋 AI 同樣,當 AlphaGo 學習盤面推斷的時候,採用的是圖像處理的技術,也就是把圍棋棋盤當作一張照片來對待。這固然在技術上是很是天然的選擇,但是圍棋棋局到底不是通常意義上的圖案,它是否具備某些特質是常見的圖像處理方法自己並不擅好處理的呢?

應用

爲何要讓人工智能去下圍棋?有很是多理由。但在我看來最重要的一個,是可以讓咱們更深刻地理解智能這件事的本質。

神經網絡和機器學習在過去十年裏躍進式的發展,確實讓 AI 作到了不少以前僅僅有人腦才幹作到的事。但這並不意味着 AI 的思惟方式接近了人類。而且弔詭的是,AI 在計算能力上的巨大進步。反而掩蓋了它在學習人類思惟方式上的短板。

以 AlphaGo 爲例。

和國際象棋中的深藍系統相比,AlphaGo 已經和人類接近了不少。深藍仍然依賴於人類外部定義的價值函數,因此本質上僅僅是個高效計算器。但 AlphaGo 的價值推斷是自我習得的,這就有了人的影子。然而如前所述。AlphaGo 的進步依賴於海量的自我對局數目,這固然是它的好處,但也剛好說明它並未真正掌握人類的學習能力。

一我的類棋手一輩子至多下幾千局棋,就能掌握 AlphaGo 在幾百萬局棋中所訓練出的推斷力,這足以說明,人類學習過程當中還有某種本質是臨時還沒法用當前的神經網絡程序來刻畫的。

(順便提一句,很是多評論以爲 AlphaGo 可以經過觀察一個特定棋手的對局來了解他的棋風以作出相應的對策。

至少從論文來看,這差點兒肯定是不可能的事。

一個棋手的對局數對 AlphaGo 來講實在太少,無從對神經網絡構成有效的訓練。觀察和總結一我的的「棋風」這件事仍然是人類具備全然優點的能力,對電腦來講。這恐怕比贏棋自己還更難一些。)

這固然不是說。AlphaGo 應該試圖去復刻一我的類棋手的大腦。但是 AlphaGo 的意義固然也不該該僅僅反映在它終於的棋力上。

它是怎樣成長的?成長曲線具備什麼規律?它的不一樣參數設置怎樣影響它的綜合能力?這些不一樣參數是否就相應了不一樣的棋風和性格?假設有還有一個不一樣但水平至關的 AI 和它重複對弈。它是否能從對方身上「學到」和自我對弈不一樣的能力?對這些問題的研究和回答,恐怕比單純觀察它是否有朝一日可以超越人類要告訴咱們多得多的知識。

所以。即便 AlphaGo 在三月份打敗了李世乭,在我看來也是還有一扇大門的開啓而非關閉。

其實,即便就圍棋發展自己而論。假設把 AlphaGo 的兩個大腦以如此簡單的方式線性耦合起來就能賽過人類,那僅僅能說明人們對圍棋的規律還有太多值得探索的空間。

而對人工智能領域來講。AlphaGo 和一切神經網絡同樣,本質上還僅僅是個大黑盒,咱們能觀察到它表現出的巨大能力,但對它究竟是怎樣「思考」的這件事依舊所知甚少。

在project上,這是個偉大的勝利。在科學上,這僅僅是萬里長征的第一步而已。


參考資料

AlphaGo 項目主頁:http://www.deepmind.com/alpha-go.html

Nature 論文:http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html

Nature 報道:http://www.nature.com/news/google-ai-algorithm-masters-ancient-game-of-go-1.19234

Dan Maas 對論文的淺顯總結:http://www.dcine.com/2016/01/28/alphago/


關於程序算法藝術與實踐不少其它討論與交流,敬請關注本博客和新浪微博songzi_tea.

相關文章
相關標籤/搜索