背景(可略去):
在训练神经网络时,通常采用随机梯度下降(SGD)方法,而不是用梯度下降来计算训练集中所有成员的误差,而不是用梯度下降来更新权值(这意味着每次更新权值之前都要等很长时间),而是每次使用最小的一批成员,将产生的误差看作是对真实误差的无偏估计。
在强化学习中,有时Q-学习是用神经网络实现的(如深度Q-学习),并且使用经验重放:而不是根据代理的前一次(状态、动作、奖励)更新权重,而是使用一小批旧的随机样本(状态、动作、奖励)进行更新,这样后续更新之间就没有关联了。
问题是:
下面的断言是正确的吗?:当SGD中的微型批处理时,每个小批执行一次权重更新,而在Q-学习中,当小型化批处理中的每个成员执行一次权重更新时?
还有一件事:
我认为这个问题更适合于Cross Validated,因为它是一个关于机器学习的概念性问题,与编程无关,但是通过查看Stackoverflow上标记为reinforcement-learning的问题,我得出结论,在这里问这个问题是规范的,我可以得到更多的答复。
发布于 2017-01-07 11:03:14
答案是否定的。Q-网络的参数可以一次更新,使用小型批处理中的所有示例。用(s1,a1,r1,s'1),(s2,a2,r2,s'2),.然后估计损失相对于当前的q-网络:
L=(s1,a1)-(r1+max{q(s(s‘1,_)})^2+(q(s2,a2)-(r2+max{Q(s'2,_)})^2+.
这是对真实损失的估计,它是对所有(s,a,r)的期望。这样,Q参数的更新与SGD相似。
备注:
https://stackoverflow.com/questions/41317030
复制相似问题