【问题标题】:Minibatching in Stochastic Gradient Descent and in Q-Learning随机梯度下降和 Q-Learning 中的 Minibatching
【发布时间】:2017-05-10 01:54:21
【问题描述】:

背景(可以跳过):

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

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

问题:

以下断言是否正确?:当 SGD 中的 minibatching 时,每个整个 minibatch 执行一次权重更新,而 Q-learning 中的 minibatching 时,minibatch 中的每个成员执行一次权重更新?

还有一件事:

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

【问题讨论】:

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


【解决方案1】:

答案是否定的。可以使用小批量中的所有示例一次更新 Q 网络的参数。用 (s1,a1,r1,s'1),(s2,a2,r2,s'2),... 表示 minibatch 的成员,然后相对于当前 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 学习)。

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 2016-06-13
    • 2016-05-16
    • 2021-12-18
    • 2018-12-10
    • 2021-02-20
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多