本文为译文,感谢原作者Weng, Lilian无私的分享。文章原文地址为:https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html
摘要:在本文中,我们深入了解一下策略梯度算法、工作原理以及一些近年来新提出的改进算法,包含:朴素(vanilla)策略梯度、actor-critic、off-policy 策略梯度、A3C、A2C、DPG、DDPG、D4PG、MADDPG、TRPO、PPO、ACER、ACTKR、SAC、TD3以及SVPG。
什么是策略梯度
策略梯度是解决强化学习问题的一类方法。如果您对强化学习领域还不了解,可以先阅读这一篇博文《深入了解深度学习:核心概念》来了解一下基本问题定义以及一些核心概念。
符号
下表列出了一些符号说明,用于帮助更好地理解本文。
符号 | 含义 |
---|---|
状态 | |
行为、动作 (actions) | |
奖励 (rewards) | |
一条样本采样/运行路径上时刻 | |
衰减系数;用于对未来不确定性的惩罚; | |
收益;或带衰减的收益: | |
在状态 | |
随机策略(执行代理(agent)的行为策略); | |
确定性策略;我们也可以使用 | |
状态价值函数、用于评估状态 | |
在服从策略 | |
行为价值函数,和 | |
和 | |
优势函数 |
策略梯度
强化学习的目标是找到一个可以让执行代理(agent)获取最大收益的最优策略。而策略梯度算法着眼点在于直接对策略本身进行建模和优化。策略通常用一个带参数(通常用
收益(目标)函数定义为:
其中
想象一下,如果你可以持续永久遍历马尔可夫链中的所有状态,那么随着时间的推移,最终你停留在某个状态的概率是一定的,这就是策略
由于在连续空间下,行为或者状态的数量是无限的,基于值(value)的方法的计算代价太大了。举例来说,在一般策略迭代方法中,策略改进那一步
根据目标函数的梯度
策略梯度定理
计算梯度
幸运的是,策略梯度定理出来拯救世界了!鼓掌!它给出了目标函数导数的另外一种简化形式,其中并不包含状态分布
策略梯度定理的证明
本小节信息量较大,是时候来复习一遍证明过程了(Sutton & Barto, 2017,章节13.1),这可以帮助我们了解为什么策略梯度定理是正确的。
我们从对状态价值函数求导开始:
因此,我们有:
这个等式有一个非常漂亮的递归形式(看红色部分!),未来状态的价值函数可以通过同样的形式展开。
考虑如下序列,我们使用
我们有:
时, 时,我们将能够转移到状态 所有可能的行为出现的概率相加得到: - 假设我们的目标是依照策略
,从状态 经过 步转移到状态 ,那么我们可以先从状态 经过 步转移到状态 ,然后再从状态 经过1步转移到状态 。通过此种递归的方式,我们拆分转移概率:
回到前面,我们对价值函数的梯度
我们将价值函数梯度表示带入到目标函数的公式中,并整理可以得到:
上式中
其中
策略梯度定理是许多策略梯度算法的理论基础。这种朴素的策略梯度更新方法是无偏的(bias),但是存在很大的方差(variance)。下面我们提到的许多算法都是为了在保证偏差不变的情况下降低方差而提出的。
这里列出策略梯度算法的一些常用的形式(论文GAE中给出的),这篇文章讨论了GAE中的一些组成部分,强烈推荐。
译著: GAE 这篇文章我们之前有介绍过,参考链接。
GAE 中策略梯度公式简介
策略梯度的公式,通常有如下形式:
其中,
其中,值函数:
Q函数:
优势函数:
策略梯度算法
近年来大量梯度策略算法被提出来,本文不可能介绍所有的算法,这里仅介绍一些我偶然了解到并且读过的一些。
REINFORCE
REINFORCE(蒙特卡洛策略梯度)算法依赖于蒙特卡洛方法生成样本来估计期望收益,以更新策略的参数。由于使用蒙特卡洛方法得到的梯度在期望意义上与实际的梯度是相等的,因此REINFORCE可以正常工作:
我们可以通过实际采样得到的样本路径(sample trajectories)中来估计
此方法工作过程非常直观:
- 随机初始化策略参数
- 使用策略
来生成一个样本路径: - For t = 1, 2, ... , T:
- 估计回报
的值 - 更新策略参数:
- 估计回报
REINFORCE 算法的一个常用变体是将
Actor-Critic
策略梯度中有两个重要组成部分:策略模型和价值函数。除了学习策略之外,学习价值函数也是非常有意义的,因为值函数可以协助梯度更新。举例来说,在朴素策略梯度算法中,我们使用状态价值函数作为基线值时可以降低梯度方差,这就是Actor-Critic所做的事。
Actor-Critic方法由两个模型组成,它们之间可能会共享参数:
- Critic更新价值函数的参数
,根据不同的算法,价值函数可以是行为价值函数 或者状态价值函数 - Actor负责更新策略
的参数 (使用cirtic指示的方向)
我们来看一下简单的基于行为价值函数的Actor-Critic算法的工作流程:
- 随机初始化
;对行为进行采样 - For t = 1, ..., T:
- 采样奖励
以及下一个状态 - 采样下一个行为
- 更新梯度参数:
- 计算时刻
时的TD值: - 更新行为价值函数的参数:
- 更新行为与状态:
- 采样奖励
上面的流程中
Off-Policy 策略梯度
REINFORCE和actor-critic算法的原始版本都是on-policy的:训练样本都是根据目标策略(target policy)来收集的 (这里目标策略指的是我们正在优化的策略完全一样的策略)。Off-policy方法相比于on-policy的方法有几个优势:
- off-policy方法不要求有一个完整的样本路径它可以重用之前采样得到的样本(经验回放),这样样本采样效率就非常高,数据使用效率也就非常高
- 使用与目标策略不一样的行为策略(behavior policy)来进行采样可以更好的进行探索(exploration)
译著:这里behavior也翻译为了行为,文中我们将 action 也译为了行为,注意区分。
现在让我们看看off-policy的策略梯度是如何计算的。收集样本所用的行为策略是一个已知的策略,用符号
其中
给定根据行为策略所得到的训练观测样本,我们将梯度的形式修改为:
上式中
简单总结,在off-policy的设定下使用策略梯度算法,我们仅需要对价值函数进行加权求和,权重就是目标策略与行为策略之比:
A3C
A3C (Asynchronous Advantage Actor-Critic)是一个经典的策略梯度算法,此算法重点关注并行训练。
在
以使用状态价值函数为例,如果我们使用MSE (均方误差)为loss函数:
算法基本步骤如下:
- 设定全参数
,以及特定线程的参数 - 初始化时间步数
- 当
:- 重置梯度值:
- 线程相关参数使用全局参数进行同步:
- 令
,并且对初始状态进行采样 - 当
不是终止态并且 :- 选择一个行为
,执行 得到新的奖励 和下一个状态 - 更新
- 选择一个行为
- 计算最后状态的收益估计:
,如果 为终止态 ,如果 为非终止态
- For
:- 计算
累计梯度: - 计算
累计梯度:
- 使用累计梯度
更新参数
- 重置梯度值:
使用A3C可以使用多个执行代理(agent)来进行并行训练。梯度的累积可以看做是随机梯度更新算法中多个
A2C
A2C是
在openai的实验结果中,A2C表现出了更高GPU利用率;在使用大的batch size的时候,A2C可以工作的更好,并且可以取得与A3C同样甚至更优的性能表现。
下图展示了A3C和A2C基本结构差异的一个对比:
DPG
[论文]
在我们上述提到的方法中,所有的策略函数
首先我们定义一些新的符号来帮助理解和讨论:
: 状态初始分布 : 从状态s开始,根据策略 来执行 步之后到达状态 的概率密度函数 : 带衰减系数的状态分布,定义为:
优化的目标函数为:
确定性策略梯度定理:现在是时候计算梯度了!根据链式法则,我们首先计算
我们可以将确定性策略看作是随机策略的一种特殊形式,也就是策略的概率分布仅在某一个行为
确定性策略定理可以被应用到一般策略梯度算法的框架中。
我们以一个on-policy的actor-critic算法为例展示DPG的工作过程。在on-policy的actor-critic算法每一次迭代的过程中,策略输出的行为都是确定的,策略参数的更新方法如下:
由于DPG的策略所输出的行为都是确定的,在没有引入足够随机性的情况下,很难保证采样过程会进行足够的探索(exploration)。因此,要么我们在策略中引入随机噪声(实际上,这样确定性策略就变成不确定了);要么我们可以使用off-policy方法通过使用一个不同的随机行为策略生成训练样本来进行训练。
假设在off-policy方法中,训练样本路径是通过一个随机策略
注意,由于策略是确定的,我们仅需要使用
DDPG
DDPG(Lillicrap, et al., 2015)(Deep Deterministic Policy Gradient)是一个model-free、off-policy的actor-critic算法,它将DPG算法和DQN算法结合了起来。我们回顾一下,DQN(Deep Q-Network)通过经验回放(experience-replay)以及目标网络冻结来稳定
为了更好的进行探索,我们通过给确定性策略
此外,DDPG对于actor和critic参数的更新都是软更新("保守的策略迭代")。软更新不会直接使用新策略的参数,而是将新旧策略进行加权求和,也就是在参数更新时,引入了一个参数
文中提到的一个细节在机器人技术中特别有用,它是关于如何对低纬度特征的不同的物理单元进行归一化的问题。举例来说:我们设计了一个模型,它以机器人的位置以及速度作为输入,并以此来学习某个策略;这些物理量在本质上是不同的,同种类型的数据对于不同的机器人来说变化量可能非常大。文中就引入了Batch normalization来解决此类问题。算法截图图下:
D4PG
[论文]
D4PG (Distributed Distributional DDPG)在DDPG的基础上进行了一系列的改进,来让DDPG可以以分布式的方式运行。改进点有:
(1)分布式Critic: critic 用于对Q的期望值进行估计,Q值被看作一个服从分布
确定性策略梯度更新公式变为:
(2)N步回报: 在计算TD误差时,D4PG计算了N步的TD值,而不是单步,新的TD目标值为:
(3)多个分布式并行actors: D4PG利用K个独立的actors来并行采集样本,并将其存储到一个统一的重放缓冲区中。
(4)带优先级的经验回放 (Prioritized Experience Replay, PER): 修改的最后一部分是关于如何从重放缓冲区中进行采样的。PER并非使用均匀分布进行采样,不同的样本被采样的概率不一样。假设重放缓冲区大小为
下面的论文截图展示了D4PG算法,论文中的一些变量表示方法与本文中使用的有一些差别;比如我们使用
MADDPG
多执行体DDPG (Multi-Agent DDPG, MADDPG)扩展了DDPG算法,以使其可以工作在一个新的环境中。在此环境中,多个执行体需要合作来完成某项任务,但是这些执行体仅能观测到执行体本地信息。在单个执行体的观察中,它看到的环境是非平稳的,这种非平稳性是由各个执行体策略不断更新而这些更新又不是全局可知所造成的。MADDPG是一个actor-critic模型,它被特别设计用于处理这种可以与多个执行体进行交互的、策略不断变化的环境。
前面提到的问题可以在MDP的多执行体(multi-agent)版本中进行形式化描述,它们通常被称为马尔可夫博弈(Markov games)。MADDPG就是针对部分可观察马尔可夫博弈问题提出的。假设我们一共有N个执行体,并且有一个状态集合
我们使用符号
MADDPG中的critic是一个中心化的critic,这里的中心化指的是critic可以使用所有执行体的相关数据(比如:执行的动作、观测到的状态等)。每个执行体会学习一个自己的行为价值函数
每个执行体
Actor 的更新:
其中
Critic 的更新:
其中
如果在critic更新的时候,策略
为了缓解不同执行体之间的竞争或者合作带来的高方差,MADDPG提出了引入一个新方法-策略集成 (policy ensembles):
- 每个执行体训练K个策略
- 每一轮随机选择一个策略公开
- 使用K个策略集成的结果进行策略更新
总结一下,MADDPG在DDPG基础上添加了三个额外的部分来让算法可以被应用到多执行体环境中:
- 中心化的critic + 分布式的actor
- 某个执行体的actor需要有估计其它执行体策略的能力
- 使用策略集成来降低方差
下图为论文中MADDPG架构示意图:
TRPO
为了改进训练的稳定性,我们应该避免在单次更新时策略参数改动太大。TRPO (Trust region policy optimization)通过在每次迭代时对策略更新的大小使用KL散度来进行约束以实现这一想法。
考虑这样一个情形,当我们执行off-policy RL算法时,我们用于收集样本路径的策略
其中
在进行on-policy训练时,理论上说我们用于收集样本的策略与我们想要优化的目标策略是一样的。但是,在一个异步并行训练的环境下,我们采集样本所用的行为策略可能与我们的目标优化策略产生差异。TRPO考虑到了这个微小的差异:它将行为策略标记为
为了保证新旧策略间的差异不会太大,TRPO使用KL散度来限制新旧策略分布之间的距离。因此目标函数
其中
PPO
我们看到TRPO算法较为复杂,还需要进行KL散度的计算,本小节所介绍的PPO算法使用了一个简单的方法对TRPO进行了改进。PPO (Proximal Policy Optimization)中使用了一个简洁的、截断式的目标函数来达到与TRPO相似的性能表现。
首先,我们定义新旧策略比为:
这样,TRPO (on-policy)的目标函数变为:
如果不对
上式中 clip 函数,让比例
如果在使用PPO的时候,所设计的策略模型(actor)与价值模型(critic)共享了部分参数,那么除了使用上面的截断式目标函数之外,目标函数还可以添加价值函数的惩罚项和一个熵(entropy)的惩罚项:
其中,红色部分为价值函数的惩罚项,蓝色部分为熵惩罚项,
PPO算法在许多基线任务上都进行过测试,被证明简洁高效。
在后续的论文[Hsu等人, 2020]中,PPO中的两个设计选择被重新审视了,也就是:(1) 用于策略正则化的截断式的比例
- 在连续的行为空间下,标准的PPO算法在奖励超出所能支持的边界之后,会变得不稳定
- 在离散的行为空间下,如果奖励非常稀疏并且在某些行为上的奖励非常高的时候,标准PPO算法会停留在局部最优的行为上
- 在初始化数据接近局部最优解时,策略对于初始化非常敏感
文中提出了两个替换的设计方案来解决上述问题:
- 为了解决高斯策略相关的问题1&3,文中提出将行为空间离散化或者使用Beta分布来帮助避免这些问题
- 针对问题1&2,文中提出使用KL正则(和TRPO中一样)来作为替代模型
PPG
让策略网络与价值网络间共享参数(共享神经网络层)是一把双刃剑。这种方法虽然可以让策略网络与价值网络来共享学习到的特征,但是引起两个模型之间的竞争冲突。策略网络与价值网络对于同一参数的优化方向是不一致的。PPG (Phasic Policy Gradient)对于传统的on-policy的actor-critic算法(PPO)进行了修改,以使其可以将策略网络的训练与价值网络的训练分在不同的阶段中进行:
- 策略阶段:使用PPO的目标函数
来优化策略网络 - 辅助阶段:优化辅助目标函数。在论文中,值函数的误差是唯一的辅助目标,但是辅助目标函数也可以添加一些其它项
除了PPO中的
其中
其中:
为在策略阶段策略更新迭代的次数。 和 控制了样本重用的迭代次数(一个用于策略函数,一个用于价值函数),这两个参数都是用于策略阶段的 定义了在辅助阶段样本重用的次数;论文的实验使用的参数为:
PPG在采样效率上相对于PPO来说有很大改进,下图是PPG和PPO性能表现归一化之后的对比图,PPG看起来好多了。
ACER
ACER (Actor-Critic with Experience Replay), 是一个off-policy的actor-critic 模型,当然它也会使用经验重放来提高样本效率,降低数据相关性。A3C构成了ACER算法的基础,但A3C是on-policy的。ACER是A3C的一个off-policy的版本。让A3C由on-policy变为off-policy的一个主要障碍就是如何控制off-policy预测器的稳定性。ACER提出了三个设计来解决这个问题:
- 使用Retrace Q值估计
- 使用带偏差修正的截断式重要性权重
- 应用高效TRPO
Retrace Q值估计
Retrace是一个off-policy的Q值估计算法,它依赖于环境收益,对于目标策略以及行为策略
我们回顾一下TD学习是如何用于预测的:
- 计算TD误差:
; 就是大家所熟知的TD目标(TD target)值。式中我们使用了期望符号 ,这是因为对于未来收益我们能做的最好估计就是服从当前的策略 - 通过将价值函数往目标值移动来更新
值: 。可以看到 值的改变量与TD误差成正比: 。
这个过程是off-policy的,我们需要对
重要性权重的乘积看起来非常可怕,因为它可能会引入巨大的方差。RetraceQ值估计方法对
ACER 使用
重要性权重截断
为了降低策略梯度
其中
高效TRPO
进一步地,ACER采纳了TRPO的思想,但是做了一点小小的改进来让计算更加地高效:ACER在每次迭代过程中不再去计算新旧策略分布之间的KL散度,取而代之的是,ACER维持了一个以往策略的滑动平均值以保证更新后的策略不致于偏离之前的平均策略太远。
ACER论文中使用了大量的公式对读者的大脑进行了轰炸。但是在拥有TD-learning, Q-learning,重要性采样,以及TRPO的知识之后,你可能会发现它会变得稍微容易理解一点。
ACTKR
ACKTR (Actor-Critic using Kronecker-factored Trust Region)提出使用二阶优化算法K-FAC (Kronecker-factored Approximation Curvature)来更新cirtic和actor的参数。K-FAC对于自然梯度的计算进行了改进。自然梯度与我们常使用的标准梯度下降有很大不同,这里有一个很直观的解释,下面使用一句话概括:
"假设我们的网络定义在一个参数空间里,那么我们考虑那些与我们旧的网络之间的距离为一个常量的所有参数的集合(这个常量可以看做是step size或者学习率),在这个参数的集合中,我们挑选一个可以让我们的loss函数最小的那一个。"
我将ACKTR算法列在这里主要是考虑到这篇文章的完整性,这里不会太深入到该算法的细节中去。因为它需要很多自然梯度的知识及其相关的优化算法。如果感兴趣,可以查看论文或者一些博文,阅读ACKTR论文之前,请先看下表列出的内容:
- Amari.Natural Gradient Works Efficiently in Learning. 1998
- Kakade.A Natural Policy Gradient. 2002
- A intuitive explanation of natural gradient descent
- Wiki: Kronecker product
- Martens & Grosse.Optimizing neural networks with kronecker-factored approximate curvature. 2015
这里给出一个K-FAC论文的一个顶层视图总结:
"近似方法分为两阶段。
在第一阶段,Fisher矩阵的行和列被分成不同的组,每一个对应一层中的所有权重值,这实际上进行了一次矩阵迭代分块操作。这些块之后会使用小矩阵的Kronecker积来近似。这个操作等效于对网络梯度的统计数据进行一些特定的近似猜想。
在第二阶段,该矩阵被进一步近似为拥有一个具有逆矩阵的块对角或者块对三角矩阵。我们仔细检查了逆协方差、树形结构的图模型和线性回归之间的关系之后,发现这种近似是合理的。需要注意的是,这种验证对于Fisher矩阵本身并不适用。我们的实验证实,虽然Fisher矩阵的逆确实(近似)具有这种结构,但是Fisher矩阵本身并没有。"
SAC
SAC (Soft Actor-Critic)将策略的熵纳入训练的最终目标考量,用于鼓励探索,算法期望在保持策略尽可能随机的情况下,仍然可以成功完成某项任务。SAC是一个基于最大熵RL的一个off-policy + actor-critic的模型。
SAC由三个重要部分组成:
- 由独立的策略网络和价值网络组成的actor-critic结构
- 一个off-policy的训练方式,可以提高数据有效性
- 引入最大熵来确保稳定性和探索
策略的训练目标是同时最大化期望收益和熵值:
其中
准确来说,SAC目标在于学习三个函数:
- 策略
,参数为 - 由参数
决定的(Soft)Q价值函数 - 由参数
决定的(Soft)状态价值函数 ;理论上,如果我们已知 和 ,我们可以推导出 ,但是实际运行时,独立的 可以让训练更加稳定
Soft Q函数和Soft状态价值函数定义为:
状态价值函数的loss函使用MSE loss,loss函数及其梯度为:
Soft Q函数的训练目标是最小化soft贝尔曼残差, loss及其梯度为:
其中
SAC策略更新的目标是最小化KL散度:
其中
上述的更新规则可以保证
有了上述目标函数及其梯度之后,算法看起来就直观了:
带温度动态调整的SAC
SAC算法对于温度参数非常敏感,不幸的是调整温度参数是很困难的。这是因为在训练过程中随着策略不断被优化,熵变得难以预测,而且对于不同的任务,策略熵值也是不一样的。对于SAC的改进促成了一种新的条件优化问题的出现:在最大化期望收益的同时,策略应该满足最小熵限制:
其中
期望收益
这里我们设
我们从最后的时刻
首先,我们定义如下函数:
带入优化公式有:
为了解决这个带不等式约束的优化问题,我们可以用拉格朗日算子
考虑如下问题:给定一个特定值
- 如果约束满足,也就是
,那么显然最优的情况是,我们设置 ,因此 - 如果约束不满足,也就是
,那么我们可以设置 ,此时我们有
这两种情况下,我们都有:
这样,我们可以得到约束优化的对偶问题:
我们可以对
因此,我们有:
现在我们回头看Soft Q价值函数:
由此可以得到时刻
和前面的步骤类似:
上式中绿色部分用于更新
最终,算法除了通过目标函数
TD3
大家知道Q-learning算法的价值函数有超估(overestimation)的问题。这个超估问题会随着训练的迭代传播,最终会对策略产生负面影响。这也是Double Q-learning和Double DQN被提出的原因:行为选择和
TD3 (Twin Delayed Deep Deterministic)算法在DDPG的基础上应用了一些列的小技巧来防止值函数的超估问题:
(1)截断式Double Q-learning: Double Q-learning中行为选择和
但是由于策略更新缓慢,这两个网络太相似了,以至于它们无法做出相互独立决定。截断式Double Q-learning使用两个预测中较小的那个值,这个做法让算法更加偏向欠估计(underestimate)的偏差,而这个在训练中很难传播:
(2)目标和策略网络延迟更新:在actor-critic 模型中,策略和价值网络的更新紧密联系在一起:当策略网络的估计不准确的时候,价值网络会因为超估问题导致无法收敛;而如果价值网络估计不准确又会导致策略网络变得更差。
为了降低方差,TD3相比于Q函数来说以一个更低的频率去更新策略。策略网络在价值网络的误差尚未足够小时,保持不变。TD3为价值函数引入了一个平滑的正则策略:在每个mini-batch熵,给选定的行为(action)添加少量的截断式的随机噪声:
这个方法和SARSA更新的思想类似,可以强制让相似的动作可以有相似的价值。最终算法如下:
SVPG
SVPG (Stein Variational Policy Gradient)应用SVGD算法来优化策略参数
其中,
如果我们没有任何先验信息,我们可以设置
我们对目标函数对
最优分布为:
温度系数用于在利用(exploitation)和探索(exploration)*之间进行平衡。当
用SVGD方法预测目标函数的后验概率
上式中,
比较不同基于梯度的更新方法:
方法 | 更新( |
---|---|
朴素梯度 | 参数空间 |
自然梯度 | 搜索分布空间 |
SVGD | 核函数空间 |
上述公式中:
- 左边红色部分鼓励参数往
概率大的方向移动(该方向由相似的点共享)。=> 为了与其它点相似 - 右边绿色部分将一个点
往远离其它点的方向移动,以让策略更加多样化。=>为了让不同点之间差异变大
通常,我们会让温度调节遵循一个类似退火的方案,这样训练会在开始时多去探索,而在快要结束时更多进行利用(exploitation)。
算法截图如下:
IMPALA
为了让RL的训练可以达到一个非常高的吞吐量,IMPALA (Importance Weighted Actor-Learning Architecture)框架在基本的actor-critic基础上将动作执行(acting)与学习(learning)过程分离,使用V-trace off-policy修正进行经验路径(experience trajectories)进行学习。
多个actors并行生成经验数据,学习器使用所有生成的数据去优化策略和价值函数的参数。Actor定期从学习器中获取最新的策略。由于动作(action)的执行与学习被分离开来了,我们可以使用更多的actors来并行生成数据。由于我们正在训练的策略和行为策略(actors正在使用的)不是完全同步的,我们需要做off-policy 修正。
在训练时刻
红色部分
值函数参数的更新方向为:
策略参数
其中
在论文的实验中,IMPALA被用于训练一个在多个任务上运行的执行体。实验使用了两个不同模型结构:一个影子模型(左)、一个深度残差模型(右)。
快速总结
在读完上述所有算法之后,我总结了一些点:
- 在保证偏差不变的前提下降低方差
- Off-policy 可以让我们更好地进行探索,并且可以提高数据效率
- 使用经验重放
- 目标网络要么定期冻结,要么比学习中的网络更新慢
- Batch Normalization
- 在reward中引入熵正则项
- Actor和Critic可以共享底层网络层,而在头部使用不同的网络层来分别输出策略和价值
- 可以使用确定性策略而不是随机性策略进行学习
- 对于策略更新的幅度进行限制
- 使用心得优化方法(如:K-FAC)
- 策略熵最大化可以加强探索(exploration)
- 尽量不要高估(overestimate)价值函数
- 如果想让策略网络与价值网络共享参数,好好想想能不能行
- 未完待续
使用如下方式引用本文:
@article{weng2018PG, title = "Policy Gradient Algorithms", author = "Weng, Lilian", journal = "lilianweng.github.io/lil-log", year = "2018", url = "https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html" }
引用
[1] jeremykun.comMarkov Chain Monte Carlo Without all the Bullshit
[2] Richard S. Sutton and Andrew G. Barto.Reinforcement Learning: An Introduction; 2nd Edition. 2017.
[3] John Schulman, et al.“High-dimensional continuous control using generalized advantage estimation.”ICLR 2016.
[4] Thomas Degris, Martha White, and Richard S. Sutton.“Off-policy actor-critic.”ICML 2012.
[5] timvieira.github.ioImportance sampling
[6] Mnih, Volodymyr, et al.“Asynchronous methods for deep reinforcement learning.”ICML. 2016.
[7] David Silver, et al.“Deterministic policy gradient algorithms.”ICML. 2014.
[8] Timothy P. Lillicrap, et al.“Continuous control with deep reinforcement learning.”arXiv preprint arXiv:1509.02971 (2015).
[9] Ryan Lowe, et al.“Multi-agent actor-critic for mixed cooperative-competitive environments.”NIPS. 2017.
[10] John Schulman, et al.“Trust region policy optimization.”ICML. 2015.
[11] Ziyu Wang, et al.“Sample efficient actor-critic with experience replay.”ICLR 2017.
[12] Rémi Munos, Tom Stepleton, Anna Harutyunyan, and Marc Bellemare.“Safe and efficient off-policy reinforcement learning”NIPS. 2016.
[13] Yuhuai Wu, et al.“Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation.”NIPS. 2017.
[14] kvfrans.comA intuitive explanation of natural gradient descent
[15] Sham Kakade.“A Natural Policy Gradient.”. NIPS. 2002.
[16]“Going Deeper Into Reinforcement Learning: Fundamentals of Policy Gradients.”- Seita’s Place, Mar 2017.
[17]“Notes on the Generalized Advantage Estimation Paper.”- Seita’s Place, Apr, 2017.
[18] Gabriel Barth-Maron, et al.“Distributed Distributional Deterministic Policy Gradients.”ICLR 2018 poster.
[19] Tuomas Haarnoja, Aurick Zhou, Pieter Abbeel, and Sergey Levine.“Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor.”arXiv preprint arXiv:1801.01290 (2018).
[20] Scott Fujimoto, Herke van Hoof, and Dave Meger.“Addressing Function Approximation Error in Actor-Critic Methods.”arXiv preprint arXiv:1802.09477 (2018).
[21] Tuomas Haarnoja, et al.“Soft Actor-Critic Algorithms and Applications.”arXiv preprint arXiv:1812.05905 (2018).
[22] David Knowles.“Lagrangian Duality for Dummies”Nov 13, 2010.
[23] Yang Liu, et al.“Stein variational policy gradient.”arXiv preprint arXiv:1704.02399 (2017).
[24] Qiang Liu and Dilin Wang.“Stein variational gradient descent: A general purpose bayesian inference algorithm.”NIPS. 2016.
[25] Lasse Espeholt, et al.“IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures”arXiv preprint 1802.01561 (2018).
[26] Karl Cobbe, et al.“Phasic Policy Gradient.”arXiv preprint arXiv:2009.04416 (2020).
[27] Chloe Ching-Yun Hsu, et al.“Revisiting Design Choices in Proximal Policy Optimization.”arXiv preprint arXiv:2009.10897 (2020).