方差很高时,随机变量的取值可能会远远偏离均值。
策略梯度方法的思想:增加良好动作的执行概率,并减少不良动作的执行概率。
为了提高Reinforce的稳定性,从梯度量表中减去了平均奖励。为什么这么做?
假设有一个非常简单的场景,在该场景中我们对梯度进行一次优化,有三个动作,它们的总折扣奖励值不同,分别为Q1、Q2和Q3Q_1、Q_2和Q_3Q1、Q2和Q3.令Q1Q_1Q1和Q2Q_2Q2都等于某个小的正数,而Q3Q_3Q3是某个大的负数。由这三个步骤得到的综合梯度将试图使策略原理第三步的动作,而稍微向第一步和第三步靠拢。
但若奖励永远是正的,只有价值不同。那么策略将会向第三步稍微靠拢。减去平均值使得策略梯度标准化。避免了策略梯度的偏移。
减小方差的下一步是使基线与状态有关 ,因为不同的状态可能具有非常不同的基线。总奖励本身可以表示为状态的价值加上动作的优势值:Q(s,a)=V(s)+A(s,a)Q(s,a) = V(s) + A(s,a)Q(s,a)=V(s)+A(s,a),和dueling DQN一样。
所以可以用V(s)来作为基线,梯度缩放因子将只是优势值A(s,a)A(s,a)A(s,a)。
现在只需要知道V(s)V(s)V(s)是多少即可,我们可以使用另一种神经网络,为每个观察近似V(s)V(s)V(s)。要训练它,可以采用在DQN方法中使用过的相同的训练过程:执行Bellman步骤,然后最小化均方误差以改进V(s)V(s)V(s)的近似值。
这种方法被称为Advantage Actor-Critic方法,简称A2C。
训练步骤:
强化学习的样本之间的相关性打破了随机梯度下降的优化至关重要的独立同分布的假设。带来的负面效果为梯度的方差很大,这意味着训练批包含非常相似的样本,所有这些样本都将我们的网络推向了相同的方向。从全局来看,这些样本可能将网络推向了完全错误的方向。
最常用的解决方案就是使用多个并行环境来收集状态转移,所有这些环境均使用当前的策略。我们现在训练的是从不同环境中获得的不同的片段数据,这打破了同一个片段中样本的相关性。但这样采样效率低下,因为使用一次就抛弃了。