深度強化學習

Neil Zhu,簡書ID Not_GOD,University AI 創始人 & Chief Scientist,致力于推進世界人工智能化進程。制定并實施 UAI 中長期增長戰略和目標,帶領團隊快速成長為人工智能領域最專業的力量。
作為行業領導者,他和UAI一起在2014年創建了TASA(中國最早的人工智能社團), DL Center(深度學習知識中心全球價值網絡),AI growth(行業智庫培訓)等,為中國的人工智能人才建設輸送了大量的血液和養分。此外,他還參與或者舉辦過各類國際性的人工智能峰會和活動,產生了巨大的影響力,書寫了60萬字的人工智能精品技術內容,生產翻譯了全球第一本深度學習入門書《神經網絡與深度學習》,生產的內容被大量的專業垂直公眾號和媒體轉載與連載。曾經受邀為國內頂尖大學制定人工智能學習規劃和教授人工智能前沿課程,均受學生和老師好評。

David Silver,Google DeepMind
slide
lecture

強化學習觀點:人工智能=強化學習

強化學習是一種人工智能的通用框架:

  1. RL 是針對一個擁有行動能力的 agent 而言的
  2. 每個行動影響了 agent 的未來狀態
  3. 使用標量值回報信號來度量成功

一言以蔽之:選擇行動來最大化未來回報。我們最終的目標是尋求得到可以解決所有人類層級的任務的單一的 agent,這也是智能 agent 的本質。

agent 和環境

RL 結構
  • 在每個時間步 t,agent:
  • 接受狀態 st
  • 接受標量回報 rt
  • 執行行動 at
  • 環境:
  • 接受行動 at
  • 產生狀態 st
  • 產生標量回報 rt

強化學習的例子

這里給出一些強化學習適用的場景:

  1. 控制物理系統:行走、飛行、駕駛、游泳、……
  2. 與用戶進行交互:客戶維護 retain customers、個性化頻道 personalise channel、用戶體驗優化 optimise user experience、……
  3. 解決物流問題:規劃 scheduling、帶寬分配 bandwidth allocation、電梯控制、認知無線電 cognitive radio、電力優化 power optimisation、……
  4. 游戲:棋類、撲克、圍棋、Atari 游戲、……
  5. 學習序列化算法:注意力 attention、記憶 memory、條件計算 conditional computation、激活 activation、……

策略 policy 和估值 value 函數

  • 策略 π 是給定狀態下選擇行動的行為函數:
    a=π(s)
  • 估值函數 Qπ(s, a) 是從狀態 s 開始在策略 π 下采取行動 a 的期望全回報:
    Qπ(s, a) = E[rt+1+γrt+22rt+3+...|s, a]
    說白了,估值就是評估在狀態 s 時采取行動 a 的好壞。

強化學習的幾個方向

  • 基于策略的 RL
  • 直接搜索最優策略 π*
  • 目標就是得到最大未來回報的策略
  • 基于值的 RL
  • 估計最優值函數 Q*(s, a)
  • 在任何策略下可獲得的最大值
  • 基于模型的 RL
  • 構建一個環境的遷移模型
  • 使用該模型進行規劃(通過查找規則)

深度強化學習

  • 自然的,有這樣的一個問題,我們能不能將深度學習用在強化學習上?
  • 使用深層網絡來表示估值函數/策略/模型
  • 端對端的方式優化估值函數/策略/模型
  • 這樣就可以使用隨機梯度下降來實現函數的優化

貝爾曼 Bellman 方程

  • 估值函數可以遞歸展開:
    Qπ(s, a)
    = E[rt+1 + γrt+2 + γ2 rt+3 + ... | s, a]
    = Es' [r + γQπ(s', a') | s, a]
  • 最有值函數 Q*(s, a) 可以遞歸展開為:
    Q?(s, a) = Es'[r + γ maxa' Q?(s', a') | s, a]
  • 估值迭代算法可以解貝爾曼方程:
    Qi+1(s, a) = Es' [r + γ maxa' Qi(s', a') | s, a]

深度 Q-學習

  • 通過權重 w 的深層 Q-網絡來表示估值函數:Q(s, a, w) ≈ Qπ(s, a)
  • 定義 Q值的均方誤差 MSE 作為目標函數:
  • 目標 T=r + γ maxa'Q(s', a', w)
  • L(w) = E[(T-Q(s,a,w))2]
  • 所以得到下面的 Q-學習的梯度:
    ?L(w)/?w = E[(T-Q(s,a,w)) ?Q(s,a,w)/?w]
  • 使用 ?L(w)/?w 對目標函數使用 SGD 進行端對端優化

