Policy Gradient(策略梯度)

基本思想

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

【李宏毅机器学习课程笔记】深度强化学习(二)——PPO(Proximal Policy Optimization)
Policy可以理解为一个包含参数 θ \theta θ的neutral network,它将Observation中观察到的变量作为输入,将各个可能执行的action的概率向量作为输出,并基于该概率决定下一步要执行的action。

【李宏毅机器学习课程笔记】深度强化学习(二)——PPO(Proximal Policy Optimization)
我们称游戏从开始到结束的一个完整的回合叫做Episode,则每个Episode是由一个初始状态加上若干个行动action和状态state的组合形成的一个序列构成的(下文称该序列为 τ \tau τ)。每完成一个action,机器会得到一个reward,游戏的目标是让reward最大化,亦即reward是我们的目标函数。

给定一个行动状态序列 τ \tau τ, 我们可以得到它对应的收益reward,通过控制actor(实质是控制参数 θ \theta θ),我们可以得到不同的收益。由于actor采取的行动和基于某一个环境下采取行动后得到的状态state是随机的,故我们只能得到一个期望值,最终的目标是要是这个期望值达到最大,该期望值的表示如下图。
【李宏毅机器学习课程笔记】深度强化学习(二)——PPO(Proximal Policy Optimization)
其中 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的概率

【李宏毅机器学习课程笔记】深度强化学习(二)——PPO(Proximal Policy Optimization)
而最终的目标就是要使 R ‾ θ {\overline R _\theta } Rθ,即采取某一个行动状态序列的概率和该采取该序列获得的reward的乘积之和达到最大。

Policy Gradient

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

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

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

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′ θ 是固定的,采集的样本可以被重复使用。

PPO(proximal policy optimization)

相关文章:

  • 2021-08-18
  • 2021-12-21
  • 2021-08-08
  • 2021-06-14
  • 2021-04-01
  • 2021-12-01
  • 2021-04-29
  • 2021-08-02
猜你喜欢
  • 2021-05-18
  • 2021-09-05
  • 2021-09-17
  • 2021-07-03
  • 2021-11-05
  • 2021-12-12
  • 2021-05-05
相关资源
相似解决方案