【强化学习篇】on-policy 和 off-policy 的区别

本质区别:

  • 学习的 agent和环境互动的 agent同一个,是on-policy(同策略)

  • 要学习的 agent 跟和环境互动的 agent 不是同一个,是off-policy(异策略)

on-policy 与 off-policy值函数:

  • on-policy与off-policy区别是:更新值函数时是否只使用当前策略所产生的样本.

先来看看on-policy值函数演算为off-policy的公式推导:

(1)on-policy的梯度为:

on-policy的训练策略是actor用当前policy跟环境交互采样数据data,即为

,然后用这些数据根据梯度公式进行更新policy参数,

从上面梯度公式,拿去跟环境做互动的policy(蓝色下划线)和要更新参数的policy是同一个。然而,一旦policy更新参数后,这时两个policy是不一样了,之前采样数据data则不能继续使用了,需要重新再采样数据,这样效率很低。

因此,off-policy就应运而生,目的是re-use采样数据。 on-policy→off-policy的目的是为提高数据利用效率。

(2)重要性采样

假设期望公式:

然而,此时我们只能从 q(x) 分布中采样 xi,其中 q(x) 为任何一种分布。

这时期望公式可以写成:

这时就转换为从q(x)分布去采样x来求期望。

实际操作中,p分布和q分布还是不能差太多,否则会导致一些问题出现。这是因为期望相等,方差Variance不一定相等,公式推导如下:

(3)off-policy的梯度

根据重要性采样的期望公式,on-policy梯度可以转换成以下的梯度公式

从on-policy梯度和off-policy梯度对比,很明显的是off-policy跟环境互动的是 θ‘ ,而不是θ,θ‘ 采样出来的数据与待更新的θ没有关系。

因而,可以实现θ’与环境互动产生大量数据以后,θ可以训练并更新很多次。待训练到一定程度后,θ‘=θ,θ’重新跟环境互动。

off-policy的目标函数

Aθ(st, at)是Accumulated Reward 减去 bias,用来估测动作的相对好坏,如果正就增加动作几率,如果负,就减少几率。

这里有个假设,pθ(st)和pθ′(st)分布是差不多的,比值接近1,可以略去。其中还有另外的原因是算不出来的。

off-policy 到 PPO

前面的假设是pθ与pθ′分布不能差太多,否则结果会不准确。那么,如何避免差太多,就是在训练的时候,多加了一个限制条件。这个限制条件就是θ和θ'这两个model 输出action的KL散度。这就是PPO。

KL 散度并不是θ和θ‘参数的距离,而是行为上的距离,即给同一个state的时候,action几率分布之间的差距。

可以对整到InstructGPT RLHF的PPO训练目标函数:

PPO训练流程:

Reference

[1] 【李宏毅】2020 最新强化学习课程 (完整版) - 5_哔哩哔哩_bilibili

[2] 李宏毅深度强化学习(国语)课程(2018) 笔记(二)Proximal Policy Optimization(PPO)_ppo 李宏毅_Interesting AI的博客-CSDN博客

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TanH.blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值