Machine learning TD学习与Q学习

Machine learning TD学习与Q学习,machine-learning,reinforcement-learning,q-learning,temporal-difference,Machine Learning,Reinforcement Learning,Q Learning,Temporal Difference,在一个完美的信息环境中,我们能够知道一个动作后的状态,比如下棋,有什么理由使用Q学习而不是TD(时差)学习 据我所知,TD-learning将尝试学习V(状态)值,但Q-learning将学习Q(状态-动作-值)值,这意味着Q-learning学习速度较慢(因为状态-动作组合比仅状态更慢),对吗?Q-learning是一种TD(时间差异)学习方法 我想你是在说TD(0)和Q-learning 我会说这取决于你的行动是否具有决定性。即使您有转换函数,在TD(0)中决定采取哪一个操作也会很昂贵,因为

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

据我所知,TD-learning将尝试学习V(状态)值,但Q-learning将学习Q(状态-动作-值)值,这意味着Q-learning学习速度较慢(因为状态-动作组合比仅状态更慢),对吗?

Q-learning是一种TD(时间差异)学习方法

我想你是在说TD(0)和Q-learning


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

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

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

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


你可以在Sutton&Barto RL的书中找到关于值(V和Q)函数的更多信息。

Q学习是一种TD控制算法,这意味着它会像你说的那样尝试给你一个最优策略。TD学习在某种意义上更为普遍,它可以包括控制算法,也可以仅包括针对固定策略的V预测方法。

实际上,Q-学习是使用状态-动作对而不仅仅是状态的过程。但这并不意味着Q学习不同于TD。在TD(0)中,我们的代理执行一个步骤(可以是状态-动作对中的一个步骤,也可以只是状态),然后更新它的Q值。在n步TD中也是如此,我们的代理执行n步,然后更新Q值。比较TD和Q-learning不是正确的方法。您可以比较TD和SARSA算法。TD和MonteCarlo

TD学习指的是一组算法,其中Q学习就是一个例子。如果TD(0)和Q学习都使用函数逼近,那么在确定下一步采取哪种行动时,这两种方法在计算上是相等的,不是吗?TD(0)需要遍历所有可用操作并计算每个afterstate的值;Q-learning需要计算每个Q(s,a)