本文是这篇博文的注,如有需要请以其为纲
知识勘误其他笔记链接
易混知识勘误_from李宏毅P1-----Policy Gradient
易混知识勘误_from李宏毅P2——PPO\Off-policy\On-policy
易混知识勘误_from李宏毅P4——Actor-Critic/A3C
易混知识勘误_from李宏毅P5——Sparse Reward的解决方法(目标太难怎么办)
易混知识勘误_from李宏毅P6——Imitation Learning 模仿式学习
目录
1.难题:On-policy & Off-policy 有啥区别?
2.为啥训练的policy和样本的policy不一致也可以用?Importance Sampling
3.怎么理解Importance Sampling要求多次采样才能取等的限制?
4.PPO(Proximal Policy Optimization)是怎么回事?
1.难题:On-policy & Off-policy 有啥区别?
若agent与环境互动,则为On-policy(此时因为agent亲身参与,所以互动时的policy和目标的policy一致);若agent看别的agent与环境互动,自己不参与互动,则为Off-policy(此时因为互动的和目标优化的是两个agent,所以他们的policy不一致)。
两者在采样数据利用上的区别:
- On:这时要求采样所用的policy和目标policy一致,采样后进行学习,学习后目标policy更新了,此时需要把采样的policy同步更新以保持和目标policy一致,这也就导致了需要重新采样。
- Off:这种情况下,反正采样的plicy也和目标的policy不一样,所以你目标的policy随便更新,采样后的数据可以用很多次也可以。
2.为啥训练的policy和样本的policy不一致也可以用?Importance Sampling
首先声明一下:Importance Sampling的概念就是,把一个分布和函数值都会变的函数的期望,转化成分布不变函数值大变的函数的期望。
从Expected Reward观察on-policy:
故事:现在有一些档案,其中不同的档案有不同的分数,其中当档案的比例变了后,当把档案放回柜子的时候,柜子有魔法将会修改档案的内容。现在先把所有档案从柜子里拿出来,之后首先要把一些发潮的档案扔掉(有些没有被采样到),然后再通过扔掉一些档案调整各个档案的数量比,之后随机选10个出来,让分数最高。然后把档案放回柜子,此时因为档案的比例变了,所以档案的内容也变了。
上面的故事中,不同的档案就是不同的,档案的分数就是的,扔档案调整比例就是调整policy ,那么会根据比例调整档案内容的设定是从哪里来的呢?那是因为(档案)的内容和policy(比例)有关,当policy改变的时候,必然发生改变。
现在的问题是,每次从柜子中拿档案这个过程是由小蚂蚁进行的,这个过程可能要花费10天,我们想能不能让小蚂蚁只拿一次档案呢?
我们的目标是求这个:即,但是E的角标的p()一直在变,我们不希望他一直在变,所以用下面这个式子代替之,这里的q不变,目的达成!
为什么p()一直在变呢? --因为我们的优化对象是,p()中的自变量在变,所以它的函数值也在变
为什么我们不期望他一直在变呢?--因为(Trajectory)是由(policy)决定的,当policy改变的时候,就会发生改变,这时候就需要重新生成一次,而这是十分费时间,所以不希望p()一直在变
3.怎么理解Importance Sampling要求多次采样才能取等的限制?
如上图,首先明确:f(x)是一个函数,p是x的出现概率,q是x的另一种出现概率。期望获得p下x的f(x)的期望,但是目前只能对q下x进行采样。这时可通过第一行的式子进行转换。
上式的局限性:若采样很多,虽然概率小,但是也可能采到最左侧的那个采样点,因为它的p/q都很大,所以右式和左式可以相等;若采样不多,则上面的等式可能不成立。
4.PPO(Proximal Policy Optimization)是怎么回事?
Importance Sampling结合到RL中,这样就可以把一个policy所得到的集合多次使用。但是因为训练所得的policy 和样本数据的policy 差别太大,所以对原问题加一个constrain KL(,)
KL的含义是,衡量\theta 和 \theta'有多像。这里的KL衡量的是两者的behaviour的距离(给定s时输出的a[这个其实是用概率向量表征]的差距)
PPO的前身是TRPO(Trust Region Policy Opti),PPO相比TRPO,把KL结合到了J的式子中,少了一个约束
【beta】
其中KL前面的参数\beta如何设置?先设置一个能接受的最大差别KL_{max},然后对J进行优化,并观察KL的大小,若KL大于你的KL_{max},则说明J没把KL放在眼里,就把\beta调大。
5.PPO2-PPO的改进版
相比PPO,PPO2是对两个线取min,仔细看后面的那个其实和前面的那个一样只是系数不同,那个clip的含义是:对第一个参数的上下限进行限制,下限为2参,上限为3参。整体的图像如下所示
上图横轴为/,表示两个policy的差别,绿色为min后的第一个成员,蓝线为min的第二个成员。红线为A>/<0 时的J。
当A>0时期望尽可能地大,但是不能和差别过大,如左图,过大则为平。