PPO算法

在线学习和离线学习

  • 在线学习:和环境互动的Agent以及和要学习的Agent是同一个, 同一个Agent,一边和环境做互动,一边在学习。
  • 离线学习: 和环境互动及的Agent以和要学习的Agent不是同一个,学习的Agent通过看别人完来学习。

利用新的参数\theta\prime去采样一次,然后更新\theta多次。那么怎么做呢?利用重要性采样的方法。

重要性采样

E_{x\sim p}[f(x)] \approx \frac{1}{N}\sum_{i=1}^{N}f(x^i)

x^i表示从分布p(x)中采样数据,但如果我们无法从p(x)分布中采样数据,只能从另一个分布中采样q(x)x^i。对期望值进行修正

E_{x\sim p}[f(x)] = \int f(x)p(x)dx = \int f(x)\frac{p(x)}{q(x)}q(x)dx

然后可以改成对分布q(x)中的取期望值。

\int f(x)\frac{p(x)}{q(x)}q(x)dx=E_{x\sim q}[f(x)\frac{p(x)}{q(x)}]

q(x)分布中采样数据, 需要再乘以一个weight\frac{p(x)}{q(x)}以修正两个分布之间的差异。

E_{x\sim p}[f(x)] \approx E_{x\sim q}[f(x)\frac{p(x)}{q(x)}]

通过重要性采样技巧将在线学习转换为离线学习

利用\theta\prime去和环境做互动,利用搜集到的数据对\theta进行更新。当\theta更新到一定次数之后,再利用\theta\prime重新去和环境做互动。

 推导出新的目标函数J^{\theta^{\prime}}({\theta}), 表示利用\theta \prime去采样进而更新参数\theta。引用重要性采用的前提是这两个分布不能相差太多,否则结果就会不好,那如何去避免相差太多呢?这就是PPO在做的事情,在训练的时候多加一个限制, 希望\theta\theta^{\prime}越像越好。PPO的前身是TRPO

就是两个限制的位置是不同的,PPO在实做上比TRPO要更加容易。KL距离不是指的参数上的距离,而是表现上的距离, 而是action上的距离。

PPO算法

 对应的函数图像如下所示:(横轴为第一项的值,纵轴为clip函数的输出,当第一项小于(1- \varepsilon),输出1- \varepsilon,当第一项大于1+ \varepsilon,输出1+ \varepsilon, 否则介于两者之间的话直接输出第一项的值。

 示意图:在绿色的线和蓝色的线之间取最小的那个值。如果A>0,取左图中的红线,如果A<0,取右图中的红线为目标函数。

这个复杂公式的目的在于控制与环境交互的Model和跟新参数的Model之间的差距不要过大。具体为:

如果A>0, 意味着应该增加状态动作对的几率,也即希p_\theta望越大越好,但又限制其和p_{\theta \prime}的比值不能超过1+ \varepsilon。A<0的时候也是类似的。

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值