Q 学习与动态规划

Q-learning vs dynamic programming

经典的Q-learning算法,使用查找table(而不是函数逼近)是否等同于动态规划?

如果你在离线设置中使用 Q-learning,例如 AlphaGo,那么它就等同于动态规划。不同的是,它也可以用于在线设置。

来自 Sutton & Barto 的书 (Reinforcement Learning: An Introduction, chapter 4)

The term dynamic programming (DP) refers to a collection of algorithms that can be used to compute optimal policies given a perfect model of the environment as a Markov decision process (MDP). Classical DP algorithms are of limited utility in reinforcement learning both because of their assumption of a perfect model and because of their great computational expense, but they are still important theoretically.

所以,尽管两者有着相同的工作原理(要么使用表格强化Learning/Dynamic编程,要么近似RL/DP),经典DP和经典RL的关键区别在于,首先假设模型众所周知。这基本上意味着知道转移概率(表示给定动作 a 从状态 s 到状态 s 的变化概率)和预期的即时奖励函数。

相反,RL 方法只需要访问一组样本,可以在线或离线收集(取决于算法)。

当然,有一些混合方法可以放在 RL 和 DP 之间,例如那些从样本中学习模型,然后在学习过程中使用该模型的方法。

注意:术语动态规划,除了与 RL 相关的一组数学优化技术外,还用于指代 "general algorithmic pattern",如某些评论中所指出的。在这两种情况下,基本原理相同,但根据上下文可能具有不同的含义。

动态编程是包含许多算法的保护伞。 Q-Learning 是一种特定的算法。所以,不,这是不一样的。

此外,如果您指的是 Value IterationPolicy Iteration 中的动态规划,仍然不一样。这些算法是“规划”方法。你必须给他们一个 transition 和一个 reward 函数,他们将迭代计算一个 value 函数并且最佳 政策

Q-Learning 是一种无模型强化学习方法。这个是 "model-free",不是因为它不使用机器学习模型或类似的东西,而是因为他们不需要,也不使用 模型环境,也称为 MDP,以获得最优策略。您还有 "model-based" 方法。与动态规划方法不同,这些方法基于学习模型,而不是简单地使用模型。而且,与无模型方法不同,在估计值后不要丢弃样本,而是尝试重建转换和奖励函数以获得更好的性能。

基于模型的方法结合了无模型规划算法,以比模型所需的更少样本量获得同样好的结果- 无方法(Q-Learning),并且不需要像动态规划方法(Value/Policy 迭代)这样的模型。