Q-learning和Value Iteration有什么区别?

时间:2015-03-09 08:32:39

标签: machine-learning artificial-intelligence reinforcement-learning q-learning

Q学习与强化学习中的价值迭代有何不同?

我知道Q-learning是无模型的,训练样本是转换(s, a, s', r)。但是,既然我们知道Q学习中每次转换的转换和奖励,那么它与基于模型的学习不同,我们知道状态和动作对的奖励,以及来自州的每个动作的转换(是它是随机的还是确定的)?我不明白其中的区别。

3 个答案:

答案 0 :(得分:30)

如果我们知道Q学习中每次转换的转换概率和奖励,那么你是100%正确的,我们很难理解为什么我们会使用它来代替基于模型的学习,或者它甚至会如何根本不同。毕竟,转换概率和奖励是价值迭代中使用的模型的两个组成部分 - 如果你有它们,你就有了一个模型。

关键是,在Q-learning中,代理人不知道状态转换概率或奖励。代理人只发现当有这样的行为并且获得奖励时,通过给定的动作从一个州到另一个州获得奖励。类似地,它只通过结束该状态并查看其选项来确定从给定状态可获得的转换。如果状态转换是随机的,它通过观察不同转换发生的频率来学习状态之间转换的概率。

这里可能造成混淆的一个原因是,作为程序员,您可能确切地知道如何设置奖励和状态转换。实际上,当您第一次设计系统时,您可能会遇到这种情况,因为这对于调试和验证您的方法是否有效非常重要。但是你永远不会告诉代理人 - 而是你强迫它通过反复试验来学习。 如果您想创建一个能够进入新情况的代理,这一点非常重要,您可以了解并了解该怎么做。或者,如果您不想&# 39;关心代理人自己学习的能力,如果状态空间太大而不能重复枚举,也可能需要进行Q学习。让代理人在没有任何问题的情况下进行探索开始的知识可以在计算上更容易处理。

答案 1 :(得分:6)

当你有转移概率时使用值迭代,这意味着当你知道从状态x进入状态x的概率时。行动a。相比之下,你可能有一个黑盒子可以让你模拟它,但你实际上没有给出概率。所以你没有模特。这是你申请Q学习的时候。

所学的内容也不同。通过值迭代,您可以了解给定状态x时的预期成本。通过q-learning,当您处于状态x并应用操作a时,您将获得预期的折扣成本。

以下是算法:

我目前正在写一篇关于考试强化学习的文章。您可能也对my lecture notes感兴趣。但是,它们大部分都是德语。

答案 2 :(得分:0)

我认为公认的答案没有抓住区别的本质。引用理查德·萨顿(Richard Sutton)的书的最新版本:

具有q ∗使得选择最佳动作更加容易。对于q ∗,代理不 甚至必须进行一步一步的搜索:对于任何状态s,它都可以简单地找到使q *(s; a)最大化的任何动作。动作值功能可有效地缓存所有一步一步搜索的结果。它提供最佳的预期长期回报,作为每个状态{动作对}局部和立即可用的值。因此,以表示状态{动作对,而不是仅仅表示状态的函数为代价,最佳动作值函数允许选择最佳动作,而不必了解有关可能的后继状态及其值的任何信息,即知道什么 有关环境动态的信息。

通常在实际问题中,主体不知道世界(或所谓的转换)动力学,但是我们肯定知道奖励,因为这些是交互过程中环境所回报的,而奖励功能实际上是由我们定义。

q学习与正态值迭代之间的真正区别在于: 拥有V *后,您仍然需要对后续状态进行一步动作前瞻,以识别该状态的最佳动作。而且,这种前瞻要求在动作后进行动态过渡。但是,如果您有q *,则最佳计划就是从最大的 q(s,a)对中选择 a