Q 学习和价值迭代有什么区别?

What is the difference between Q-learning and Value Iteration?

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

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

你是 100% 正确的,如果我们知道 Q-learning 中每个转换的转换概率和奖励,那么我们将非常不清楚为什么我们会使用它而不是基于模型的学习,或者它从根本上是如何实现的不同的。毕竟,转移概率和奖励是价值迭代中使用的模型的两个组成部分——如果你有它们,你就有了一个模型。

关键是,在 Q 学习中,代理不知道状态转换概率或奖励。智能体只有在这样做并获得奖励时,才会发现通过给定的动作从一种状态转到另一种状态会产生奖励。类似地,它仅通过以该状态结束并查看其选项来确定从给定状态可以进行哪些转换。如果状态转换是随机的,它通过观察不同转换发生的频率来学习状态之间转换的概率。

这里可能造成混淆的原因是,作为程序员,您可能确切地知道奖励和状态转换是如何设置的。事实上,当您第一次设计系统时,您很可能会这样做,因为这对于调试和验证您的方法是否有效非常重要。但是你永远不会告诉代理任何这些 - 而是你强迫它通过反复试验自己学习。 如果你想创建一个能够进入你没有任何先验知识并弄清楚该怎么做的新情况的代理,这一点很重要。或者,如果你不知道不关心代理的自主学习能力,如果状态 space 太大而无法重复枚举,Q 学习也可能是必要的。 让代理探索没有任何入门知识在计算上更容易处理。

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

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

算法如下:

我目前正在为考试写下很多关于强化学习的内容。您可能还对 my lecture notes 感兴趣。然而,他们大多是德语。

我认为接受的答案没有抓住差异的本质。引用 Richard Sutton 的书的最新版本:

" Having q∗ makes choosing optimal actions even easier. With q∗, the agent does not even have to do a one-step-ahead search: for any state s, it can simply find any action that maximizes q∗(s; a). The action-value function effectively caches the results of all one-step-ahead searches. It provides the optimal expected long-term return as a value that is locally and immediately available for each state{action pair. Hence, at the cost of representing a function of state{action pairs, instead of just of states, the optimal action value function allows optimal actions to be selected without having to know anything about possible successor states and their values, that is, without having to know anything about the environment’s dynamics. "

通常在实际问题中,代理不知道世界(或所谓的转换)动态,但我们肯定知道奖励,因为这些是环境在交互过程中回馈的东西,奖励函数实际上是定义的被我们。

q 学习和正常值迭代之间的真正区别在于: 在你拥有 V* 之后,你仍然需要做一步动作向前看后续状态以确定该状态的最佳动作。而这种前瞻性需要行动后的过渡动态。但是如果你有 q*,最佳方案就是从最大的 q(s,a) 对中选择 a