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

Why and when is deep reinforcement learning needed instead of q-learning?

我一直在研究强化学习,了解 value/policy 迭代、TD(1)/TD(0)/TD(Lambda) 和 Q-learning 的概念。我不明白的是为什么 Q-learning 不能用于所有事情。为什么我们需要 "deep" 强化学习,如 DeepMind's DQN paper 中所述?

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

如果有足够的时间,Q-learning 最终可以为任何有限马尔可夫决策过程 (MDP) 找到最优策略 π。在一个简单的 Tic-Tac-Toe 游戏示例中,不同游戏状态的总数少于 6,000。这听起来可能是一个很高的数字,但请考虑在 OpenAI 的 gym 环境中称为“月球着陆器”的简单视频游戏环境。

目标是使用着陆器的推进器导航着陆器在黄旗之间着陆,确保着陆器的惯性足够慢,以免导致坠毁。可能的动作是:什么都不做,使用左推进器,使用右推进器,使用主中心推进器。使用主推进器会产生少量的负奖励。着陆而不坠毁可提供丰厚的奖励,而在旗帜之间着陆也可提供丰厚的奖励。崩溃提供了大量的负面回报。代理将状态体验为以下参数的组合:着陆器的 xy 坐标,以及它的 xy 速度、旋转、angular 速度,以及每条腿的简单二进制值,以确定它是否接触地面。考虑代理可能遇到的这些参数的不同组合的所有不同可能状态;与 tic-tac-toe 相比,这个 MDP 的状态 space 是巨大的。代理人需要花费过多的时间才能体验足够多的情节以可靠地驾驶着陆器。 Lunar Lander 环境提供的状态 space 对于传统的 Q-learning 来说太大了,无法在合理的时间内有效地解决,但通过一些调整(以“深度”Q-learning 的形式)确实是代理有可能在合理的时间内成功地定期导航环境。

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

TL;DR:当状态动作 space 如此之大以至于常规 Q 学习需要很长时间才能收敛时,深度强化学习可能是一个可行的替代方案,因为它使用了函数逼近。

Q-learning 使用 Q-tables 存储 Q-values 并将它们用于 select 当前状态的操作,方法是使用对应Q-values.

但这并不总是可行的。当我们有大状态 space 时,我们的 Q-table 变得非常大,每个估计 Q-values 需要很长时间才能更新,而且大多数可能只更新很少几次,所以它们是不准确的。

为了解决这类问题,我们使用函数逼近器来学习通用 Q-values。神经网络擅长函数逼近,因此,DQN被提出来得到状态表示并估计Q-values。现在网络学习使用状态的低级特征来预测 Q-values,因此有助于泛化。