Q-learning与动态编程

时间:2016-08-17 05:16:12

标签: machine-learning dynamic-programming reinforcement-learning q-learning

经典的Q学习算法,使用查找表(而不是函数逼近),等同于动态编程吗?

3 个答案:

答案 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,那么它等同于动态编程。不同之处在于它也可以用于在线设置。