【问题标题】:TD learning vs Q learningTD 学习与 Q 学习
【发布时间】:2016-06-09 14:23:38
【问题描述】:

在一个完美的信息环境中,我们能够知道一个动作后的状态,比如下棋,有什么理由使用 Q 学习而不是 TD(时间差)学习?

据我了解,TD learning 会尝试学习 V(state) value,但 Q learning 会学习 Q(state action value) value,这意味着 Q learning 学习速度较慢(因为状态动作组合不仅仅是状态),对吗?

【问题讨论】:

  • TD学习是指一组算法,其中Q学习就是一个例子。

标签: machine-learning reinforcement-learning q-learning temporal-difference


【解决方案1】:

实际上,Q-learning 是使用状态-动作对而不仅仅是状态的过程。但这并不意味着 Q 学习与 TD 不同。在 TD(0) 中,我们的代理采取了一步(可能是状态-动作对中的一步或只是状态),然后更新它的 Q 值。在 n-step TD 中也是如此,我们的代理采取 n 步然后更新 Q 值。比较 TD 和 Q-learning 不是正确的方法。您可以改为比较 TD 和 SARSA 算法。还有TD和蒙特卡洛

【讨论】:

    【解决方案2】:

    Q 学习是一种 TD 控制 算法,这意味着它会尝试为您提供最佳策略,如您所说。 TD 学习在某种意义上更通用,它可以包括控制算法,也可以只包括针对固定策略的 V 的预测方法。

    【讨论】:

      【解决方案3】:

      给定一个确定性的环境(或者如您所说,一个“完美”的环境,您可以在其中知道执行某个操作后的状态),我想您可以模拟给定状态下所有可能操作的影响(即,计算所有可能的下一个状态),并选择达到最大值 V(state) 的下一个状态的动作。

      但是,应该考虑到值函数 V(state) 和 Q 函数 Q(state,action) 都是为给定策略定义的。在某种程度上,价值函数可以被认为是 Q 函数的平均值,在某种意义上,V(s)“评估”所有可能动作的状态 s。因此,为了计算出对 V(s) 的良好估计,代理仍然需要执行 s 中所有可能的操作。

      总之,我认为虽然 V(s) 比 Q(s,a) 更简单,但他们可能需要相似数量的经验(或时间)才能实现稳定的估计。

      您可以在 Sutton & Barto RL 书籍的this section 中找到有关值(V 和 Q)函数的更多信息。

      【讨论】:

        【解决方案4】:

        Q-Learning 是一种 TD(时间差)学习方法。

        我认为您试图参考 TD(0) 与 Q-learning。

        我会说这取决于您的行为是否具有确定性。即使您有转换函数,在 TD(0) 中决定采取哪个动作也可能很昂贵,因为您需要计算每个步骤中每个动作的期望值。在 Q-learning 中,将总结为 Q 值。

        【讨论】:

        • 如果 TD(0) 和 Q-learning 都使用函数逼近,那么在确定下一步要采取的行动时,这两种方法在计算上是相等的,不是吗? TD(0) 需要遍历所有可用的动作并计算每个后态的值; Q-learning 需要计算每个 Q(s,a)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-23
        • 2015-02-26
        • 2017-02-28
        • 1970-01-01
        • 2020-10-22
        • 1970-01-01
        相关资源
        最近更新 更多