【李弘毅深度强化学习】2,Proximal Policy Optimization (PPO)

这一节主要讲解的是policy gradient从on policy 到off policy的转变

on policy:和环境交互的agent和要学习的agent是一个agent。举个例子就是阿光自己下棋,并且学习如何下棋。自己在探索,自己在学习。

off policy:和环境交互的agent和要学习的agent不是一个agent。举个例子就是阿光看佐为下棋,阿光在学习。就是说agent用别人的数据在进行学习。就像皇帝仅仅是在朝听政,各个大臣来向皇帝汇报情况。

平时我们自己使用的policy gradient都是on policy。就是使用一个θ来求得一大堆的数据,之后更新这个θ1,但是得到θ1之后之前的θ就是错的,所以要用θ1来重新获得一大堆数据,所以整个过程就是比较墨迹的。所以我们思考如何能不需要一直用θ来获取数据,于是就有了off policy的情况

我们的目标是使用固定的θΠ来获取数据,之后一直使用这些数据来更新θ。无论以后θ如何改变,一直都使用这些数据

这里我们讲一种重要性采样的方法(普适性的):x服从p分布,我们计算f(x)的期望,但是p分布是很难计算(采样)的。于是我们引入一个比较容易计算(采样)的q分布,于是在分子分母同时乘以q(x),于是就变成了服从q分布的x来求期望,但是期望变成了最后的式子

我们研究了使用重要性采样实现on policy 到off policy的转换,我们知道期望值几乎是差不多的,但是我们不知道使用off policy以后方差的变化会是怎样。于是就计算了方差的公式,最后发现第二项对于方差的影响是很小的,但是第一项对于方差的影响还是有的。于是我们晓得,当使用重要性采样的时候,要保证只有p(x)和q(x)的区别不大,才会使得方差的区别很小。(如果从分布p到分布q的话,就要乘以p(x)/q(x))

我们使用一个直观一点的方式去理解这个问题,我们之前计算p分布下的期望,之后我们计算q分布下的期望。假设采样不是狠完全的情况下,计算p的时候大部分都是在y轴左侧,f(x)一般都是负数。但是计算q的时候,大部分都是在y轴的右侧,f(x)一般都是正值,但是p(x)/q(x)都是正数,所以如果采样不完全的时候,很可能计算的结果都是相反的。这就是p(x)和q(x)不一致所导致的问题,所以尽量p(x)需要和q(x)保持一致

我们之前使用on policy的时候是使用θ来产生数据,之后计算梯度,更新θ,之后使用更新后的θ再产生数据,更新梯度

但是off policy的方法,我们使用一个固定的θ′来产生数据,并用这些数据来更新θ,因此我们只需要使用一次θ′来产生数据即可,而无需一直来使用θ来更新数据了。

这个便是我们计算梯度的过程,第一个等式是我们计算on policy的,我们通过重要性采样来变成off policy,从此Aθ变成Aθ′,因为以后一直是用θ′这个策略来更新数据。

 之后我们把条件概率的值展开,但是条件概率的第二项我们不知道该怎么计算,同时我们也是无法计算的,因为出现游戏中出现哪个s的概率我们是不晓得的

倒数第二个式子是我们计算梯度的式子,最后一个式子是这个的原始式子

我们为了使θ和θ′不要相隔太远的话,我们引入了两个新的方法,一种是PPO / TRPO,ppo是trpo的改进版,在编程方面,前者是更加轻松的。引入一个KL(θ,θ′ ),如果θ,θ′ 相差太大,KL(θ,θ′ )的值就非常大,如果θ,θ′ 相差小,KL(θ,θ′ )的值就非常小。

ppo的主要流程,先找一个θ0去初试化θ,之后找到一个θk用来收集数据,收集一大堆数据以后,用???????=????????,??来更新θ。

在使用的过程中,可以动态的更新β,当kl的值过大的时候,意味着θ,θk之间差别很大,这时候意味着第二项的权重太小,不足以限制,于是就加大了β。反之,如果kl的值过小,就意味着θ,θk之间差别很小,意味着第二项已经起到了作用,所以就减小β

还有一种ppo2算法,其作用也是为了减少θ,θk之间差别,其中clip的式子就是图中蓝色的线,一直是取蓝色和绿色线的最小值。使得无论是A是偏大还是偏小,都不要使得θ,θk之间差别过大

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值