深度強化學習的穩定性問題

使用神經網絡進行簡易的 Q-學習會震蕩或者發散,原因如下:

  1. 數據是序列化的
  • 時間連續的樣本是相關的,不是獨立的分布
  1. Q-值微小的變動會劇烈地影響策略
  • 策略可能會震蕩
  • 數據分布會從一個極端搖擺到另一個極端
  1. 回報和 Q-值的值范圍未知
  • 簡易的 Q-學習的梯度在反向傳播的時候會非常不穩定

深度 Q-網絡 DQN

DQN 給出了基于值的深度強化學習一個穩定的解

  1. 使用經驗回放
  • 打破數據之間的關聯,將我們拉回獨立同分布的配置下
  • 從所有過去的策略中進行學習
  1. 固定目標 Q-網絡
  • 避免了震蕩
  • 將 Q-網絡和目標之間的關聯打破
  1. 剪切回報或者規范化網絡到一個可行的范圍內
  • 健壯的梯度

穩定深度強化學習 1:經驗回放

為了移除關聯,從 agent 自身的經驗中構建數據集合:

  • 根據 ???ε-貪婪策略選擇行動 at
  • 將遷移 (st, at, rt+1, st+1)存入經驗內存 D 中
  • 從 D 中采樣隨機 minibatch 的遷移 (s, a, r, s')
  • 優化Q-網絡和Q-學習之間的 MSE:
    L(w) = Es,a,r,s'~D?[(r + γ maxa'Q(s', a', w) ? Q(s, a, w))2]

穩定深度強化學習 2:固定目標 Q-網絡

為了避免震蕩,固定在 Q-學習目標中使用的參數

  • 使用老的固定的參數 w-計算 Q-學習目標:
    r + γ maxa'Q(s', a', w-)
  • 優化 Q-網絡和 Q-學習目標間的 MSE
    L(w) = Es,a,r,s'~D?[(r + γ maxa'Q(s', a', w-) ? Q(s, a, w))]
  • 周期性地更新固定參數:w- ← w

穩定深度強化學習 3:回報/值范圍

  • DQN 剪切回報在 [-1, +1] 范圍內
  • 保證 Q-值不會變得太大
  • 確保梯度有良好的條件 well-conditioned
  • 不能夠區分小的或者大的回報

使用強化學習來玩 Atari 游戲

這確實是一個很自然的應用。


Atari 游戲

DQN 用在 Atari 游戲中

  • 從像素 s 中端對端學習值 Q(s, a)
  • 輸入狀態 s 就是來自過去 4 幀的原始像素的棧
  • 輸出是對應于 18 個的手柄或者按鈕位置的 Q(s, a)
  • 回報則在那個步驟根據分值進行改變
Minh et al.

DQN 在 Atari 游戲中的結果

results

Demo 省略

DQN 起到多大作用

DQN improvements

規范化 DQN

  • 規范化 DQN 使用真實(非剪切)的回報信號
  • 網絡輸出一個在穩定范圍內的標量值,
    U(s, a,w) ∈ [?1, +1]
  • 輸出被重新規范值范圍并被轉化成 Q-值,
    Q(s, a,w, σ, π) = σU(s, a,w) + π
  • π, σ 會調整成確保 U(s, a,w) ∈ [?1, +1]
  • 網絡參數 w 被調整來確保 Q-值是一個常量
    σ1U(s, a,w1) + π1 = σ2U(s, a,w2) + π2

Demo 省略(規范化的 DQN 在 PacMan 中的表現)

Gorila(GOogle ReInforcement Learning Architecture)

Gorila 架構
  • 并行行動:產生新的交互
  • 分布式回放記憶:保存上面產生的交互
  • 并行學習:從回放的交互中進行梯度計算
  • 分布式神經網絡:用上面產生的梯度來更新網絡

穩定深度強化學習 4:并行更新

Vanilla DQN 在并行時表現得不穩定。我們使用下面的方式克服這個問題:

  • 丟棄陳舊的(stale)梯度
  • 丟棄利群點梯度 g > μ + kσ
  • AdaGrad 優化技術

