【问题标题】:How does Deep Q learning workDeep Q 学习如何工作
【发布时间】:2018-03-28 18:26:24
【问题描述】:

当我训练我的模型时,我有以下部分:

s_t_batch, a_batch, y_batch = train_data(minibatch, model2)
# perform gradient step
loss.append(model.train_on_batch([s_t_batch, a_batch], y_batch))

其中s_t, a_ 分别对应于当前状态和在这些状态下采取的操作。 model2model 相同,只是model2 的输出为num_actions,而model 仅输出在该状态下执行的操作的值。

我觉得奇怪(并且确实是这个问题的重点)在函数train_data 我有一行:

y_batch = r_batch + GAMMA * np.max(model.predict(s_t_batch), axis=1)

奇怪的是,我正在使用该模型来生成我的y_batch 并对其进行培训。这不是成为某种自我实现的预言吗?如果我理解正确,该模型会尝试预测预期的最大奖励。使用 same 模型来尝试生成y_batch 暗示它是真正的模型,不是吗?

问题是,1. 使用相同模型生成 y_batch 和训练它们背后的直觉是什么。 2.(可选)损失值是否意味着什么。当我绘制它时,它似乎并没有收敛,但是奖励的总和似乎在增加(参见下面链接中的图)。

完整代码可以看here,是深度Q学习在CartPole-v0问题上的实现:

来自其他论坛的评论:

  1. y = r + gamma*np.max(model.predict(s_t_batch), axis=1) 是完全自然的,y 将收敛到真实的状态-动作值。如果你不打破连续更新与经验回放(或更好的优先级经验回放)之类的东西之间的相关性,你的模型就会出现分歧。还有更好的变体,例如 DDQN、Dueling Network,性能更好。
  2. y_batch 包括奖励。目标网络和在线网络都是估计值。由于 DQN 的价值函数过于乐观,这确实是一个有点自我实现的预言。这就是几个月后添加双 DQN 的原因。
  3. y 会收敛,但不一定会收敛到真实的(我假设您的意思是最优的)状态-动作值。没有人证明收敛值是最佳值,但它是我们拥有的最佳近似值。但是对于足够简单的问题(例如网格世界)会收敛到真实值

【问题讨论】:

    标签: deep-learning reinforcement-learning openai-gym q-learning


    【解决方案1】:

    模型根据自己的预测进行训练这一事实是 Q-learning 的重点:它是一个称为引导的概念,这意味着重用您的经验。这背后的见解是:

    • 代理使用一些权重初始化
    • 这些权重代表代理当前尝试逼近的 Q 值函数的表示
    • 然后它作用于环境,执行它认为具有最高 Q 值的动作(具有一些探索的随机性)
    • 然后它会收到来自环境的一些反馈:奖励,以及它所处的新状态
    • 通过比较状态 t (= [s_t_batch, a_batch]) 的代理 Q 值近似值与状态 t+1 的(折扣)近似值之间的差异 奖励 (=y_batch),它能够衡量它对 Qt 的预测有多错误。
    • 根据这种错误度量(称为 TD-Error),权重在 MSE 较低的方向上更新,与任何其他基于梯度的优化一样。
    • (人们可以等待不止一步才能从环境中获得更多信息,以便朝着更好的方向更新权重。实际上可以等待整个情节结束并在此基础上进行训练。训练之间的连续统一体并且等待结束被称为TD(Lambda),你应该看看它)

    您的损失正是这个意思:对于一批,它是您的模型从其唯一的 Q 值近似值对时间 t 的预测与从其 Q 值近似值对时间 t 的预测之间的均方误差对于下一个状态,并考虑到来自环境的一些“基本事实”,即此时间步的奖励

    在我看来,你的损失确实下降了,但是它非常不稳定,这是 vanilla Q-Learning 尤其是 vanilla Deep Q-Learning 的一个已知问题。查看下面的概述文件,了解更复杂的算法是如何工作的

    我建议您查看Temporal Difference Learning。 好的资源也是

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-28
      • 2016-06-09
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      相关资源
      最近更新 更多