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