随机梯度下降和Q学习中的微观随机性

时间:2016-12-24 21:41:59

标签: machine-learning neural-network reinforcement-learning q-learning

背景(可以跳过):

在训练神经网络时,通常使用随机梯度下降(SGD):而不是计算训练集所有成员的网络误差,并通过梯度下降更新权重(这意味着在每次权重更新之前等待很长时间) ,每次使用一小部分成员,并将产生的错误视为对真实错误的无偏估计。

在强化学习中,有时Q学习是通过神经网络实现的(如在深度Q学习中),并且使用经验重放:而不是通过代理的先前(状态,动作,奖励)来更新权重,使用旧的随机样本(状态,动作,奖励)进行更新,以便后续更新之间没有相关性。

问题:

以下断言是否正确?:在SGD中进行小批量处理时,每个小批量进行一次权重更新,而在Q-learning中进行小额更新时,每个小批量成员会进行一次权重更新?

还有一件事:

我认为这个问题更适合Cross Validated,因为它是关于机器学习的概念性问题,与编程无关,但通过查看Stackoverflow上标记为reinforcement-learning的问题,我得出结论在这里提出这个问题是规范性的,我可以得到的答复数量更大。

1 个答案:

答案 0 :(得分:0)

答案是否定的。可以使用小批量中的所有示例立即更新Q网络的参数。用(s1,a1,r1,s'1),(s2,a2,r2,s'2)表示小批量的成员,......然后相对于当前的Q网络估计损失:

L =(Q(s1,a1) - (r1 + max {Q(s'1,_)}))^ 2 +(Q(s2,a2) - (r2 + max {Q(s'2) ,_)}))^ 2 + ...

这是对真实损失的估计,这是对所有(s,a,r)的期望。这样,Q的参数更新类似于SGD。

注意:

  • 上面的表达式也可能包含折扣因子。
  • 估计是偏差的,因为它不包含表示由s'引起的方差的项,但这不会改变梯度的方向。
  • 有时,每个平方项中的第二个Q网络不是当前的Q而是过去的Q(双Q学习)。