看AlphaGo虐柯潔不爽? 那就解剖它親哥!

導語

AlphaGo有一個同父(Deep Mind)的親哥哥,出生於2015年。從某種程度上說,AlphaGo的這個哥哥比Alpha狗還要厲害,因為它更接近我們人類追求人工智慧的終極目標:通用人工智慧。所以,這個哥哥一出生就引起了當時的輿論界一片嘩然。這個哥哥名叫Deep Q Network,簡稱DQN。

如果你看著AlphaGo虐待咱人類圍棋冠軍不爽,那就來一起把它的哥哥DQN解剖了吧!

人工智慧打遊戲

這個DQN是幹嘛的呢?它是一個專門負責打遊戲的人工智慧!可能你會認為人工智慧打遊戲沒什麼了不起,因為遊戲本身不就是一種計算機程序嗎?但關鍵是,這個神經網路是要像人類玩家一樣通過讀取屏幕上的像素級畫面獲取輸入信息,並直接進行判斷應該採取什麼行動。該網路需要一邊玩一邊學,從而達到人類的水平。

要知道最終訓練得到的這個DQN網路有多牛,不妨讓我們來看看它是如何一點點學會打磚塊這款遊戲的:

這是DQN演算法在開始玩打磚塊遊戲的時候的表現,它顯得非常笨拙,球拍總是躲在一個角落裡,不知道去接球。

隨著DQN不斷地學習、總結經驗,它的表現開始變好了

這個時候的DQN已經學會了如何接球。不過,它還在進化……

慢慢地,它竟然學會了將一側的磚塊打穿,然後讓小球彈到磚塊平台的上邊,保證求不掉下來的同時,一直不斷地打磚塊得分。關鍵的是,這種看起來能夠體現一定智力的策略並不是人類通過編程告訴DQN的,而是它自己通過深度強化學習演算法學習出來的。

那麼,DQN究竟是如何學習到這種「創造性」的玩遊戲策略的呢?接下來,就讓我們拿出手術刀,解剖一下這個DQN演算法。

Q估值

其實,DQN的思想來源於一種被叫做Q學習(Q-learning)的古老演算法。這種演算法的基本思想是,給打遊戲的人工智慧主體賦予一個價值函數Q。這樣Q就可以給主體所面臨的當前環境狀態S(遊戲的狀態)和主體當前所採取的行動a一個評分,並且主體會在若干個可能行動中選擇一個讓Q函數值最大的。這就好比一個小孩子,當他面對一個陌生的環境的時候,就會經常問自己,我現在是不是應該躺在地上打個滾兒?Q函數就是它自己的評價標準。如果他的Q函數對陌生環境,打滾這個狀態、動作組合評分高的話,它就真的會這樣做!

該圖是DQN學習打磚塊遊戲的時候Q函數值隨時間的變化情況,我們會看到Q在緩慢上升

但是,即使引入了Q函數,我們還是沒有解決問題,因為Q函數又怎麼來確定呢?

Deep Q Network

DeepMind的工程師們在這裡引入了深度學習技術,它們用一個多層的深度神經網路來建模這個Q函數,如下圖所示:

如圖所示,左邊的神經元負責接收來自遊戲屏幕的像素級的畫面(這就是環境狀態S),然後網路連接到了一個三層的卷積神經網路。我們知道,卷積神經網路是個認圖、識圖的高手,它不僅可以對圖像中的物體進行準確的分類,而且還能夠從圖像中提取多尺度信息,例如低層的卷積層會提取圖像中的邊緣、稜角等特徵,而高層的卷積網則可能會提取人物、障礙物等大尺度高層次特徵。總之,卷積神經網路會幫助智能主體進行分辨圖像。

網路的輸出層由多個神經元構成,每一個神經元都對應了一種可能的行動a(例如球拍的左移或者右移),輸出的數值則表示在在這種環境S和行動a組合下的Q函數值。也就是說,整個網路就是一個Q函數。

Q-learning

