本文主要内容来源于 Berkeley CS285 Deep Reinforcement Learning
本节开始,我们开始讨论强化深度学习的算法, 第一个介绍的算法是Policy Gradients。 PG 算法直接利用梯度,对收益函数最大值求解。 是一种最直接的RL 算法。
既然Policy 决定了Reward期望, 我们要得到Reward的最大期望, 最直接的就是利用Policy 函数梯度求解。
在 优化算法设计 中, 我们推出了收益函数的微分形式:
![](https://img.haomeiwen.com/i25067830/ee62a99becd849cc.png)
例子:高斯Policy
这里用一个例子, 看看推导的结果是什么。 这里假设 Policy 是一个高斯函数:
![](https://img.haomeiwen.com/i25067830/c42f940d88fa2dfb.png)
其中, 表示一个用神经网络拟合的函数, 对于输入
会给出
的概率,这个概率,就是高斯分布的均值,
代表协方差矩阵。
其中 代表常数项
对 求微分可以得到:
![](https://img.haomeiwen.com/i25067830/cd35014b615024b8.png)
例子解释
对于
![](https://img.haomeiwen.com/i25067830/f98dd928fb2eeb0a.png)
这个形式和收益函数的最大似然函数是一样的, 除了多了一个Reward 项。 所以说 Policy Gradient 是 Reward Weighted Maximum Likelihood 。
![](https://img.haomeiwen.com/i25067830/bbad0341063db985.png)
带入到RL算法框架中:
![](https://img.haomeiwen.com/i25067830/deac24e384d91c2e.png)
上面的算法的效果,就是让好的事情更多的发生, 不好的事情更少的发生。
Observation vs States
我们前面说过 States 在代表了系统的全部状态, 但是在实际使用中, 我们往往无法获知系统的全部状态, 我们获得的, 只是自己的观测值: Observation 。 如果是这样,Policy Gradients 还能用么?
答案是: 可以, 原因是:
- State 是在 Markov 过程中的前提, 但是在这里, 我们并没有用到 Markov 性质。
可以直接用 Observation 替代 State, 获得性的梯度函数:
![](https://img.haomeiwen.com/i25067830/4ebdda5c37aa5a48.png)
Policy Gradients 的一个问题
![](https://img.haomeiwen.com/i25067830/bf02bc12c13401ee.png)
从这个公式我们可以得知, 梯度 取决于2个因素
- 对数概率
: 这部分取决于 Policy
- Rewards:
因此,如果有一个样本 对应的
, 那么这个方法就会让 Policy
更多的产生类似的结果。 这样就会造成一个问题, 如果平均Reward 就是10, 而
, 因为它大于0 ,算法依然会让Policy 偏向于这个不太好的结果。 实际上, 我们只关系那些 Reward > 10 的结果。
![](https://img.haomeiwen.com/i25067830/065ec4e23c2ceab8.png)
上图是一个例子:
训练数据 因为对应
, 依然对分布产生了牵引作用, 导致最后训练结果是蓝色虚线。 从图中可以看书, 其实
是小于平均 Reward 的。
- 蓝色实线: 未训练 Policy 产生的
概率分布
- 蓝色虚线: 训练后Policy 产生的
概率分布
- 绿色手绘实线:我们希望产生的概率分布
- 黄色bar : 不同的样本
- y 轴: 对于分布来说,是
出现的概率。 对黄色 bar 来说, 是 Reward
网友评论