Machine learning 为什么以及何时需要深度强化学习而不是q学习?

Machine learning 为什么以及何时需要深度强化学习而不是q学习?,machine-learning,neural-network,deep-learning,reinforcement-learning,q-learning,Machine Learning,Neural Network,Deep Learning,Reinforcement Learning,Q Learning,我一直在学习强化学习,了解价值/策略迭代、TD(1)/TD(0)/TD(Lambda)和Q学习的概念。我不明白的是为什么Q-learning不能用于所有事情。为什么我们需要如中所述的“深度”强化学习?Q-learning是1989年首次记录的无模型强化学习方法。从代理不尝试对其环境建模的意义上说,它是“无模型的”。它到达一个基于Q表的策略,Q表存储从给定状态执行任何操作的结果。当代理处于状态s时,它会参考该状态的Q表并选择具有最高关联奖励的操作。为了使代理达到最佳策略,它必须在探索所有状态的所有

我一直在学习强化学习,了解价值/策略迭代、TD(1)/TD(0)/TD(Lambda)和Q学习的概念。我不明白的是为什么Q-learning不能用于所有事情。为什么我们需要如中所述的“深度”强化学习?

Q-learning是1989年首次记录的无模型强化学习方法。从代理不尝试对其环境建模的意义上说,它是“无模型的”。它到达一个基于Q表的策略,Q表存储从给定状态执行任何操作的结果。当代理处于状态
s
时,它会参考该状态的Q表并选择具有最高关联奖励的操作。为了使代理达到最佳策略,它必须在探索所有状态的所有可用操作与利用Q表所说的给定状态的最佳操作之间取得平衡。如果代理总是选择一个随机动作,它将永远不会得到最优策略;同样,如果代理总是选择具有最高估计报酬的行为,则可能会得出次优策略,因为某些状态-行为对可能尚未完全探索

给定足够的时间,Q-学习最终可以为任何有限马尔可夫决策过程(MDP)找到一个最优策略π。在一个简单的Tic-Tac-Toe游戏的例子中,完全不同的游戏状态的总数少于6000。这听起来像是一个很高的数字,但是在OpenAI的环境中被认为是“月球着陆器”的一个简单的视频游戏环境。 目标是使用着陆器的推进器导航着陆器在黄旗之间着陆,确保着陆器的惯性足够慢,以免造成碰撞。可能的行动是:什么也不做,使用左推进器,使用右推进器,使用主中心推进器。使用主推进器会带来一点负面回报。在没有碰撞的情况下着陆会获得很大的奖励,在旗帜之间着陆也会获得很大的奖励。崩溃会带来巨大的负面回报。该代理将状态体验为以下参数的组合:着陆器的
x
y
坐标,以及其
x
y
速度、旋转、角速度和每个腿的简单二进制值,以确定其是否接触地面。考虑所有不同的可能状态,代理可以从这些参数的不同组合中遇到;与tic-tac-toe相比,该MDP的状态空间是巨大的。这将花费大量的时间让特工经历足够的情节来可靠地驾驶着陆器。月球着陆器环境提供的状态空间太大,传统Q-学习无法在合理的时间内有效解决,但通过一些调整(以“深度”Q-学习的形式),agent确实可以在合理的时间内定期成功导航环境

正如您链接到的DeepMind论文中所详述的,深度Q-learning基于Tesauro的TD Gammon方法,该方法根据代理与环境交互时接收到的信息近似值函数。一个主要的区别是,不是不断地更新值函数,而是以固定的集合或批次处理来自某一事件的体验。一集完成后,最早的一集将从剧集中删除,最近的一集将被推入剧集。这有助于算法更有效地探索环境,因为它试图防止反馈循环。这种批处理的使用被称为“经验重放”。它也更有效,因为从成对的连续状态学习可能会由于这两个状态的密切关系而导致不准确


TL;DR:当状态行动空间太大以至于常规Q-学习需要太长时间才能收敛时,深度强化学习可能是一种可行的替代方法,因为它使用函数近似。

Q-learning使用Q表存储Q值,并使用它们通过使用相应的Q值来选择当前状态的操作

但这并不总是可行的。当我们有大的状态空间时,我们的Q表变得非常大,每个估计的Q值需要很长时间才能得到更新,而且大多数Q值可能只更新了很少几次,因此它们是不准确的

为了解决这类问题,我们使用函数逼近器来学习一般的Q值。神经网络在函数逼近方面有很好的表现力,因此,人们提出了DQN来获得状态表示并估计Q值。现在网络学习使用状态的低级特征预测Q值,因此有助于泛化