深度学习(四十二)——深度强化学习(5)PPO, IMPALA, Hierarchical RL, OpenAI
PPO(Proximal Policy Optimization)
PPO是2017年由OpenAI提出的一種基于隨機策略的DRL算法,也是當(dāng)前OpenAI的默認(rèn)算法。
PPO是一種Actor-Critic算法。它的主要改進在它的Actor部分。
我們知道,Policy Gradient算法的訓(xùn)練過程中,始終存在著new Policy和old Policy這樣一對矛盾。
一方面,我們需要new Policy和old Policy有一定的差異,防止模型收斂到局部最優(yōu)。
另一方面,兩者的差異又不能太大,否則,模型的訓(xùn)練將無法收斂。
那么,如何衡量new Policy和old Policy的差異程度呢?
PPO的答案是:我們可以用兩種Policy得到的動作的概率分布的KL散度,來描述這種差異。
具體的做法是在J(θ)J(\theta)J(θ)上添加一個KL懲罰項:
JPPOθk(θ)=Jθk(θ)?βKL(θ,θk)J^{\theta^k}_{PPO}(\theta)=J^{\theta^k}(\theta)-\beta KL(\theta, \theta^k)JPPOθk?(θ)=Jθk(θ)?βKL(θ,θk)
這里的懲罰系數(shù)β\betaβ可以是定值,也可以是一個自適應(yīng)的值。例如,我們可以在KL值小于最小閾值時,減小β\betaβ,在KL值大于最大閾值時,增大β\betaβ。
除了KL懲罰項之外,還可以使用clip來限制Gradient的大小,這就是PPO2的做法。
和A3C類似,PPO也有一個分布式版本,叫做DPPO(Distributed Proximal Policy Optimization)。
參考:
https://www.jianshu.com/p/f4d383b0bd4c
TRPO與PPO實現(xiàn)
https://bluefisher.github.io/2018/07/03/Proximal-Policy-Optimization-Algorithms/
Proximal Policy Optimization Algorithms
https://www.jianshu.com/p/9f113adc0c50
Proximal Policy Optimization(PPO)算法原理及實現(xiàn)!
https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/6-4-DPPO/
Distributed Proximal Policy Optimization(DPPO)
IMPALA
論文:
《IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures》
代碼:
https://github.com/deepmind/lab/tree/master/game_scripts/levels/contributed/dmlab30
IMPALA是DeepMind于2018年提出的。
IMPALA的靈感來自于熱門的A3C架構(gòu)(上圖左),后者使用多個分布式actor來學(xué)習(xí)agent的參數(shù)。在類似這樣的模型中,每個actor都使用策略參數(shù)的一個副本,在環(huán)境中操作。actor會周期性地暫停探索,將它們已經(jīng)計算得出的梯度信息分享至中央?yún)?shù)服務(wù)器,而后者會對此進行更新。
與此不同,IMPALA(上圖中)中的actor不會被用來計算梯度信息。它們只是收集經(jīng)驗,并將這些經(jīng)驗傳遞至位于中心的learner。learner會計算梯度。因此在這樣的模型中,actor和learner是完全獨立的。
為了利用當(dāng)代計算系統(tǒng)的規(guī)模優(yōu)勢,IMPALA在配置中可支持單個learner機器,也可支持多個相互之間同步的learner機器(上圖右)。
由于actor只用于環(huán)境采樣,而這個任務(wù)通常是一個仿真環(huán)境(例如游戲模擬器),因此它和learner在計算側(cè)重點上有很大差異(例如在游戲領(lǐng)域,actor更側(cè)重于仿真、渲染。),所以actor和learner的軟硬件可以是異構(gòu)的。
其次,由于Actor無須計算梯度,因此就可以一直采樣,而無須等待策略的更新,這也是它和Batched A2C的最大區(qū)別。
上圖展示了這種差異,A2C采樣了一個Batch之后,所有的actor都要停下來計算梯度,而IMPALA中的actor可以一直采樣,從而大大提高了采樣效率。
上圖中的Batched A2C(sync step)和Batched A2C(sync traj)的區(qū)別在于:前者每次采樣之后都要同步,這對于采樣時間差異較大的例子,顯然效率是很低下的。而后者是采樣一批之后,再同步。
不過這種操作和學(xué)習(xí)的解耦也導(dǎo)致actor的策略落后于learner。為了彌補這樣的差距,IMPALA還引入了V-trace技術(shù)。
參考:
https://zhuanlan.zhihu.com/p/56043646
AlphaStar之IMPALA
https://mp.weixin.qq.com/s/1zJyw67B6DqsHEJ3avbsfQ
DeepMind推出分布式深度強化學(xué)習(xí)架構(gòu)IMPALA,讓一個Agent學(xué)會多種技能
reward modeling
訓(xùn)練一個獎勵模型,其中包含來自用戶的反饋,從而捕捉他們的意圖。與此同時,我們通過強化學(xué)習(xí)訓(xùn)練一個策略,使獎勵模型的獎勵最大化。換句話說,我們把學(xué)習(xí)做什么(獎勵模型)和學(xué)習(xí)怎么做(策略)區(qū)分開來。
參考:
https://mp.weixin.qq.com/s/4yGQtHtMqWlaB7MAsr8T_g
DeepMind重磅論文:通過獎勵模型,讓AI按照人類意圖行事
https://mp.weixin.qq.com/s/TIWnnCmVZnFQNH9Fig5aTw
DeepMind發(fā)布新獎勵機制:讓智能體不再“碰瓷”
Hierarchical RL
之前已經(jīng)提到,在DeepMind測試的40多款游戲中,有那么幾款游戲無論怎么訓(xùn)練,結(jié)果都是0,也就是DQN完全無效。上面就是其中最知名的代表游戲《Montezuma’s Revenge》。這是一個解謎游戲,比如圖中要拿到鑰匙,然后去開門。這對我們而言是通過先驗知識得到的。但是很難想象計算機如何僅僅通過圖像感知這些內(nèi)容。感知不到,那么這種游戲也就無從解決。
論文:
《Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation》
該論文的主要思路就是,弄一個兩個層級的神經(jīng)網(wǎng)絡(luò),頂層用于決策,確定下一步的目標(biāo),底層用于具體行為。
這里的內(nèi)在目標(biāo)是人工確定的,因此智能程度不高,但是比較實用。
其他算法:
FuN (FeUdal Networks for Hierarchical Reinforcement Learning)
HIRO (Data Efficient Hierarchical Reinforcement Learning)
HAC (Learning Multi-Level Hierarchies with Hindsight)
參考:
https://zhuanlan.zhihu.com/p/78098982
Hierarchical IL/RL(ICML 2018)
https://blog.csdn.net/zhkmxx930xperia/article/details/87742722
Integrating Temporal Abstraction and Intrinsic Motivation
https://blog.csdn.net/songrotek/article/details/51384752
DRL前沿之:Hierarchical Deep Reinforcement Learning
https://mp.weixin.qq.com/s/IYyGgnoXZm6YfamLejqoNQ
深度強化學(xué)習(xí)試金石:DeepMind和OpenAI攻克蒙特祖瑪復(fù)仇的真正意義
https://mp.weixin.qq.com/s/iBWjobr9srhB3MTiE_Wwmg
史上最強Atari游戲通關(guān)算法:蒙特祖瑪獲分超過200萬!
OpenAI
OpenAI,由諸多硅谷大亨(Elon Musk等)聯(lián)合建立的人工智能非營利組織。
官網(wǎng):
https://openai.com/
github:
https://github.com/openai
Baselines
若干經(jīng)典RL算法的實現(xiàn),包括A2C、DQN等。
代碼:
https://github.com/openai/baselines
Gym
Openai gym是一個用于開發(fā)和比較強化學(xué)習(xí)(reinforcement learning,RL)算法的工具包,與其他的數(shù)值計算庫兼容,如tensorflow或者theano庫。現(xiàn)在主要支持的是python語言,以后將支持其他語言。
官網(wǎng):
https://gym.openai.com/
sudo apt install libffi-dev swig git clone https://github.com/openai/gym cd gym pip install -e . # minimal install pip install -e .[all] # all install這里選擇minimal install就可以了,all install需要安裝MuJoCo,而后者是收費軟件。
和Gym配套的還有一個算法庫:
https://github.com/openai/baselines
當(dāng)然,看名字也知道這只是一個簡單的算法庫。
參考:
http://tech.163.com/16/0510/09/BMMOPSCR00094OE0.html
馬斯克的AI野心——OpenAI Gym系統(tǒng)深度解析
https://mp.weixin.qq.com/s/KK1gwDW2EyptZOiuFjyAlw
OpenAI發(fā)布強化學(xué)習(xí)環(huán)境Gym Retro:支持千種游戲
https://blog.csdn.net/jinzhuojun/article/details/77144590
常用增強學(xué)習(xí)實驗環(huán)境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
https://blog.csdn.net/jinzhuojun/article/details/78508203
常用增強學(xué)習(xí)實驗環(huán)境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等)
https://mp.weixin.qq.com/s/0oVG7zMi08dzMQrk43T3mw
像訓(xùn)練Dota2一樣訓(xùn)練真實機器人?Gibson Environment環(huán)境了解一下
https://mp.weixin.qq.com/s/_A0q8DFAsIclaofVgZfjMA
定制股票交易OpenAI Gym強化學(xué)習(xí)環(huán)境
https://blog.csdn.net/gsww404/article/details/80627892
OpenAI-baselines的使用方法
RND
OpenAI最近開發(fā)了RND(Random Network Distillation),一種基于預(yù)測的強化學(xué)習(xí)算法,用于鼓勵強化學(xué)習(xí)代理通過好奇心來探索他們所處環(huán)境。在游戲任務(wù)Montezuma’s Revenge上首次超過人類的平均表現(xiàn)。
blog:
https://blog.openai.com/reinforcement-learning-with-prediction-based-rewards/
Reinforcement Learning with Prediction-Based Rewards
代碼:
https://github.com/openai/random-network-distillation
總結(jié)
以上是生活随笔為你收集整理的深度学习(四十二)——深度强化学习(5)PPO, IMPALA, Hierarchical RL, OpenAI的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(四十)——深度强化学习(3)D
- 下一篇: 深度学习(四十三)——深度强化学习(6)