文章目录
-
- [DQN] Playing Atari with Deep Reinforcement Learning[1]
- [DDPG] Continuous Control with Deep Reinforcement Learning[2]
- [TRPO] Trust Region Policy Optimization[3]
- [Prioritized Experience replay] Prioritized Experience Replay
- [A2C/A3C]Asynchronous Methods for Deep Reinforcement Learning[4]
- [ACER] Sample efficient actor critic with experience replay
- [PPO]Proximal Policy Optimization Algorithms
- 算法描述
- [SAC] Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor[5]
- [TD3] Addressing Function Approximation Error in Actor-Critic Methods[6]
- 算法描述
强化学习自从15年开始DQN的成功应用得到了雨后春笋般成长,获得学术界极高的关注。在此之间,强化学习主要以model based模型为主,其特点为问题针对性强,需要大量的人为假设,且对于不同问题需要特定的模型套入。而现在开始model free的模型有极大的通用性,一个算法吃遍天下所有任务,因此也提高了之间的可比较性,也促成了学术界的井喷。主流的两个思路为Q-learning和Policy gradient,综述将从最经典的几个算法原论文出发,相互比较并总结心得。
[DQN] Playing Atari with Deep Reinforcement Learning[1]
Off-policy,Discrete action space,model free,2015
主要思路:
如果我们能够穷尽表征state,action和reward的联合分布,那么一切问题迎刃而解。困难出现于state过于复杂和高维,穷举变得不可实现。因此采取一个reward-to-go (Q function或者Value function)的思维来解决状态表征。
结合之前TD-gammon的算法和CNN,并同时利用了on-line训练,即并非等到一个回合完全结束再更新参数,产生了Q-learning。使用一个Replay buffer储存之前的交互样本,随机采样历史数据进行参数更新,达到增强样本效率的结果,并避免近期的采样数据关联性过高的问题。
算法描述:
这个表达式由Bellman表征得来,如果Q网络是完美的话,上式应该为0。即r+γ max(a’ )Q(s’,a’ )=Q(s,a) 。这里的s‘代表下一个时间的状态。问题就出现在θ并不是完美的(甚至可能根本没有解),我们通过online的方法,逐步更新Q函数的参数,以达到网络对整体环境的认知。
算法关键点描述:
- ϵ-greedy,保留ϵ概率选择一个完全随机的action选择,避免agent过度陷入“自我沉醉”
- 因为用1-ϵ概率选择Q-value(神经网络构成的函数拟合)最大值对应的action,因此在选择action的时候需要尝试所有可能的action,带入Q网络,造成算法只能在discrete的action space中使用
- 针对上一个问题,本文的实际操作方法是使用一个multi output的Q网络,输出维度和action维度相同,这样就可以保证一次输入state,直接得到所有action的Q value。避免了对于每个action都forward pass一次。
实验结果
实验于Atari2600平台进行
结论及评价
本文作为深度强化学习的开山鼻祖,引用量非凡,在Atari游戏中表现出不俗的战绩(在测试中有六个超越过去的算法,有三个超过了人类水平)
对于γ这个discount factor的使用,主要有两点:1. 为了让agent相对更贪心一点,对眼前的回报予以更大的权重,稳定policy。2. 对于一个reward是bounded情况,加一个小于一的factor可以保证未来的reward累积和收敛,从而避免Q value的发散。
文中提及使用experience replay,过去的经验依旧可以拿出来更新当前网络,(不至于跑过的地方就只用一次,用完便忘记)从而可以提高样本效率;同时作者提到采取随机采样可以避免过分依赖最近的样本,从而避免state,action的高correlation。而后期实验证明,往往通过一个prioritize replay buffer避免久远的概率分布不能更好的表征当前状态,效果会更好些
实验中,开始真正训练前,采用完全随机的action与环境交互几步有利于稳定Q value的估值。
探索率ϵ一般要随着训练逐步减小
[Double DQN] Deep Reinforcement Learning with Double Q-learning
由于嫌弃DQN对于Q值得高估,因此Double DQN采用了一种异步更新Q网络的做法:即,对于选择动作和对拟合目标使用的Q网络使用的参数并不是同一堆参数,而是不同时刻的参数
以下是2015年版本的DQN(不是DDQN)
而DDQN得唯一改变就是,我们在选取a‘的时候,先选出来,然后再用target network来做evaluation
[DDPG] Continuous Control with Deep Reinforcement Learning[2]
Model free, off policy, continuous action, 2015
主要思路
针对之前的DQN算法,由于需要在运动空间中选取最大的Q值,只能够在离散的运动空间中使用,若强行使用到连续空间,如果自由度过大将无法高效应用。Actor Critic通常能够提高稳定性,因此采取了actor和critic两条路子来更新策略网络。文章基于Deterministic policy gradient (Silver 2014)提出了Deep DPG。
算法描述
算法详解:
Q,Q’和μ,μ’都是异策略更新的重点特征,事实上我们以一种一次变化τ的方式逐步更新μ’ 和 Q’。 μ和Q的更新是直接根据每一步更新的gradient直接作用于之前一步的网络参数上。
真正的Actor Policy在执行的时候是采取当前策略网络给出的预测值μ加上一个随机过程(Ornstein Uhlenbeck process基本可以认为是布朗运动的一种)与环境进行交互,即内循环的第一行:
从而避免exploration不足的问题(DQN采用ϵ- greedy)
实验结果
在Atari2600的比较中,DDPG基本完胜DQN,在样本效率上甚至达到了几乎20倍的效能。
结论及评价
- Off policy的可行性是将policy带入Q值后形成的bellman方程中后,基于MDP假设,发现最佳策略实际上可以与下一步action无关, 从而说明不需要于环境实时交互也可以得到最佳策略。
- Action repeat的使用,即一个动作做N遍,然后把所有过程图片抽出来喂给网络可以简化问题,加速了训练过程。
- 在机器学习中的优化问题,我们应假设batch之间是independent的,但是在RL种,这种independency是很勉强的,采取off policy的方式可以提供一个replay buffer降低batch之间的关联度,实现更好的监督学习(对于值函数的更新)。
- 使用batch normalization可以缓解不同的任务之间观测的scale不同的问题。
- 在之前的学术中证明在强化学习中,non-linear function approximators意味着不再有理论上的convergence保证,
- Target network tracker的思路大大增加了off policy的稳定性,即θ_Q’ =(1-τ) θ_Q’+θ_Q τ ,包括policy network也是采用了类似的更新策略。
- Q网络总是会高估回报值(Double Q给出的结论)
- 文章提到了Levine团队的GPS,简单阐述为1.将高位图片通过CNN压缩到二维(x,y),加上机器人自身关节的低维度的信息,放进FCN,2. 通过一个低维度的直接最优解。其实现原理大致是:1.对于特定轨迹进行局部的线性,全观测模型拟合;2. 使用最优控制器给出最优控制信号;3.使用监督学习训练一个神经网络控制
- 文章提到PILCO,通过高斯过程学习概率分布的模型,原论文值得一看。Model based的强化学习样本效率非常高,大约在真实的环境中,利用数据甚至在几个episode就能实现一个任务的学习,不过对于高纬度数据输入通常会失效。
- 文章非常谦虚地和各种算法进行讨论,承认了model free的不足,从整体的论证是非常严谨的,可以算得上一篇很好的文章