当前位置:   article > 正文

【李宏毅机器学习课程笔记】深度强化学习(二)——PPO(Proximal Policy Optimization)_ppo算法李宏毅kl

ppo算法李宏毅kl

Policy Gradient(策略梯度)

基本思想

首先需要知道的是,在Reinforcement Learning里面会有一个Agent跟一个Environment。这个Agent会有Observation看到世界种种变化,这个Observation又叫做State,这个State指的是环境的状态,也就是你的machine所看到的东西。但机器没有办法看到环境的所有状态,所以才会有这个partial of state 这个想法,这个partial of state其实就是Observation。machine会做一些事情(Action),Action会影响环境,会跟环境产生一些互动。因为它对环境造成的一些影响,它会得到Reward,即这些影响是积极的还是消极的。

图1 强化学习的基本思想
Policy可以理解为一个包含参数 θ \theta θ的neutral network,它将Observation中观察到的变量作为输入,将各个可能执行的action的概率向量作为输出,并基于该概率决定下一步要执行的action。

在这里插入图片描述
我们称游戏从开始到结束的一个完整的回合叫做Episode,则每个Episode是由一个初始状态加上若干个行动action和状态state的组合形成的一个序列构成的(下文称该序列为 τ \tau τ)。每完成一个action,机器会得到一个reward,游戏的目标是让reward最大化,亦即reward是我们的目标函数。

给定一个行动状态序列 τ \tau τ, 我们可以得到它对应的收益reward,通过控制actor(实质是控制参数 θ \theta θ),我们可以得到不同的收益。由于actor采取的行动和基于某一个环境下采取行动后得到的状态state是随机的,故我们只能得到一个期望值,最终的目标是要是这个期望值达到最大,该期望值的表示如下图。
在这里插入图片描述
其中 R ( τ ) R(\tau ) R(τ)表示执行某一个序列 τ \tau τ得到的reward, ρ θ ( τ ) {\rho _\theta }(\tau ) ρθ(τ)表示在给定的参数 θ \theta θ下执行了序列 τ \tau τ的概率,具体来说,是在出现了某初始状态的概率上,执行某个action,并返回某个状态的概率的乘积,再乘上下一个action的概率和返回下一个状态的乘积…以此类推,如下图所示:

  • a t {a_t} at表示第 t {t} t个action,
  • s t {s_t} st表示第 t {t} t个状态( s 1 {s_1} s1为初始状态),
  • p θ ( a t ∣ s t ) {p_\theta }({a_t}|{s_t}) pθ(atst)表示在状态 s t {s_{t}} st的基础上,执行 a t {a_{t}} at的概率,
  • p ( s t + 1 ∣ s t , a t ) p({s_t+1}|{s_{t}},{a_{t}}) p(st+1st,at)表示在状态 s t {s_{t}} st的基础上,执行 a t {a_{t}} at后得到 s t + 1 {s_{t+1}} st+1的概率

在这里插入图片描述
而最终的目标就是要使 R ‾ θ {\overline R _\theta } Rθ,即采取某一个行动状态序列的概率和该采取该序列获得的reward的乘积之和达到最大。

Policy Gradient

得到目标函数之后,我们利用之前学过的Gradient Descent思想求解目标函数最大值时对应的参数 θ \theta θ。但由于我们要求的是最大值,具体实践时与之前求损失函数最小值所用的方法相反,这里使用的是Gradient Ascent。当然思路是大致相同的,首先还是要求解梯度。

求解梯度的步骤如下,以前文所述目标函数为基础,对参数 θ \theta θ 求导,其中,对概率加权的reward求和就是求reward的期望,因此有红框部分的改写,又因为训练的过程中会进行采样训练,采样个数为N,因此公式可以近似表示为N词采样得到的reward的平均。

在这里插入图片描述

PPO算法

从on-policy到off-policy

on-policy和off-policy的区别,在原课程中是这样解释的:

on-policy:The agent learned and the agent interacting with the environment are the same;
off-policy:The agent learned and the agent interacting with the environment are different;

举例来说,当一个学习下棋的machine,它自己和其他人或其他machine下棋,在下棋的过程中学习胜利的方法,这种学习是on-policy的;当它不自己参与而是看着别人下棋同时进行学习,这样的学习则是off-policy的;

Q:为什么要引入off-policy的机制?
A: 如果我们使用 π θ \pi_\theta πθ 来收集数据,那么参数 θ \theta θ 被更新后,我们需要重新对训练数据进行采样,这样会造成巨大的时间消耗。但利用 π θ ′ \pi_{\theta}′ πθ来进行采样,将采集的样本拿来训练 θ \theta θ θ ′ \theta′ θ 是固定的,采集的样本可以被重复使用。

off-policy的原理:Important Sampling(重复性采样)
Important Sampling 主要解决这样一个问题:用于求解一个概率分布的期望值时,所用的样本数据是由另一个概率分布所产生的。
具体做法:根据目标策略 π \pi π 和行为策略 b b b 产生相同策略序列的的概率的比值作为权重加权求和得到reward。我们将这个比值称为importance-sampling ratio

在这里插入图片描述
(虽然得到某个指定的序列除了和策略参数有关外还与环境相关,但比值可以消掉环境带来的影响,即消掉上图第二项中的转移概率 p p p。)

需要注意的是,目标策略 π \pi π和行为策略 b b b的参数(在本文中即 θ \theta θ θ ′ \theta′ θ)不能相差过大,否则方差会出现较大的差别。

PPO(proximal policy optimization)

  1. 初始化policy的参数 θ \theta θ
  2. 在每一次迭代中,使用 θ ′ \theta' θ 来和环境互动,收集状态和行动并计算对应的目标函数
  3. 不断更新参数,找到目标函数最优值对应的参数 θ \theta θ

为了防止上面提到的 θ \theta θ θ ′ \theta' θ相差过大,我们在问题中加入了KL惩罚因子以约束这个行为。首先需要设置一个能接受的最大差别 K L max ⁡ KL_{\max } KLmax,当当前的KL大于 K L max ⁡ KL_{\max} KLmax时增大 β \beta β(增大惩罚力度),反之则减小 β \beta β(减小惩罚力度)

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/928219
推荐阅读
相关标签
  

闽ICP备14008679号