经典的Q学习算法,使用查找表(而不是函数逼近),等同于动态编程吗?
答案 0 :(得分:13)
来自Sutton&巴托的书(Reinforcement Learning: An Introduction, chapter 4)
术语动态编程(DP)是指算法的集合 给出一个完美的模型,可用于计算最优策略 作为马尔可夫决策过程(MDP)的环境。经典DP 算法在强化学习中都有限 因为他们假设一个完美的模型,因为他们的 计算费用很高,但它们仍然很重要 理论上
所以,尽管两者都有相同的工作原理(使用表格强化学习/动态编程或近似RL / DP),但经典DP和经典RL之间的关键区别在于,第一个假设模型是已知的。这基本上意味着了解转移概率(指示从给定动作a到状态s的状态变化的概率)和预期的即时奖励函数。
相反,RL方法只需要访问一组样本,可以在线或离线收集(取决于算法)。
当然,可以在RL和DP之间放置混合方法,例如从样本中学习模型的方法,然后在学习过程中使用该模型。
注意:除了一组与RL相关的数学优化技术之外,术语动态编程还用于指代“一般算法模式”,如某些评论中所指出的。在这两种情况下,基本原理都是相同的,但根据具体情况可能会有不同的含义。
答案 1 :(得分:6)
动态编程是一个包含许多算法的保护伞。 Q-Learning是一种特定的算法。所以,不,它不一样。
此外,如果您的意思是动态编程,如值迭代或策略迭代,仍然不一样。这些算法是“规划”方法。您必须为他们提供转换和奖励功能,他们将迭代计算值功能和最佳政策。
Q-Learning是一种无模型强化学习方法。这个“没有模型”,不是因为它不使用机器学习模型或类似的东西,而是因为它们不需要,并且不使用环境模型,也称为MDP,以获得最优策略。您还有“基于模型”的方法。与动态编程方法不同,它们基于学习模型,而不是简单地使用模型。并且,与无模型方法不同,在估计值之后不要丢弃样本,而是尝试重建过渡和奖励函数以获得更好的性能。
基于模型的方法结合了无模型和规划算法,以比无模型方法(Q-Learning)所需的样本量更少的样本获得相同的良好结果,而不需要像动态编程方法(价值/政策迭代)这样的模型。
答案 2 :(得分:-1)
如果您在离线设置中使用Q-learning,例如AlphaGo,那么它等同于动态编程。不同之处在于它也可以用于在线设置。