我們知道,這個神經網路是一個典型的前饋神經網路,因此,它需要有一個目標函數來指導它的學習。在DQN中,它的目標函數是什麼呢?答案就在於這個Q函數要能儘可能地對主體在未來所獲得的激勵進行準確地評估。這裡的激勵既包括來自於外在環境的外在激勵,例如遊戲在下一時刻所獲得的積分,也包括內在激勵,即主體的Q函數對未來狀態和行動的估計值。所以,當環境的外在激勵為0的時候,DQN仍然能夠學習,它在儘可能地做到讓自己的Q函數在現在和未來的預估要儘可能地一致!

我們還是用小孩子的例子來說明這種一致性。假設小孩來到了一個陌生的環境,它的父母也不在身邊,環境在大多數情況下也沒有任何反饋信息。那麼,小孩子所做的任何行動都無所謂客觀的好還是壞。這個時候,小孩子也就會慢慢地建立起一套自己的價值觀(Q函數),它會給他自己的行動一種意義(選擇一個行動,以最大化Q)。這種價值觀怎樣都行,只要它能保持前後一致。直到,這套價值觀與來自環境的反饋不一致的時候,它才會調整。比如,它開始以為滿地打滾就是好的,但是一旦他的父母發現,打了他一頓,他才開始修正自己的價值觀。這就是Q-learning演算法的本質。

DQN利用神經網路的方式實現了Q學習演算法。神經網路的好處是具有非常好的泛化能力。這樣,即使當DQN遇到了一種從未遇到過的環境的時候,它也能作出正確的決策。

DQN的表現

接下來,就讓我們看看,這個DQN演算法究竟能夠表現得多好!

在這張圖上,藍色的柱子就是DQN演算法的表現成績,而灰色的柱子是2015年的時候最好的強化學習演算法的表現。每個柱子中的百分比數值是該演算法與人類最好的玩家相比的相對表現。不同的行代表了不同的遊戲。我們可以看到,DQN演算法可以在絕大多數遊戲中表現得比人類還好,而且像Video Pinball和Boxing這些遊戲上,表現已經遠超人類。

DQN不僅可以給出非常酷炫的表現,更重要的是,它還可以學習得到對不同遊戲狀態的表徵,如下圖所示:

在圖中,每一個點就代表一個遊戲狀態(外星入侵者Space Invadar),兩個點彼此靠近就表示這兩種狀態是相似的。我們知道,DQN的神經網路不僅可以正確地估計Q函數,而且還能夠在隱含層學習得到每個遊戲狀態的向量表示,我們利用tSNE把這個高維的向量進行降維並可視化,就得到了這張圖。

至此,我們已經領略了DQN演算法的有效性。然而,有一點值得強調的是,這種DQN演算法是一種非常通用的演算法。也就是說在保持一套相同的超參數不變的情況,我們只需要讓它玩不同的遊戲,就會自動學習出來不同的應對策略,因此DQN可以往通用人工智慧上邁出一大步。

參考文獻:

Mnih V, Kavukcuoglu K, Silver D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015, 518(7540): 529-533.

推薦課程

深度強化學習簡介——史雪松

深度強化學習簡介

AI打遊戲背後的深度強化學習技術——張江

AI打遊戲背後的深度強化學習技術

強化學習入門系列——莫煩

強化學習入門系列

推薦閱讀

基於深度學習原理的「從語音到語言」讀書會開講柯潔輸了,所以來學學AlphaGo背後的人工智慧吧

左右互搏,青出於藍而勝於藍?

2017北京師範大學複雜系統暑期學校招生啟事

揪著自己的頭髮離開地球

透視深度學習,暢想未來應用

集智志願者招募啦!
推薦閱讀:

發布融合 VUI+GUI 的全新智能決策引擎 MorUI2.0,驀然認知的雙腿正從家居邁向車載場景
把「AI威脅論」觀念植入馬斯克大腦的那個人,現在「反水」了
周志華:嚴肅的研究者就不該去觸碰強人工智慧 | 觀點
9評大公司-我看今日頭條
Slack CEO:如何利用AI降低信息過載

TAG:人工智能 | 强化学习ReinforcementLearning | 深度学习DeepLearning |