1. 程式人生 > >深度增強學習:走向通用人工智慧之路

深度增強學習:走向通用人工智慧之路

本文是系列文章中的第一篇,是對深度增強學習/深度強化學習的基本介紹以及對實現通用人工智慧的探討。

現在但凡寫人工智慧的文章,必提 Alpha Go 。也正是因為Alpha Go在圍棋人機大戰中里程碑式的勝利,人工智慧迎來了新的春天。 本文也不免俗套,從Alpha Go說起,但希望能指明一些被忽視的但對Alpha Go棋力有深遠影響的技術。 圍棋人工智慧大致可以分為三個階段 [1] :第一階段以啟發式演算法為主,水平低於業餘初段,代表軟體即以靜態勢力函式為強項的 手談 ; 第二階段以 蒙特卡洛樹搜尋演算法

 為代表,水平最高達到業餘5段,比如說 Zen , Crazy Stone ;第三階段以 深度學習 ( Deep Learning )以及 增強學習 ( Reinforcement Learning ,也稱強化學習)演算法為突破,並戰勝了人類職業九段棋手李世乭,這也就是Alpha Go的故事了。每每提到Alpha Go卓越的能力,往往歸咎於深度學習的強大,但實際上增強學習演算法也功不可沒。這二者的結合被稱之為 深度增強學習 ( Deep Reinforcement Learning
 ,DRL),最初見於DeepMind在Nature上發表的 Human-level control through deep reinforcement learning 。 本文試圖從深度增強學習的角度來探討通用人工智慧的實現,並簡要介紹了深度增強學習的基礎知識、常見演算法以及相關應用。

如何解決通用人工智慧的難點

三座大山

創造出像你我一樣具有自我意識和思考的人工智慧估計是人世間最迷人的問題之一了吧,新的存在總是想窺探造物主的祕密。同 P=NP 問題一樣,驗證一個存在是否具有自我意識的難度(見圖靈測試 以及 

中文房間問題 ) 同創造一個具有自我意識的存在的難度究竟關係如何,恐怕可以看做是判斷自我意識是否能湧現的關鍵了吧。本文不講那麼上層次的人工智慧,先來談談 通用人工智慧 。按照維基百科的解釋,

強人工智慧也指通用人工智慧(artificial general intelligence,AGI),或具備執行一般智慧行為的能力。強人工智慧通常把人工智慧和意識、感性、知識和自覺等人類的特徵互相連結。

本文所指的通用人工智慧,便是可以處理通用任務的人工智慧。 具體而言,我認為通用人工智慧應包括以下三大特點或者說難點:

  • 通用任務:既能唱歌繪畫、又能下棋寫詩,最重要的是要儘量減少對 領域知識 ( Domain Knowledge )的依賴。
  • 學習能力:無論是通過邏輯推理的 演繹法 來學習,或者是基於經驗和記憶的 歸納法 來學習,都要通過學習來提高處理通用任務的適用性。
  • 自省能力:也可以說是關於學習的學習,即 元認知 ,通過自省來糾偏行為。就像泰勒展開一樣,我們大可以用低階導數來逼近函式值,而無需考慮元認知的元認知這類高階導數。

解決之道

David Silver(Alpha Go的第一作者)曾在ICML2016的 Tutorial: Deep Reinforcement Learning 講到深度增強學習的前景

General Intelligence = Reinforcement Learning + Deep Learning = Deep Reinforcement Learning – David Silver

更進一步,『Reinforcement Learning defines the objective』(RL中有什麼樣的對映關係),『Deep Learning gives the mechanism』(DL如何學習給定的對映關係)。 我很同意深度增強學習便是解決通用人工智慧難點的核心。 首先關於通用任務,幾乎任何任務的解決都可以看做一個從形式編碼的輸入到決策分佈輸出的對映,而非線性的神經網路便是很好的 表徵 ( representation )學習工具。其次,學習能力主要可分為演繹法和歸納法。增強學習就像是基於獎賞的演繹法,給定外界環境和相應的獎賞函式,我們最終產生合法的決策出來。深度學習就像是基於經驗以及記憶的歸納法,給定輸入輸出,然後通過神經網路來學習表徵。最後關於自省能力,這也是人工智慧可以產生自我意識、並獨立於人類存在的關鍵。自省從某種程度可以從增強學習來習得,通過不斷試錯以及獎賞,『增強/強化』自我的決策。但這種自省又受限於其存在的世界觀,就像二維線段只能盲人摸象般地觀測到三維球體,而三維球體卻可以完整地觀測二維線段。但總之,只要定義好了世界以及獎賞,我認為相應的自省能力就是在給定環境下不斷優化自己的學習能力(即一階導數大於零)。

什麼是深度增強學習

深度學習

