【RL入门】Policy-based算法
Policy-based强化学习优化目标
: 即该轨迹在策略 下采样出来的,即
- RL 优化过程:策略(价值)评估+策略迭代(改善)
- 策略评估与价值评估可以同时进行
- value-based:只要我们知道状态空间
和动作空间 , 就可以作用到这两个空间上帮助衡量哪个状态/动作的价值最大,进而隐式地承担起制定策略的角色 - policy-based:让策略和环境交互多次,采样足够多的轨迹数据,用这些数据去对策略的价值做评估,然后再据此决定策略的迭代方向
- actor-critic(actor表示策略,critic表示价值):同时有价值实体
和策略实体 ,然后按照上面过程进行迭代
- value-based:只要我们知道状态空间
策略梯度上升(REINFORCE 算法)
- 计算梯度:
对
基于策略产生轨迹的概率:
上述式子中仅
- 在实践中,可以通过采样足够多的轨迹来估计这个期望。假设采样
条轨迹, 足够大,每条轨迹涵盖 步,则上述优化目标可被写成
梯度为
REINFORCE 算法能够直接优化策略的期望回报,是一种 on-policy 算法,比基于价值的强化学习算法的优化目标更直接;但同时梯度估计方差较大(随机动作时间沿着轨迹不断累积导致),可能会造成不稳定,这也是后续Actor-Critic算法试图解决的问题
基线 REINFORCE(VPG)
Vanilla Policy Gradient or REINFORCE with baseline, 处理算法中的梯度估计方差大的问题
- 使用部分 Return 而非全部,来改变动作的对数概率。
- 但同时概率会随着 reward 变化明显导致难以区分好坏。比如冰湖环境中,reward 均为正的,一旦随机选取了某个动作就会导致其概率增大,而不考虑其他动作的平均结果,从而影响其他动作选取, 因此体现 baseline 的重要性
- 这里便采用 action-advantage 函数区分相同状态下动作-值的收益
First, according to one of the fathers of RL, Rich Sutton, policy-gradient methods approximate the gradient of the performance measure, whether or not they learn an approximate value function. However, David Silver, one of the most prominent figures in DRL, and a former student of Sutton, disagrees. He says that policy-based methods don’t additionally learn a value function, only actor-critic methods do. But, Sutton further explains that only methods that learn the value function using bootstrapping should be called actor-critic, because it’s bootstrapping that adds bias to the value function, and thus makes it a “critic.” I like this distinction; therefore, REINFORCE and VPG, as presented in this book, aren’t considered actor-critic methods. But beware of the lingo, it’s not consistent.
价值函数
上述
- 衡量单步价值时,在【单步回报】和【轨迹整体回报】间找到一种平衡方式
用更一般的符号
表示可行的价值函数
的形式: (baseline version)
这里采用累计折扣奖励好些
Actor-Critic
在actor-critic方法下,我们用神经网络
来表示策略(actor),神经网络 来表示价值(critic),所以这里我们进一步把 写成
- 选择第6种(TD error)作为
,它衡量在某个时刻 选择某个动作 会比在策略 下( )选取动作要好多少
当
等于客观存在的真值 时,TD-error是 的无偏估计
- Actor 优化目标
- Critic 优化目标
- 当我们推动critic loss(优势)趋于0时:
- 对critic来说,是推动它准确衡量当前策略的价值,逐步逼近
- 由于逼近到
时,TD-error 是 的无偏估计。因此对 actor 来说相当于逼近 ,即向 拟合
- 对critic来说,是推动它准确衡量当前策略的价值,逐步逼近
PPO
- Actor 的梯度
- 存在的问题
重要性采样
通过 off-policy(产出数据的策略和用这批数据做更新的策略不是同一个),重复利用
假设有两个分布
上述的转换即添加了一个权重
实际操作中,可能遇到
当p(x)和q(x)差异较大时,仍需要通过足够多的采样来抵消这种差异对期望的最终影响。
- 重要性采样后的策略梯度
- 反推出新的 actor 优化目标
仍需解决
分布差异大的情况
GAE:平衡优势函数的方差和偏差
假设
- 为了解决因为估计不准而引发的“高偏差”问题,直观上可以尽量少信任
的策略(把 递归展开,相信实际采样结果)
但改为实际采样结果相当于增加了随机性(
- GAE(Generalized Advantage Estimator):平衡优势函数的方差和偏差
: 超参,折扣因子
: 超参,平衡方差-偏差的因子。 ; 。即 越大,方差越大,偏差越小
PPO前身:TRPO
Trust Region Policy Optimization (TRPO)
- 引入重要性采样解决采样效率问题,引入 GAE 解决单步优势的方差-偏差问题。
- 考虑当
和 差异较大时,采样效率仍不高, 估计不准确,TRPO 解决方法为把两者分布的相似性作为 constraint - 优化目标:
- 缺陷:由于 constraint 不在优化函数中,因此优化过程变得复杂
PPO 的改进:PPO-Clip
- 把 constraint 放回
中 - Clip 思想
时,说明当前动作 相比别的动作更好——>提升 。
但由于较少采样数,因此不能差异过大,因此保证其上限,设为 (保证持续不反应过度的“进步”) 反之同理,clip 不超过
PPO 的改进:PPO-Penalty
- 把 constraint 作为 KL-penalty
- 超参
调整: - 对 KL 散度设置 threshold,
时说明策略偏离 old 策略较远,增大 时说明策略可能找到了捷径(只优化 KL),此时应降低
- 对 KL 散度设置 threshold,
PPO (Proximal Policy Optimization,近端策略优化)。通过以上方法限制了策略更新的幅度,以避免过大的更新导致的训练不稳定,由此体现了“近端”