TD学习与Q学习

时间:2016-02-26 11:29:55

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

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

据我了解,TD学习将尝试学习V(状态)值,但Q学习将学习Q(状态动作值)值,这意味着Q学习学习速度较慢(因为状态动作组合不仅仅是状态),这是正确的吗?

4 个答案:

答案 0 :(得分:1)

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

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

我会说这取决于你的行为是否具有确定性。即使您具有转换功能,由于您需要计算每个步骤中每个操作的预期值,因此决定在TD(0)中采取哪个操作可能会很昂贵。在Q学习中,将在Q值中进行总结。

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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