深度學習(deep learning)是機器學習拉出的分支,它試圖使用包含複雜結構或由多重非線性變換構成的多個處理層對資料進行高層抽象的演算法。 – 維基百科

根據維基百科的解釋,深度學習是一種利用多層非線性變換處理網路結構來進行表徵學習的通用框架。得益於計算機效能的提升,深度學習重新對人工神經網路方法進行品牌重塑。其核心解決問題是,如何用盡可能少的領域知識,給定輸入 和輸出 ,來學習從輸入到輸出的 對映 ,其中 是需要優化的引數, 在深度學習裡由多層非線性網路結構進行表示(不同機器學習方法會有不同的刻畫,比如隨機森林、支援向量機等等),常見的架構方式包括深度神經網路(Deep Neural Networks),深度信念網路(Deep Belief Networks)、卷積神經網路(Convolutional Neural Networks)、遞迴神經網路(Recurrent/Recursice Neural Network)等等。下圖直觀的給出了這種逐層巢狀的網路結構,

(點選放大影象)

具體而言,對映學習的過程是尋找最優的引數來最小化 損失函式 。這個損失函式衡量了真實和預測輸出值之間的差異,常見的比如說對數損失函式、平方損失函式、指數損失函式、Hinge損失函式、各類Norm的損失函式等等 [2] 。 同時為了提高模型的泛化能力,往往需要對損失函式進行正則化 ( regularization )處理。一般需要儘量把損失函式轉化為凸函式,如果函式不夠光滑的話可以利用 Moreau-Yoshida regularization 進行處理以方便梯度的計算,最終利用 梯度下降法來進行優化而得到 ,然後就可以利用 來進行預測了。下圖展示了神經網路的一種架構,以及各個隱含層所學習到的表徵,可以看到不同隱含層有不同層次的抽象學習。比如說,有的負責顏色,有的負責形狀,有的負責部件等等。

增強學習

強化/增強學習是機器學習中的一個領域,強調如何基於環境而行動,以取得最大化的預期利益。其靈感來源於心理學中的行為主義理論,即有機體如何在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。這個方法具有普適性,因此在其他許多領域都有研究,例如博弈論、控制論、運籌學、資訊理論、模擬優化方法、多主體系統學習、群體智慧、統計學以及遺傳演算法。 –維基百科

簡而言之,增強學習是一種基於環境反饋而做決策的通用框架。具體到機器學習領域,很多人往往知道 監督式學習 和 非監督式學習 (甚至半監督式學習),但卻不知道第三類機器學習方法,即增強學習。 因為增強學習強調與環境的互動,我認為是離普遍意義上的人工智慧更接近的一個領域。 這裡『增強』或者『強化』的意思是,根據不斷試錯而得到的獎懲來不斷增強對趨利決策的信念。David Silver下面這張圖很好的總結了增強學習的研究主體,即 Agent 、 Environment 以及 State 。

首先在時刻, Agent依據當前的狀態以及歷史資訊來決定下一輪的決策( action ) 。然後給定當前的狀態 以及 Agent的決策 ,Environment決定下一輪 的狀態 、給Agent的報酬( reward) 、以及它可觀測到的其他資訊 。最後,迴圈往復直到任務完成。不同於Planning(規劃)問題,Learning(學習)問題一開始並不知道Environment的全部情況,因此需要逐步試錯學習環境以及調整自身決策。 關於獎賞的機制這裡有一個假設,那就是假定所有的目標都可以被刻畫為期望累積收益的最大化。 從上面的描述可以看到關於Agent,有三個很關鍵的組成要素,

  • Policy function (策略函式):從狀態到決策的對映
    • Deterministic policy:
    • Stochastic policy:
  • Value function (價值函式):從狀態以及決策到期望累積收益的對映
    • Bellman equation of Q-value function :
    • Bellman equation of Optimal value function :
  • Model function (環境函式):從狀態以及決策到環境決策的對映 [3]
    • Deterministic environment:
    • Stochastic environment:

通過折現因子 的引入,Q-value function一來可以轉化為貝爾曼方程並滿足無後效性以及最優子結構的特徵;並且多期的折現又比單純的one-step lookahead貪婪策略更加具有遠見。 總而言之,求解增強學習問題的核心實際上在於價值函式的貝爾曼方程,這也是動態規劃裡標準的狀態轉移方程,即定義好邊界以及該方程後,就可以通過倒推法或者帶記憶的遞迴予以解決。 不過增強學習也可以通過直接搜尋最優策略或者學習環境的獎懲套路來解決。 實際上,這三個要素正是強化學習同深度學習結合的關鍵。 正如David Silver所說 [4] ,

Reinforcement Learning defines the objective. Deep Learning gives the mechanism. – David Silver

二者的融合

