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

41

Q-learning在强化学习中如何与值迭代不同?

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


1
未来,这样的问题可能应该在这里提问:http://datascience.stackexchange.com/questions/tagged/reinforcement-learning - Martin Thoma
3个回答

61
您说得很对,如果我们知道Q学习中每个转移的转移概率和奖励,那么为什么我们会使用它而不是基于模型的学习或者它在本质上有何不同,这将非常不明确。毕竟,转移概率和奖励是价值迭代中使用的模型的两个组成部分 - 如果您拥有它们,则拥有模型。
关键在于,在Q学习中,智能体不知道状态转移概率或奖励。当智能体通过给定动作从一个状态转移到另一个状态并获得奖励时,它只发现了从一个状态到另一个状态的奖励。同样地,它只能通过进入该状态并查看其选项来弄清楚从给定状态可用的转换。如果状态转换是随机的,则通过观察不同转换发生的频率来学习在状态之间进行转换的概率。
可能存在困惑的一个原因是,作为程序员的您可能确切地知道如何设置奖励和状态转换。实际上,在您最初设计系统时,您很可能知道,因为这对于调试和验证您的方法是否有效非常重要。但是您从不告诉智能体任何信息 - 相反,您迫使它通过试错来自行学习。如果您希望创建一个能够进入没有任何先前知识的新情况并找出该做什么的智能体,则此举非常重要。另外,如果您不关心智能体自主学习的能力,如果状态空间过大而无法反复枚举,则还可能需要使用Q学习。让智能体在没有任何起始知识的情况下探索可能更具有计算可行性。

16

当你拥有转移概率时,使用价值迭代。这意味着当你知道通过动作a从状态x进入状态x'的概率时,可以使用价值迭代。相反,你可能有一个黑盒子,允许你模拟它,但实际上并没有给出概率。所以你是无模型的。这就是应用Q学习的时候。

学到的东西也不同。使用价值迭代时,你学到的是当给定状态x时的预期成本。而使用Q学习时,你获得在状态x下应用动作a时预期折扣成本。

以下是算法:

我目前正在为考试写关于强化学习的一些内容。你可能也对我的讲义笔记感兴趣。然而,它们大多是德语。


您的黑盒转移概率是状态和动作的函数,随着探索的进行而变化。同时,您的算法正在寻找一个极值。简而言之,您的算法遵循探索策略在山谷和山丘的地形中行走。因此,不能保证它会找到局部极值,特别是如果探索策略s -> s'由半随机漫步控制。我的理解正确吗? - Alex
让我来纠正一下:如果相空间足够大,并且除非探索策略通过鞍点瞄准最近的山谷,否则收敛到局部极值通常极其缓慢,并且很可能会对相空间进行不充分的采样。使用了哪些采样策略? - Alex
你有计划将你的讲义翻译成英文吗? - Miguel Rueda

6
我认为接受的答案没有捕捉到差异的本质。引用Richard Sutton新书的最新版本:
“拥有q∗使选择最优动作变得更容易。对于任何状态s,使用q∗,智能体甚至不必进行一步先行搜索:它可以简单地找到任何最大化q∗(s;a)的动作。动作价值函数有效地缓存了所有一步先行搜索的结果。它提供了每个状态{动作}对的局部和立即可用的最优期望长期回报作为一个值。因此,代价是表示状态{动作}对的函数,而不仅仅是状态的函数,最优动作价值函数允许在不必知道可能的后继状态及其值,也就是说,不必知道环境动力学的情况下选择最优动作。”
通常在实际问题中,智能体不知道世界(或所谓的转换)的动态,但我们确实知道奖励,因为这些是环境在交互过程中返回的,并且奖励函数由我们定义。
Q学习和正常的值迭代之间的真正区别是:在获得V*之后,您仍然需要进行一步动作前瞻以识别该状态的最佳操作。而这种前瞻需要动作后的转移动态。但是,如果您有q*,则最佳计划只需从最大的q(s,a)对中选择a即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接