我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
关于强化学习,我专门花半年时间学习实践过,因此这里笔记只记录李老师的 outline 。我的强化学习资源仓库:
https://github.com/PiperLiu/Reinforcement-Learning-practice-zh
我的 CSDN 强化学习博客集合:
https://blog.csdn.net/weixin_42815609/category_9592110.html
本节内容综述
- PPO 是 PG 的进阶方法,是 OpenAI 默认的强化学习方法。
- 首先复习 PG 。不再记录。有几个小技巧,记录一下。
- 要引出 PPO ,首先介绍 On-policy 同轨策略与 Off-policy 离轨策略。最后构造了 ,并提出问题:两个分布相差太大时,就会产生偏差。那么,什么时候停下呢?引出 PPO 。
- 介绍 PPO / TRPO 。
文章目录
小细节
Tips of PG
Tip 1: Add a Baseline
上节课讨论过,因为采样的缺失,容易导致一些采样少的 action 价值偏低。
为了解决这个问题,我们希望我的 R 并不总是正的。
可以设 。
Tip 2: Assign Suitable Credit
如上,有些行为是不好的,但可能最后结果是好的,但是我们不鼓励那些之前的不好的行为;反之亦然。这在采样不多时,问题尤其明显。如上,我们只考虑执行完这个动作后,造成的影
响。
并且,会在未来的奖励值做一个折扣。
On-policy v.s. Off-policy
与环境交互即 On-policy ,但是比较消耗资源。
Off-policy 可以看别的策略(看别人玩)来学习。
Importance Sampling
如上,只能从 采样,但是我们的式子是针对 的;经过重要性采样,得到 。
Issue of Importance Sampling
如上,尽管二者平均数一样,但是方差不同。
如上,假设 、 、 分布如上。如果只进行大量采样,采样到了 那里的数据,则其权重很大,可以修正在 那里大量采样带来的偏差,让 “回归正轨”。
但是如果采样不够,则 会“偏离正轨”。
On-policy → Off-policy
如上,将采样率引入。
如上,应该注意,我们的优势函数是来自于采样数据的。此外,我们假设状态的出现概率与 即互动策略关系不大,因此约掉这项(此外,这项也不太可以用数学描述)。最终,我们总结出 。
但是问题是,两个分布相差太大时,就会产生偏差。那么,什么时候停下呢?
PPO / TRPO 将解决这个问题。
PPO / TRPO
PPO 之前的文章做过一些推导,最终决定,要在 中加一个约束。
PPO 的前身,TRPO 没有把这个约束直接放到 中。但是这样有点难处理。
要注意, 描述的不是参数上的距离,而是行为上的距离。
PPO algorithm
如上,在 PPO 中,还要同态调整 ,即 Adaptive KL Penalty 。
但是这样算 有点复杂。
因此引出 PPO2 。
PPO2
如上,用 PPO2 简化计算,无需计算 。
函数的意思其实很简单,如上。
后,的效果如上图。
为什么其其效果?
- 我们希望 比 还要大,但是不要大太多。
Experimental Results
发现 PPO 效果是不错的。