Policy_Gradlient算法详解
一.概述
什么是策略梯度?
直接根据状态输出动作或者动作的概率。那么怎么输出呢,最简单的就是使用神经网络啦!我们使用神经网络输入当前的状态,网络就可以输出我们在这个状态下采取每个动作的概率,那么网络应该如何训练来实现最终的收敛呢?我们之前在训练神经网络时,使用最多的方法就是反向传播算法,我们需要一个误差函数,通过梯度下降来使我们的损失最小。但对于强化学习来说,我们不知道动作的正确与否,只能通过奖励值来判断这个动作的相对好坏。基于上面的想法,我们有个非常简单的想法:如果一个动作得到的reward多,那么我们就使其出现的概率增加,如果一个动作得到的reward少,我们就使其出现的概率减小。
二.DQN算法
1、构造标签
前面提到DQN中的CNN作用是对在高维且连续状态下的Q-Table做函数拟合,而对于函数优化问题,监督学习的一般方法是先确定Loss Function,然后求梯度,使用随机梯度下降等方法更新参数。PG的目标是最大化收益R,对收益R求导,得到Loss Function
Q-Learning的更新公式:
PG的Loss Function为:
四、 代码详解
代码链接
链接:https://pan.baidu.com/s/1VE_G2RJFu6p0OoKBAyApKQ?pwd=lu6z
提取码:lu6z