深度强化学习(5) Policy Gradients (1)

2022-02-08  本文已影响0人  数科每日

本文主要内容来源于 Berkeley CS285 Deep Reinforcement Learning


本节开始,我们开始讨论强化深度学习的算法, 第一个介绍的算法是Policy Gradients。 PG 算法直接利用梯度,对收益函数最大值求解。 是一种最直接的RL 算法。

既然Policy 决定了Reward期望, 我们要得到Reward的最大期望, 最直接的就是利用Policy 函数梯度求解。

优化算法设计 中, 我们推出了收益函数的微分形式:

微分形式

例子:高斯Policy

这里用一个例子, 看看推导的结果是什么。 这里假设 Policy 是一个高斯函数:

image.png

其中, f_{neural network}(s_{t}) 表示一个用神经网络拟合的函数, 对于输入 s_{t} 会给出 a_{t} 的概率,这个概率,就是高斯分布的均值, \Sigma 代表协方差矩阵。

log\pi_{\theta}(a_{t}|s_{t}) = log[det(2\pi\Sigma)^{-\frac{1}{2}}e^{-\frac{1}{2}(a_{t}-f)^{T}\Sigma^{-1}(a_{t}-f)}]\ = Const+ (-\frac{1}{2}) (a_{t}-f)^{T}\Sigma^{-1}(a_{t}-f)

其中 Const 代表常数项 det(2\pi\Sigma)^{-\frac{1}{2}}

log\pi_{\theta}(a_{t}|s_{t}) 求微分可以得到:

image.png

例子解释

对于

image.png

这个形式和收益函数的最大似然函数是一样的, 除了多了一个Reward 项。 所以说 Policy Gradient 是 Reward Weighted Maximum Likelihood 。

image.png

带入到RL算法框架中:

image.png

上面的算法的效果,就是让好的事情更多的发生, 不好的事情更少的发生。

Observation vs States

我们前面说过 States 在代表了系统的全部状态, 但是在实际使用中, 我们往往无法获知系统的全部状态, 我们获得的, 只是自己的观测值: Observation 。 如果是这样,Policy Gradients 还能用么?

答案是: 可以, 原因是:

  1. State 是在 Markov 过程中的前提, 但是在这里, 我们并没有用到 Markov 性质。

可以直接用 Observation 替代 State, 获得性的梯度函数:

image.png

Policy Gradients 的一个问题

Policy Gradients

从这个公式我们可以得知, 梯度 \bigtriangledown _{\theta} J(\theta) 取决于2个因素

因此,如果有一个样本 \tau_{i} 对应的 r(\tau_{i}) > 0, 那么这个方法就会让 Policy \pi_{\theta} 更多的产生类似的结果。 这样就会造成一个问题, 如果平均Reward 就是10, 而 r(\tau_{k}) = 5, 因为它大于0 ,算法依然会让Policy 偏向于这个不太好的结果。 实际上, 我们只关系那些 Reward > 10 的结果。

image.png

上图是一个例子:

训练数据 \tau_{1} 因为对应 r(\tau_{1}) > 0, 依然对分布产生了牵引作用, 导致最后训练结果是蓝色虚线。 从图中可以看书, 其实r(\tau_{1}) 是小于平均 Reward 的。

上一篇 下一篇

猜你喜欢

热点阅读