【问题标题】:How to calculate gradients for a neural network with theano when using Q-Learning使用 Q-Learning 时如何使用 theano 计算神经网络的梯度
【发布时间】:2016-04-01 20:09:02
【问题描述】:

我正在尝试使用标准的全连接神经网络作为 Q-Learning 中动作值的基础。我使用http://deeplearning.net/tutorial/mlp.html#mlp 作为参考,特别是这一行:

gparams = [T.grad(cost, param) for param in classifier.params]

我想使用 Q-Learning 策略控制方法(如http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node65.html 中所述)计算与最后一个操作相关联的输出单元的错误,并将其他输出错误设置为零。

如何使用 Theano 的 grad 函数将错误反向传播到神经网络的其余部分?

【问题讨论】:

  • 我没有将强化学习与监督学习一起应用的经验;但是,如果您可以使用 Theano 表达式定义您的 q-learning 内容并使它们成为计算图的一部分,那么您可以以正常方式反向传播错误(即使用 T.grad(..) )。这可能有点相关:github.com/spragunr/deep_q_rl
  • 是的,我看到了这个项目并将其用作参考。如果我只使用选定的操作来计算损失,那么 grad 函数似乎已经为我完成了工作。

标签: neural-network theano reinforcement-learning


【解决方案1】:

神经网络只是参数化 Q 函数的一种可能方式。 Sutton 和 Barto 的这本书 section 解释了在这种情况下执行梯度下降的方式。只需将神经网络的权重视为参数向量即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-25
    • 2017-04-26
    • 2015-02-05
    • 2020-02-10
    • 2018-11-24
    • 2013-06-07
    • 2017-03-02
    • 2019-01-10
    相关资源
    最近更新 更多