近端策略优化算法PPO

本文介绍近端策略优化算法(Proximal Policy Optimization)也就是PPO。


前言

在介绍PPO算法之前,首先需要介绍一下off-policy、on-policy概念。


一、on-policy和off-policy

1.1 on-policy和off-policy的概念

on-policy的概念就是和环境(enviorment)互动的智能体(agent)与要学习的智能体是同一个;off-policy的概念就是和环境(enviorment)互动的智能体(agent)与要学习的智能体不是同一个;
通俗来说on-policy就是我自己下棋去学习怎么提高自己的棋技,off-policy就是看别人下棋去学习怎么提高自己的棋技。
on-policy有一定的局限性,如果使用策略π(theta)去采集数据进行训练的话,当使用采集的数据更新参数theta,theta改变的时候就要重新去采集数据了,这样效率会比较低;off-policy的想法是用策略π(theta’)去采集数据,策略π(theta’)是固定的,采集出来的数据可以多次使用;

1.2 Importance Sampling的概念

Importance Sampling的概念就是说我们想要求服从概率分布为p(x)的函数f(x)的期望,我们想要从p(x)中采样一些点出来,用他们的平均值来近似f(x)的期望;但是现在我们并不知道概率分布p(x),那我们就无法从p(x)中采样一些点出来;但是我们知道一个概率分布q(x),我们可以从这个概率分布中采样一些点出来,那我们怎么从知道的q(x)的采样点来求出函数f(x)的期望呢?
在这里插入图片描述
可以看到在求期望的积分上除以q(x),再乘以q(x),此时我们就可以看到在q(x)采样的值前面乘以一个权重,再去求这些采样点的平均值就可以得到f(x)的期望了;此时,还有一个新的问题,那就是从q(x)采样一些点之后,求得的f(x)*p(x)/(q(x))的期望与原先相同,但是方差和原先f(x)的相等吗?差别大吗?
在这里插入图片描述
可以看到方差明显是不同的,第一项差了一个权重p(x)/q(x),这也就告诉我们不是随便找一个分布q(x)采样一些点就可以去求f(x)的期望的,分布q(x)不能和p(x)差太多,否则方差会差别很大,估计也就十分不准确了。

在这里插入图片描述
上图展示了on-policy如何转换为off-policy的过程;接下来看一看怎么更新off-policy的梯度;
在这里插入图片描述
从上面我们可以看到梯度更新的时候把p(theta)/p(theta’)给省略了,这里要解释一下为什么,其实最终的理由是我们不知道概率分布p(theta),所以就认为p(theta)/p(theta’)不重要吧,把这一项给省略掉了。

二、TRPO、PPO算法

2.1 Trust Region Algorithms

信赖域算法(Trust Region Algorithms)策略优化
假设有一个问题:给一个损失函数J,让你通过最大化J来得到最佳的参数θ;
在这里插入图片描述
信赖域(Trust Region Algorithms)的概念就是一个θold的领域,半径为r;在该邻域内我们用L去近似J,L可以是J的一阶、二阶或者更高阶的泰勒展开式;信赖域算法反复执行两个步骤:
1.给定了参数θold,构建L函数在θold的邻域内近似J函数; 2.在θold的邻域内最大化L得到新的参数θnew;
在这里插入图片描述
下图是近似原理的图解:可以看到紫色的线和绿色的线只是在一个区间内比较相近,这个区间就是邻域,然后我们通过梯度上升的方法去最大化L,得到新的参数θnew;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 Stochastic Gradient Ascent

在这里插入图片描述
随机梯度上升方法就是求解上述类似的给一个损失函数J,让你通过最大化J来得到最佳的参数θ的问题时;
首先J是对状态S求的期望,因此对状态S随机抽样得到观测值s;
第二步是对价值函数关于θ求导得到随机梯度(随机梯度是对梯度的蒙特卡洛近似);
第三步是梯度上升得到新的参数θnew;

2.3 TRPO算法

1)TRPO是一种基于策略梯度的强化学习方法,因此首先来说一说策略梯度的一些概念和公式;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
首先来说一说TRPO算法相对于基于策略梯度的强化学习算法的优点:一是比比策略梯度算法更鲁棒,二是比策略梯度算法采样效率更高;
2)首先来看TRPO算法的第一步,构造L近似J,状态S是从环境中的状态转移函数,动作A是从策略函数中采样得到的;

在这里插入图片描述
我们采样出一条轨迹,用采样得到的轨迹里的值来做蒙特卡洛近似,近似关于状态S和动作A的期望也就是函数J;

在这里插入图片描述
接下来近似Qπ(si,ai),我们用轨迹数据的折扣回报来近似Qπ(si,ai);

在这里插入图片描述
在这里插入图片描述
3)进行TRPO算法的第二步Maximization;在最大化的过程中可以用范数作为约束条件,也可以用关于参数θ的策略和参数θold的策略的KL散度来作为约束条件;

在这里插入图片描述

4)最后是TRPO算法的总结:

在这里插入图片描述

2.4 PPO(Proximal Policy Optimization)算法

首先来看看TRPO与PPO的区别之处:TRPO算法把两个策略网络的KL散度小于一个值作为了约束条件,而PPO算法把两个策略网络的KL散度加入了损失函数J中;

在这里插入图片描述
明白了TRPO算法,PPO算法就看起来简单了,因为PPO是对TRPO的改进;下面是PPO算法的步骤

在这里插入图片描述

PPO算法还有另一种改进形式:剪枝PPO算法;
在这里插入图片描述

最后解释一下TRPO、PPO算法为什么是on-policy的;
在这里插入图片描述

总结

本文对TRPO、PPO算法进行了简单讲解,欢迎大家一起讨论学习,如有不当请指出纠正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值