對於複雜的任務以及環境而言,Q-value function實際上很難窮舉的完的(針對每一個狀態和決策都要給一個累積期望收益值),因此一般需要通過歷史資訊來估計這一函式。同樣的,對Policy function和Model function也有類似的情況。 所以在給定增強學習三大求解目標(Policy-based, Value-based, Model-based)之後,我們便可以利用深度學習來利用歷史輸入輸出來估計這三大目標函式。

怎麼利用深度增強學習解決問題

正如上文的分析,David Silver將深度增強學習演算法分為如下三大類 [5] 。 下文將先從增強學習的角度分析如何做決策,然後從深度學習的角度來分析如何學習相應的策略函式、估值函式以及環境函式。

Policy-based DRL

下圖展示了利用 Policy Iteration Algorithm 來解決增強學習問題的思路。即給定任意初始策略 ,然後利用估值函式 對其評價,基於該估值函式對策略進一步優化得到 。迴圈這一過程,直至策略達到最優而不能進一步改善。

至於在深度學習方面,首先對policy function進行引數化 ,其中 為神經網路的引數。其次,引數化後的累積期望收益函式為 。然後,我們就可以得到 策略梯度 (Policy Gradients),在隨機性策略函式下為 ,而在確定性策略函式下為 。最後,便可以利用梯度下降演算法來尋找最優的神經網路引數 [6] 。

Value-based DRL

下圖是解決增強學習問題的 Value Iteration Algorithm 的虛擬碼。即給定任意初始估值函式 ,利用貝爾曼方程遞推得逼近真實的估值函式。

至於深度學習方面,類似的,先對value function進行引數化 ,那我們的目的就是找 。然後,就是優化損失函式 [7] 。David Silver在這裡提到如果樣本之間存在相關性或者收益函式非平穩,容易導致價值函式的不收斂,因此需要一些機制來予以解決。

Model-based DRL

關於Model-based DRL,David Silver講的比較少,主要舉了Alpha Go的例子,即我們完美知道環境的資訊(走子規則、勝負規則等等)。大致意思還是利用神經網路來代替真實的環境函式,也就是讓Agent有能力預測環境下一期的狀態以及收益等等,基於此來優化Agent的決策過程。下圖是網上 [8] 找到的 Model Iteration Algorithm 的虛擬碼,基本就是通過對狀態轉移函式以及獎懲函式的搜尋,來估計價值函式。

深度增強學習有哪些用途

可以看到凡是任務導向型,並且目標可以被獎懲函式刻畫的,均可以利用深度增強學習來解決,所以其應用範圍還是蠻廣的。以下舉了深度增強學習的若干應用,視訊均來自Youtube,因此需要科學上網。

遊戲策略

機器人控制

無人駕駛

探索環境

學會走路

開源測試開發平臺

結語

如果說達爾文的進化論是人類關於自身起源的一次衝擊,那麼通用型人工智慧的誕生便是對人類未來的另一次衝擊。在Alpha Go之前,人們認為人工智慧戰勝人類圍棋高手大概還需要十多年的樣子,然而技術的發展速度實在是不可想想。讓我們擴大時間的尺度,想想十年前、百年前、千年前中國的樣子,在看看我們現在的生活,不能說是天翻地覆,但顯然得益於技術的發展,我們的生活有了更多的便捷。 也不禁暢想未來,說不定下個技術引爆點沒有想象中的那麼遠,或許明年或許明天。 所以,對於大多數人而言,還是有必要提前接觸這些前沿的領域,一來不至於自己到了未來成為新『文盲』,二來也不會淪落到被高新技術革了命。

延伸閱讀

作者介紹

劉威志新加坡國立大學工業與系統工程系在讀博士,南京大學工業工程與金融工程雙學位。曾獲得2013年美國大學生數學建模競賽Outstanding Winner以及國際運籌學與管理科學學會(INFORMS)的獎勵。目前主要的研究方向是如何利用高效的模擬/取樣/實驗來解決隨機優化問題。我的個人興趣還包括人工智慧、演算法與資料結構以及量化交易。歡迎訪問我的個人網站,greenwicher.com,希望能與志同道合的小夥伴一起合作。

  1. 詳見知乎Live: 深入淺出說圍棋人工智慧
  2. 各類損失函式的定義及應用具體
  3. 在David Silver的Tutorial裡並沒有詳細講Model函式的刻畫,這裡的對映僅僅是我自己的理解,即通過model來作為刻畫環境的媒
  4. 詳見 http://icml.cc/2016/tutorials/deep_rl_tutorial.pdf
  5. 詳見 http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/intro_RL.pdf
  6. 這個大概就是Deep Policy Networks(DPN)的大致思路
  7. 這個大概就是Deep Q-Networks(DQN)的大致思路
  8. 詳見 http://mlg.eng.cam.ac.uk/mlss09/mlss_slides/Littman_1.pdf