- on-policy
与环境交互的agent和学习的agent是同一个agent - off-policy
与环境交互的agent和学习的agent是不同的agent
shortcoming:on-policy方法,在每次做gradient ascent需要重新sample training data。
off-policy方法与环境交互的agent参数是固定的,sample的training data可以多次使用。
Import sampling
从概率分布p中sample ,
期望为
在不能对p直接采样的情况下,有
因此,我们对概率分布q进行采样,能够得到相同的的期望。
但注意Variance并不是一致的,对原概率分布p采样和对q采样的Variance如下:
在上式中,可以看到两项Variance的第二项相同,第一项相差。
在采样过少的情况下,分布p与q相差过大时,期望可能会不准确,如下图所示,当没有采样到p右边的点时,期望为负值,只有当采样到足够多次数,采样到q左边点,会有一个较大的weight使得期望一致。
因此,p和q相差不能太多。
公式
从on-policy到off-policy,有
- Use
to collect data. When
is updated, we have to sample training data again.
- Goal: Using the sample from
to train
is fixed, so we can re-use the sample data.
- sample the data from
.
- use the data to train
many times.
实际上,policy gradient时,不会整个trajectory一个分数,而是每一个 state-action pair来计算分数。结合重要采样,实际整体公式为:
注意这里,应为
,为与环境交互的agent得到的价值。
进一步拆解有
另外,可以认为不同的agent下state出现的概率对问题没有影响,(实际上state过多且稀疏,如都每个state均为image,该项计算也非常困难)可以舍去。
又有公式
最终有公式形式为:
PPO
由重要采样部分我们可知,分布和
相差不能太多,因此PPO添加了一个约束两个分布相似性,形式为:
注意描述的是两个agent行为上的距离,而不是参数上的距离。
PPO algorithm
- 初始化参数
- 迭代:使用
与环境交互,收集
,,以及计算
对于超参数,有自适应方法,设定最大和最小阈值,当大于最大阈值,减少
,小于最小阈值,增大
。
PPO2 algothrim
clip的意思是,三个参数,第一项小于第二项,就输出第二项,第一项大于第三项,输出第三项
,否则在两者之间输出为第一项。
PPO2不用计算KL,通过上式的目标函数限制p和q的分布的差异。