强化学习入门(二):on-policy与off-policy

一、名词解释即引入原因

1、名词解释:

在这里插入图片描述
翻译过来就是:
On-policy: 学习到的agent以及和环境进行互动的agent是同一个agent
Off-policy: 学习到的agent以及和环境进行互动的agent是不同的agent

直观理解就是:
On-policy:相当于你在打游戏,你在实战中变强。
Off-policy:相当于你在看直播,你在观摩中变强。

2、为何要引入 Off-policy:

为了避免不停地sample(这会很耗时间)
在这里插入图片描述
如果我们使用 π θ \pi_\theta 来收集数据,那么参数 θ \theta 被更新后,我们需要重新对训练数据进行采样,这样会造成巨大的时间消耗。

引入Off-policy后,可以利用 π θ \pi_{\theta}′ 来进行采样,将采集的样本拿来训练 θ \theta θ {\theta}′ 是固定的,采集的样本可以被重复使用,就避免了反复采样。

二、Off-policy实现

1、Off-policy原理

我们假设x来自于p分布,但是现在我们要用q分布来进行学习,那么可以将期望公式进行如下修正
在这里插入图片描述
这样就将从p中采样转化为了从q中采样,进而实现了使用q分布来计算p分布期望值。

2、注意事项

两个分布p,q之间的差别不能太大,否则方差会出现较大的差别。

原因如下:
先基于原始的分布p计算函数的方差,然后计算引入不同分布q之后得到的函数方差,可以发现两者得出的方差表达式后面一项相同,主要差别在于前面那一项,如果分布p和q之间差别太大,会导致第一项的值较大或较小,于是造成两者较大的差别。
在这里插入图片描述
举个例子来演示一下
如下图所示,实际分布p和辅助分布q差别较大,横轴左边表示收益为负,右边表示收益为正。蓝色的线表示真实分布p的分布,主要集中在左边,也就是说,真实情况下reward的期望值应该是负的。
但是在对q采样的时候,如果采样次数不够多,很可能只能采到右边几个点,而期望就是正的了。
如果采样次数够多的话,如果能采到A点,因为A点的p(x)/q(x)很大,也可能得到正确的负值。
在这里插入图片描述

3、具体实现

上一篇博客中讲到的On-policy的公式按照上面的原理进行修正,就可以得到Off-policy的公式:
在这里插入图片描述
1、下图中的A就是前篇博客中的Reward-b,即Advantage function (收益reward减去基准baseline) 也应该随着新的采样参数而变化(从基于 θ \theta A θ A^{\theta} 变为基于 θ \theta' A θ A^{\theta'}
2、在不同的参数情况下,某一个状态state出现的概率几乎没有差别,因此可以将这一项近似地消掉

在这里插入图片描述
进而可以得到Off-policy的损失函数
在这里插入图片描述
stop criteria取决于两个分布之间的差别大小。

θ \theta θ \theta' 是不能差太多的,不然结果会不好,那么怎么避免它们差太多呢?
这就是下一篇要介绍的PPO所在做的事情。

参考: https://blog.csdn.net/cindy_1102/article/details/87905272