Gorila 結果

使用 100 并行行動器和學習器

  • Gorila 顯著地超過了 Vanilla DQN 的性能:49 個 Atari 游戲中的 41 個游戲中
  • Gorila 達到了 2 倍與 Vanilla DQN 的分數:49 個 Atari 游戲中的 22 個游戲中
  • Gorila 達到同樣的性能卻比 Vanilla DQN 快 10 倍:49 個 Atari 游戲中的 38 個游戲中

Gorila DQN 在 Atari 中的結果:

Paste_Image.png

連續行動的確定性策略梯度

  • 使用權重為 u 的深度網絡 a = π(s, u) 表示確定性策略
  • 定義目標函數為全部折扣回報
    J(u) = E[r1 + γr2 + γ2 r3 + ...]
  • 端對端通過 SGD 來優化目標函數
    ?J(u)/?u = Es[(?Qπ(s, a)/?a) (?π(s, u)/?u)]
  • 在提高 Q 最大的方向更新策略
  • 即通過行動器 actor 來反向傳播評價(critic)

確定性 Actor-Critic 模型

使用兩個網絡:actor 和 critic

  • critic 通過 Q-學習來估計當前策略的值
    ?L(w)/?w = E[(??r + γQ(s', π(s'), w) ? Q(s, a,w)) ?Q(s, a,w)/?w]
  • actor 按照提高 Q 的方向更新策略
    ?J(u)/?u = Es[?Q(s, a, w)/?a ?π(s, u)/?u]

確定性深度 Actor-Critic

  • 簡易的 actor-critic 使用神經網絡會震蕩或者發散
  • DDAC 給出了一個穩定解決方案
  1. 對 actor 和 critic 都使用經驗回放
  2. 使用目標 Q-網絡來避免震蕩

?L(w)/?w = Es,a,r,s'~D [??(r + γQ(s', π(s'), w?) ? Q(s, a, w)) ?Q(s, a, w)/?w]
?J(u)/?u = Es,a,r,s'~D [?Q(s, a, w)/?a ?π(s, u)/?u]

DDAC 進行連續行動控制

  • 從原始像素 s 進行控制策略的端對端學習
  • 輸入狀態 s 是最近 4 個幀的原始像素的棧
  • 兩個分隔開的卷積網絡用于 Q 和 π
  • 物理行為在 MuJoCo 中模擬
DDAC 架構

??

DDAC demo 略

基于模型的強化學習

其目標是學習一個環境轉移模型:
p(r, s'| s, a)

使用轉移模型進行規劃

  • 例如,通過轉移模型來查找最優的行動
Model-Based RL

?

深度模型

  • 使用深度網絡來表示轉移模型 p(r, s'| s, a)
  • 定義目標函數衡量模型的好壞
  • 比如,重構下一狀態的比特數目 (Gregor et al.)
  • 通過 SGD 來優化目標函數

DARN Demo 略

基于模型的強化學習的挑戰

復合錯誤:

  • 轉移模型轉移路徑符合的錯誤
  • 長的狀態轉移路徑的結尾,回報可能完全錯誤
  • 基于模型的強化學習在 Atari 中失效

深度估值/策略網絡可以隱式地進行規劃

  • 網絡每層執行任意一步計算
  • n層網絡可以向前看 n 步
  • 到底是否需要轉移模型呢?

深度學習應用在圍棋中

Monte-Carlo 搜索

  • Monte-Carlo 搜索(MCTS)模擬未來的轉移路徑
  • 構建很大的擁有數百萬位置的查找搜素樹
  • 目前最好的 19 X 19 的圍棋程序就是使用 MCTS 技術 (Gelly et al.)

卷積網絡

  • 12-層卷積網絡用來訓練預測專家走法
  • 原始卷積網絡(只看一個位置,不含搜索)
  • 等價于擁有 105 位置的搜索樹 MoGo 的性能 (Maddison et al.)
Paste_Image.png

結論

  • 強化學習給出了一種通用的人工智能框架
  • 強化學習問題可以通過端對端深度學習技術來解決
  • 單一的 agent 現在已經能解決很多具有挑戰性的任務
  • 強化學習+深度學習=人工智能

問題?

“The only stupid question is the one you never ask.” - Richard Sutton

更多深度強化學習的資源

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容