在线学习和离线学习
- 在线学习:和环境互动的Agent以及和要学习的Agent是同一个, 同一个Agent,一边和环境做互动,一边在学习。
- 离线学习: 和环境互动及的Agent以和要学习的Agent不是同一个,学习的Agent通过看别人完来学习。
利用新的参数去采样一次,然后更新
多次。那么怎么做呢?利用重要性采样的方法。
重要性采样
表示从分布
中采样数据,但如果我们无法从
分布中采样数据,只能从另一个分布中采样
。对期望值进行修正
然后可以改成对分布中的取期望值。
从分布中采样数据, 需要再乘以一个weight
以修正两个分布之间的差异。
通过重要性采样技巧将在线学习转换为离线学习
利用去和环境做互动,利用搜集到的数据对
进行更新。当
更新到一定次数之后,再利用
重新去和环境做互动。
推导出新的目标函数, 表示利用
去采样进而更新参数
。引用重要性采用的前提是这两个分布不能相差太多,否则结果就会不好,那如何去避免相差太多呢?这就是PPO在做的事情,在训练的时候多加一个限制, 希望
和
越像越好。PPO的前身是TRPO
就是两个限制的位置是不同的,PPO在实做上比TRPO要更加容易。KL距离不是指的参数上的距离,而是表现上的距离, 而是action上的距离。
PPO算法
对应的函数图像如下所示:(横轴为第一项的值,纵轴为clip函数的输出,当第一项小于(
),输出
,当第一项大于
,输出
, 否则介于两者之间的话直接输出第一项的值。
示意图:在绿色的线和蓝色的线之间取最小的那个值。如果A>0,取左图中的红线,如果A<0,取右图中的红线为目标函数。
这个复杂公式的目的在于控制与环境交互的Model和跟新参数的Model之间的差距不要过大。具体为:
如果A>0, 意味着应该增加状态动作对的几率,也即希望越大越好,但又限制其和
的比值不能超过
。A<0的时候也是类似的。