李宏毅深度强化学习笔记(二)Proximal Policy Optimization

李宏毅深度强化学习笔记(二)Proximal Policy Optimization

参考jessie_weiqing博客:https://blog.csdn.net/cindy_1102/article/details/87905272
李宏毅深度强化学习课程 https://www.bilibili.com/video/av24724071

Proximal Policy Optimization

术语和基本思想

On-policy: 学习到的agent以及和环境进行互动的agent是同一个agent
Off-policy: 学习到的agent以及和环境进行互动的agent是不同的agent

为什么要引入 Off-policy:
∇ R ‾ θ = E τ ‾ ∼ p θ ( τ ) [ R ( τ ) ∇ log ⁡ p θ ( τ ) ] \nabla \overline { R } _ { \theta } = E _ { \underline { \tau } \sim p _ { \theta } ( \tau ) } \left[ R ( \tau ) \nabla \log p _ { \theta } ( \tau ) \right] Rθ=Eτpθ(τ)[R(τ)logpθ(τ)]

如果我们使用 πθ 来收集数据,那么参数 θ被更新后,我们需要重新对训练数据进行采样,这样会造成巨大的时间消耗
目标:利用 π θ ′ 来进行采样,将采集的样本拿来训练 θ , θ’ 是固定的,采集的样本可以被重复使用

原理:Important sampling:

我们只有通过另外一个分布得到的样本时,期望值可以做出以下更改,更换分布之后,需要使用重要性权重p(x)/q(x)来修正f(x).,这样就实现了使用q分布来计算p分布期望值。
在这里插入图片描述
需要注意的是,两个分布p,q p,qp,q之间的差别不能太大,否则方差会出现较大的差别。

先基于原始的分布p计算函数的方差,然后计算引入不同分布q之后得到的函数方差,可以发现两者得出的方差表达式后面一项相同,主要差别在于前面那一项,如果分布p和q之间差别太大,会导致第一项的值较大或较小,于是造成两者较大的差别。
在这里插入图片描述
如果p,q p, qp,q两个分布的差别过大,在训练的过程中就需要进行更多次数的采样。

比如下图中,实际分布p和辅助分布q差别较大,横轴左边表示收益为负,右边表示收益为正。蓝色的线表示真实分布p的分布,主要集中在左边,也就是说,真实情况下reward的期望值应该是负的。

但是由于辅助分布q,即绿色线,主要集中在右侧,因此在采样的时候采到右边的概率更大,可能会导致多轮采样之后,算出来的期望收益依旧为正,只有当采样到左侧的点,并且乘上较大的修正系数 p/q p/qp/q之后,算出的结果才会变成真实的符号,负号。尽管采样到右侧的点修正系数很小,最终结果可能依旧是正确的,但这样会导致在采样上耗费较大的时间,因此,p q分布之间的差异依旧不宜过大。
在这里插入图片描述
从上述important sampling的思想出发,可以使用该思想来达到上文所述的目标,即 “利用πθ ′ 来进行采样,将采集的样本拿来训练 θ, θ’ 是固定的,采集的样本可以被重复使用” 表示为:
在这里插入图片描述

提醒

  • Advantage function (收益reward减去基准baseline) 也应该随着新的采样参数而变化(从基于θ 的 Aθ 变为基于θ′ 的Aθ′
  • 在不同的参数情况下,某一个状态state出现的概率几乎没有差别,因此可以将这一项近似地消掉
  • stop criteria取决于两个分布之间的差别大小

在这里插入图片描述
加入约束: (θ \thetaθ 不能与 θ’ \theta′θ′差别过大)
Tip: 这是一项加在行为上的约束,而不是加在参数上的约束

PPO 算法

  • 初始化policy的参数 θ0
  • 在每一次迭代中,使用θk
  • k来和环境互动,收集状态和行动并计算对应的advantage function
    不断更新参数,找到目标函数最优值对应的参数 θ

在训练的过程中采用适应性的KL惩罚因子:

  • 当KL过大时,增大beta值来加大惩罚力度
  • 当KL过小时,减小beta值来降低惩罚力度
    在这里插入图片描述

PPO2

  • PPO2引入了Clip函数,意味着第二项,即蓝色的虚线必须在 1-ϵ 和 1+ϵ 之间
  • 红色的线表示取最小值之后整个函数值分布情况.
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值