深度强化学习原理--策略梯度法
1.概述
在倒立摆游戏中,agent 通过策略函数控制action,得到环境的反馈。而通过神经网络模型模拟策略函数,并使用梯度来优化策略的方法叫作策略梯度法(policy gradient method)。

2. 使用最简单的随机选择action的策略,进行3000次倒立摆游戏,每次回报情况如下:

3. 原始策略梯度法
3.1 在倒立摆游戏中策略函数的目标
基于策略函数 πθ 生成的一条轨迹
。这条轨迹发生的概率如下:

p(S0) 和 p(St+1|St,At) 是环境物理规律决定的,所以概率为1。所以
=
。
这条轨迹的回报
。
假设已经收集到所有的由 πθ 生成的轨迹,所有轨迹回报的期望是 𝐽(𝜃) = E𝜏∼𝜋𝜃 [𝐺(𝜏)] = Σ(Pr(𝜏) 𝐺(𝜏)) 。

现实中是不可能得到所有轨迹的。但是根据大数定律,通过尽可能多的轨迹,就可以近似 𝐽(𝜃)。
为了使回报最大化,所以策略函数的目标就是 𝐽(𝜃) 最大(𝜃 是神经网络的参数),可以使用梯度上升法,必须求解 𝐽(𝜃) 的梯度。需要求导的参数是 𝜃。首先就是要证明 𝐽(𝜃) 可导。
3.2 策略梯度定理的实践
3.2.1 数学推导

已知
3.2.2 数学推导结论的实践意义:
神经网络模拟 πθ ,输入为某个时间步的状态 St,输出为 At 的概率。Gτ 是一条轨迹的回报。通过尽可能多的轨迹就可以近似期望。
3.2.3 𝐽(𝜃) 在深度学习中可以看做 loss。在深度学习中梯度的方向是朝向 loss 变小的方向,为了使梯度朝向 loss 变大的方向,所以需要使用负梯度。等效的数学表达式 -𝐽(𝜃) 最小。
3.3 使用原始的策略梯度法,进行3000次倒立摆游戏,每次回报情况如下图。相比随机策略,回报提升明显。但是模型训练不稳定,损失无法收敛。
①训练过程中每条轨迹回报

②测试过程中每条轨迹回报

4. REINFORCE算法
4.1 原始的策略梯度中,无论在哪个时刻𝑡,式子中都是𝐺(𝜏)∇𝜃 log𝜋𝜃(𝐴𝑡|𝑆𝑡),我们始终会使用固定不变的权重𝐺(𝜏)来增加(或减少)采取行动 𝐴𝑡 的概率。但是采取行动𝐴𝑡 之前获得的奖励与执行𝐴𝑡 的概率无关。采取行动𝐴𝑡 的概率只和采取行动𝐴𝑡 之后期望获得的回报有关。所以将𝐺(𝜏) 修正为 G(t)。

4.2 使用REINFORCE算法,进行3000次倒立摆游戏,每次回报情况如下图。相比原始的策略梯度法,回报提升明显。但是模型训练不稳定,损失无法收敛。
①训练过程中每条轨迹回报

②测试过程中每条轨迹回报

4.3 数学推导
设 G(τ) =
。-b(St)则表示在 t 时刻之前的所有回报,在 t 时刻发生时,-b(St) 为常数。参考带基线的策略梯度法的数学证明。
5. 带基线(baseline)的策略梯度法
5.1 REINFORCE玩倒立摆有一个问题,那就是不管怎么推车,获得的期望回报都是正梯度。也就是说不管怎么玩,都会提升某个状态采取某个动作的概率,即使奖励很少也是如此。但是正常情况下,期望回报很少时,就应该降低某个状态下采取某个动作的概率。也就是说,应该期望回报很高时,给予策略正梯度,而在获得奖励很少时,给负的梯度。这就是带基线(baseline)的策略梯度法。

𝑏(𝑆𝑡)可以是任何函数
5.2 使用带基线(baseline)的策略梯度法,进行3000次倒立摆游戏,b(St)设定为5,每次回报情况如下图。相比REINFORCE算法,回报没有明显提升。模型依然训练不稳定,损失无法收敛。
①训练过程中每条轨迹回报

②测试过程中每条轨迹回报

5.3 基线的数学推导

首先证明下面公式成立
![]()
假设随机变量𝑥是基于概率分布𝑃𝜃(𝑥)生成的。𝑃𝜃(𝑥)会根据参数𝜃改变概率分布的形状。此时有以下式子成立:

由于𝑃𝜃(𝑥)是概率分布,因此所有𝑥的值的和为1。然后,求这个式子的梯度。

接下来,使用log梯度的技巧将式子展开,过程如下所示:

具体来说,用𝐴𝑡 代替𝑥,然后使用𝜋𝜃(·|𝑆𝑡)代替𝑃𝜃(·)。这样就可以得到以下式子。

对于任意常数 c 和随机变量 x,只要期望 E[x]存在,就恒有:
![]()
已知 E[x] = 0,代入即得:
![]()
将函数 𝑏(𝑆𝑡) 放入期望值

在整个 𝑡 = 0∼𝑇的范围都成立,所以可以得到以下式子:

6. 总结: 在深度学习中,使用的训练数据集是固定不变的,训练数据集像标准答案一样,神经网络只要通过更新参数不断地贴近训练数据集。但是在强化学习中,训练数据是每一轮根据策略函数生成的新的轨迹,生成轨迹的质量好坏无法控制,策略神经网络参数更新会受到训练数据集质量的影响。之所以还能取得相对随机选择 action 策略好的效果,主要是因为:在策略函数参数更新的时候,好的动作的正梯度比较大,坏的动作正梯度比较小,基于动作概率的总和是1,所以好的动作对策略函数参数的影响超过了坏的动作。但是理论上讲期望回报很高时,给予策略正梯度,而在获得奖励很少时,给负的梯度。另一原因是在强化学习中很难找到合适的学习率,这些原因就会导致训练不稳定和回报不佳。
- 点赞
- 收藏
- 关注作者
评论(0)