我一直在研究强化学习,并理解价值/政策迭代,TD(1)/ TD(0)/ TD(Lambda)和Q学习的概念。我不明白为什么Q学习不能用于一切。为什么我们需要DeepMind's DQN paper中描述的“深层”强化学习?
答案 0 :(得分:1)
Q-learning是一种无模型的强化学习方法,最初是在1989年记录的。它是“无模型”的,因为代理不会尝试对其环境进行建模。它到达基于Q表的策略,该表存储从给定状态采取任何动作的结果。当代理处于状态s
时,它引用状态的Q表并选择具有最高关联奖励的操作。为了使代理达到最优策略,它必须平衡对所有状态的所有可用操作的探索,并利用Q表所说的对于给定状态的最佳动作。如果代理总是选择随机动作,它将永远不会达到最优策略;同样,如果代理人总是选择具有最高估计奖励的行动,则可能会达到次优政策,因为某些状态 - 行动对可能尚未完全探索。
如果有足够的时间,Q学习最终可以为任何有限马尔可夫决策过程(MDP)找到最优策略π。在简单的Tic-Tac-Toe游戏的例子中,完全不同的游戏状态的数量小于6,000。这可能听起来像一个很高的数字,但在OpenAI的gym环境中考虑一个简单的视频游戏环境,称为“Lunar Lander”。
目标是使用着陆器的推进器将其导航到黄色标志之间,确保着陆器的惯性足够慢,以免导致其崩溃。可能的行动是:什么都不做,使用左推进器,使用右推进器,使用主中心推进器。使用主推进器会产生一个小的负面奖励。没有撞击的着陆提供了很大的奖励,并且在旗帜之间着陆也提供了很大的奖励。崩溃提供了巨大的负面回报。代理将状态体验为以下参数的组合:着陆器的x
和y
坐标,以及x
和y
速度,旋转,角速度,以及每条腿的简单二进制值,以确定它是否接触地面。考虑代理可能从这些参数的不同组合中遇到的所有不同可能状态;与tic-tac-toe相比,这个MDP的状态空间是巨大的。代理人需要花费过多的时间来体验足够的剧集才能可靠地驾驶着陆器。 Lunar Lander环境提供的状态空间太大,传统的Q-learning无法在合理的时间内有效地解决,但通过一些调整(以“深度”Q-learning的形式),代理确实可能在合理的时间内定期成功导航环境。
如您所链接的DeepMind论文中所述,深度Q学习基于Tesauro的TD-Gammon方法,该方法近似于代理与环境交互时收到的信息的值函数。一个主要的区别是,不是不断更新价值函数,而是以固定集或批量处理剧集的经验。剧集完成后,将从集合中删除最早的剧集,并将最近的剧集推入集合中。这有助于算法更有效地探索环境,因为它试图阻止反馈循环。批处理的这种使用被称为“经验重放”。它也更有效,因为从成对的连续状态中学习可能由于这两个状态的密切关系而导致不准确。
TL; DR:当状态 - 动作空间如此之大以至于常规Q学习需要很长时间才能收敛时,深度强化学习可能是一种可行的选择,因为它使用了函数逼近。
答案 1 :(得分:1)
Q学习使用Q表存储Q值,并使用它们通过使用相应的Q值为当前状态选择动作。
但这并不总是可行的。当我们有很大的状态空间时,我们的Q表将变得非常大,并且每个估计的Q值都需要很长时间才能更新,并且其中大多数可能仅会更新几次,因此它们是不准确的。
为解决此类问题,我们使用函数逼近器来学习常规Q值。神经网络擅长函数逼近,因此提出了 DQN 来获取状态表示并估计Q值。现在,网络开始学习使用状态的低级特征预测Q值,因此有助于进行概括。