Q学习与强化学习中的值迭代有何不同?
我知道Q- (s, a, s', r)是无模型的,训练样本是转换学习。但是,既然我们知道Q学习中的转变和每个转变的奖励,它不是与基于模型的学习相同吗?在基于模型的学习中,我们知道状态和动作对的奖励,以及来自状态的每个动作的转变(无论是随机的还是确定性的)?我不明白其中的区别。
发布于 2015-03-10 10:32:18
你是100%正确的,如果我们知道Q-learning中每个转变的转变概率和回报,那么我们将非常不清楚为什么我们会使用它而不是基于模型的学习,或者它将如何从根本上不同。毕竟,转移概率和奖励是价值迭代中使用的模型的两个组件-如果你有它们,你就有了一个模型。
关键是,在Q-中,智能体不知道状态转移概率或奖励。当代理这样做并获得奖励时,它只会发现通过给定的操作从一个状态转到另一个状态会有奖励。类似地,它仅通过在给定状态中结束并查看其选项,才能计算出从给定状态可用的转换。如果状态转换是随机的,它通过观察不同转换发生的频率来学习状态之间转换的概率。
这里可能造成混淆的一个原因是,作为程序员,您可能确切地知道奖励和状态转换是如何设置的。事实上,当您第一次设计系统时,很可能会这样做,因为这对于调试和验证您的方法是否有效非常重要。但你永远不会告诉代理这一切-相反,你会迫使它通过试验和错误自己学习。如果你想创建一个能够进入你没有任何先验知识的新情况的智能体,这是很重要的。或者,如果你不关心智能体独立学习的能力,如果状态空间太大而不能重复枚举,那么Q-learning可能也是必要的。让智能体在没有任何开始知识的情况下进行探索可能在计算上更容易处理。
发布于 2016-07-14 21:00:56
当你有转移概率时,使用值迭代,这意味着当你知道通过动作a从状态x进入状态x‘的概率时。相反,你可能有一个黑盒,它允许你模拟它,但你实际上没有得到这个概率。所以你是无模型的。这是你应用Q学习的时候。
而且,学到的东西也是不同的。使用值迭代,您可以学习给定状态x时的预期成本。使用Q学习,当您处于状态x并应用操作a时,您可以获得预期的折扣成本。
以下是算法:


我目前正在为考试写下相当多关于强化学习的内容。您可能还会对my lecture notes感兴趣。然而,它们大多是用德语写的。
发布于 2018-07-07 06:46:39
我不认为被接受的答案抓住了差异的本质。引用理查德·萨顿的书的最新版本:
“有了q∗,选择最优动作就更容易了。有了q∗,智能体甚至不必进行一步搜索:对于任何状态s,它可以简单地找到最大化q∗(s;a)的任何操作。action-value函数有效地缓存了所有先行一步搜索的结果。它将最优的预期长期回报作为一个值提供给每个状态{action对。因此,以表示状态{动作对的函数而不只是状态的函数为代价,最优动作值函数允许选择最优动作,而不必知道任何关于可能的后继状态及其值的信息,即,不必知道任何关于环境动态的信息。“
通常在实际问题中,智能体不知道世界(或所谓的转换)的动态,但我们肯定知道奖励,因为这些是环境在交互过程中回馈的东西,奖励函数实际上是由我们定义的。
q-learning和normal value迭代之间真正不同之处在于:在拥有V*之后,您仍然需要对后续状态进行一步动作前瞻,以确定该状态的最佳动作。而这种前瞻需要在动作之后的转换动态。但是如果你有q*,最优的方案就是从最大的q(s,a)对中选择a。
https://stackoverflow.com/questions/28937803
复制相似问题