深度学习(三十九)——深度强化学习(2)概述, Deep Q-learning Network(1)
概述
上圖是深度強化學習的脈絡圖,參考文獻中還有該領域的關鍵論文列表。
原圖地址:
http://louiskirsch.com/maps/reinforcement-learning
參考:
https://mp.weixin.qq.com/s/781fVvKr4yuq4q2GI1Y1gA
從Zero到Hero,OpenAI重磅發布深度強化學習資源
https://spinningup.openai.com/en/latest/spinningup/keypapers.html
深度強化學習關鍵論文列表
DeepMind vs OpenAI
DeepMind和OpenAI算是DRL的兩大重鎮。
DeepMind主要是David Silver和他導師Richard Sutton一脈,最初來源于control theory,代表作是Deep Q-learning, DDPG。
OpenAI背后的派別是Berkeley幫,主要工作是圍繞Pieter Abbeel以及他的兩位superstar博士生Sergey Levine和John Schulman,最初來源于Robotics,代表作是TRPO以及后來的PPO。
某牛的點評:
現在的研究發現policy gradient的方法效果比Q-learning這種單純基于value的方法好,所以選擇policy gradient,事實上是把兩者結合起來的actor-critic效果最好!只是說actor-critic的關鍵在于policy gradient。
然后呢,說說目前DeepMind和OpenAI的研究情況,DeepMind在Q-Learning上造詣太深,OpenAI的Pieter Abbeel派很難從中弄成什么新的東西,因此從改進policy gradient的方法入手,得到TRPO+GAE等方法。(然后DeepMind基本不鳥,論文根本不比較他們的方法,而OpenAI這邊到現在也不敢和A3C比較,估計必敗)
現在OpenAI又因為有一些Deep Generative Model的大神,又把這方面也結合進來了。OpenAI這邊的優勢在于機器人控制上之前做的多,把傳統控制和深度學習結合的方法也能搞出一些東西比如GPS,其他的團隊比如Satinder Singh, Honglak Lee那就更只能從邊邊上去做了,比如做了Atari視頻預測,給網絡加上memory network。
最后還是從方法上說一下,Policy Gradient顯然比基于Value的方法更直接,輸入感知,輸出控制。按道理來說是更符合人類行為的方法。特別在控制上。但是在一些離散的決策上,人類也是評估各方好壞value來做選擇的,所以這一塊Q-Learning應該會做的更好。事實上,DeepMind也將DQN的Gorila分布式系統用在了Google的推薦系統上。還有,就是接下來機器人控制將會是深度學習要占領的一塊地盤,在連續控制上,基于value的方法本身就不好做,連續DQN比如那個NAF方法使用了很多小技巧。而基于Policy的方法則很直接。
參考:
https://www.zhihu.com/question/316626294
請問DeepMind和OpenAI身后的兩大RL流派有什么具體的區別?
https://www.zhihu.com/question/49787932
RL兩大類算法的本質區別?(Policy Gradient和Q-Learning)
參考
https://www.nervanasys.com/demystifying-deep-reinforcement-learning/
深度強化學習揭秘
https://zhuanlan.zhihu.com/p/24446336
深度強化學習Deep Reinforcement Learning學習整理
https://mp.weixin.qq.com/s/K82PlSZ5TDWHJzlEJrjGlg
深度學習與強化學習
http://mp.weixin.qq.com/s/lLPRwInF5qaw7ewYHOpPyw
深度強化學習資料
http://lamda.nju.edu.cn/yangjw/project/drlintro.html
深度強化學習初探
https://zhuanlan.zhihu.com/p/21498750
深度強化學習導引
https://mp.weixin.qq.com/s/RnUWHa6QzgJbE_XqLeAQmg
深度強化學習,決策與控制
https://mp.weixin.qq.com/s/SckTPgEw7KWmfKXWriNIRg
淺談強化學習的方法及學習路線
https://mp.weixin.qq.com/s/-JHHOQPB6pKVuge64NkMuQ
DeepMind主攻的深度強化學習3大核心算法及7大挑戰
https://mp.weixin.qq.com/s/2SOHQElaYbplse3QqG9tYw
強化學習介紹
https://mp.weixin.qq.com/s/R30quVGK0TgjerLpiIK9eg
從算法到訓練,綜述強化學習實現技巧與調試經驗
https://www.zhihu.com/question/49230922
強化學習(reinforcement learning)有什么好的開源項目、網站、文章推薦一下?
https://zhuanlan.zhihu.com/p/75913329
深度強化學習簡介
DRL和Robotics
雖然,DRL似乎生來就是為了Robotics,然而現實中的無人系統,目前基本還是使用傳統的控制方法。
例如:
https://www.zhihu.com/question/50050401
如何看待百度無人車, 三千多個場景,一萬多個if?
不止國內,就連業界標桿Boston Dynamics也是這樣:
https://www.zhihu.com/question/29871410
波士頓動力Boston Dynamics的大狗Big Dog用的了哪些控制、估計等算法?
直到最近才終于有了改觀:
https://mp.weixin.qq.com/s/xSODAGf3QcJ3A9oq6xP11A
真的超越了波士頓動力!深度強化學習打造的ANYmal登上Science子刊
此外,還有一些論文:
《Learning to Drive in a Day》
參考:
https://zhuanlan.zhihu.com/p/59197798
那些個端到端的自動駕駛研發系統
https://mp.weixin.qq.com/s/yU-6r-7l50y5msw8gUWnUQ
美團技術部解析:無人車端到端駕駛模型概述
Deep Q-learning Network
基本思想
Deep Q-learning Network是DL在RL領域的開山之作。它的思想主要來自于Deepmind的兩篇論文:
《Playing Atari with Deep Reinforcement Learning》
《Human-level control through deep reinforcement learning》
Deepmind是當今DL領域最前沿的科研機構,尤其在RL領域更是領先同行一大截,是當之無愧的RL王者。
上圖是DQN的網絡結構圖。由于這里的任務是訓練Atari游戲的AI,因此網絡的輸入實際上就是游戲的畫面。而理解游戲畫面,就需要一定的CNN結構。所以DQN的結構實際上和一般的CNN是一致的,其關鍵要害在于loss函數的設定。
由《機器學習(三十三)》中的“價值函數的近似表示”可知:Q(s,a)≈f(s,a,w)Q(s,a)\approx f(s,a,w)Q(s,a)≈f(s,a,w)
老套路,我們可以用一個神經網絡來擬合f函數,這也就是所謂的Q網絡(Q-Network)。
對于Atari游戲而言,這是一個高維狀態輸入(原始圖像),低維動作輸出(只有幾個離散的動作,比如上下左右)。那么怎么來表示這個函數f呢?
Deepmind采取的方法是:只把狀態s作為輸入,但是輸出的時候,會輸出每一個動作的Q值,也就是輸出一個向量[Q(s,a1),Q(s,a2),…,Q(s,an)][Q(s,a_1),Q(s,a_2),\dots,Q(s,a_n)][Q(s,a1?),Q(s,a2?),…,Q(s,an?)]。這樣我們只要輸入狀態s,就可以得到所有的動作Q值。
在《機器學習(二十七)》中,我們指出Q-Learning算法的transition rule為:
Q(s,a)=R(s,a)+γmax?(Q(s~,a~))Q(s,a)=R(s,a)+\gamma \max(Q(\tilde s,\tilde a))Q(s,a)=R(s,a)+γmax(Q(s~,a~))
這時就存在兩個Q值了:
-
根據當前的<s,a>,由Q網絡計算得到的Q值,被稱為current Q-value。
-
使用transition rule,也由Q網絡計算得到的Q值,被稱為target Q-value。
顯然從Q函數的定義來看,這兩者是等價的。因此,我們的目標就是使這兩者盡可能的一致,即:
L=E[(r+γmax?a′Q(s′,a′,w)?Q(s,a,w))2]L=E[(\color{blue}{r+\gamma \max_{a'}Q(s',a',w)}-Q(s,a,w))^2]L=E[(r+γa′max?Q(s′,a′,w)?Q(s,a,w))2]
上式中藍色的部分即為target Q-value。
DQN雖然是model-free的,但是也有難點,那就是Reward的定義。好在在Atari游戲的例子里,這個問題比較簡單,直接采用游戲得分即可。但得分獎勵過于膚淺,在動作類游戲中或許沒啥問題,但對于《Montezuma’s Revenge》這樣的解謎游戲,就不太好使了。
此外,Deepmind在Atari游戲中,采用了連續4幀圖像作為DQN的輸入。這樣的行為也被稱作狀態的表示。狀態的表示會嚴重影響學習的效果,然而目前來說,它還是一門藝術,而非科學。例如,AlphaGo采用了過去八手棋局作為狀態的表示。
總結
以上是生活随笔為你收集整理的深度学习(三十九)——深度强化学习(2)概述, Deep Q-learning Network(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习(三十八)——博弈论(1)
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习