在强化学习中,Q-learning与值迭代有何不同?
我知道Q-learning是无模型的,训练样本是转换(s, a, s', r)
。但由于我们知道Q-learning中的每次转换和对应的奖励,这不就和基于模型的学习一样吗?在基于模型的学习中,我们知道每个状态和动作对的奖励,以及从每个状态出发的每种动作的转换(无论是随机的还是确定的)?我不明白其中的区别。
回答:
你完全正确,如果我们知道Q-learning中每次转换的转换概率和奖励,那么我们为什么要使用它而不是基于模型的学习,或者它如何在根本上有所不同,这确实不太清楚。毕竟,转换概率和奖励是值迭代中使用的模型的两个组成部分——如果你拥有它们,你就拥有一个模型。
关键在于,在Q-learning中,智能体并不知道状态转换概率或奖励。智能体只有在执行某个动作从一个状态转移到另一个状态并获得奖励时,才会发现有奖励。同样,它只有在进入某个状态并查看其选项时,才会了解从该状态可用的转换。如果状态转换是随机的,它通过观察不同转换发生的频率来学习状态之间的转换概率。
这里可能造成混淆的一个原因是,作为程序员,你可能确切知道奖励和状态转换是如何设置的。事实上,当你首次设计一个系统时,很可能你确实知道这些,因为这对于调试和验证你的方法是否有效非常重要。但你从不告诉智能体这些信息——相反,你强迫它通过试错来自己学习。这很重要,如果你想创建一个能够进入你之前没有任何知识的新情况并弄清楚该做什么的智能体。或者,如果你不关心智能体自学的能力,如果状态空间太大而无法反复枚举,Q-learning也可能是必要的。让智能体在没有任何初始知识的情况下进行探索可能在计算上更可行。