DQN-[Playing Atari with Deep Reinforcement Learning]
论文地址:https://arxiv.org/abs/1312.5602
Abstract
该研究者最先期构建了首个深度学习架构,在复杂决策空间中实现了智能行为控制。该架构基于卷积神经网络设计,并采用Q-Learning算法的变体进行训练。其输入端口直接接受原始像素数据,并将此作为训练样本特征向量。其输出层则估算未来状态累积奖励值。在七个经典Atari 2600游戏平台上实施测试后发现,在六款游戏中表现优于现有所有算法,在三款游戏中甚至超越了人类专家水平的表现
1. Introduction
基于多维度视觉和语音信息源的学习控制代理是强化学习(RL)的一个长期面临挑战的方向。在多数相关领域中获得成功应用的强化学习方法主要高度依赖于人工标注特征与线性价值函数或策略表示的有效结合。研究表明,在提升系统性能方面起着关键作用的是其特征表示的质量。
最新的深度学习技术已经实现了从原始感官数据中提取高层次特征的能力,并且这一技术突破尤其体现在计算机视觉与语音识别领域中。这些方法主要依赖于多种神经网络架构,在具体应用中则采用了监督性和非监督性两种不同的训练策略。值得注意的是,在感知数据处理领域取得显著成效的同时,也值得进一步探讨的是这些技术是否同样适用于强化学习场景下的感知数据处理。
从深度学习的角度来看,在强化学习领域面临几个关键挑战。传统深度学习模型通常依赖于大量高质量标注的数据集,在实际应用中获取此类数据依然面临诸多困难。相比之下,在强化学习过程中系统必须能够有效应对稀疏、噪声干扰且长期延迟的奖励信号这一本质特征。与监督学习相比,在强化学习中状态与奖励之间的关系更为复杂,并且长期延迟的存在使得实时反馈机制难以实现;此外,在传统深度学习方法通常基于独立同分布的数据假设下训练的情形下,在强化学习场景中状态序列往往表现出高度的相关性;最后,在算法不断探索新行为的过程中会导致数据分布发生显著变化这一现象给基于固定假设的传统方法带来了严峻挑战
这篇论文表明卷积神经网络能够通过克服挑战来有效学习复杂RL环境中原始视频数据的成功控制策略。该网络采用Q-learning算法的变体进行训练,并基于随机梯度下降优化权重。为了缓解相关数据与非平稳分布的问题 作者采用了经验重放机制来实现对先前转换的有效采样,并使训练分布在经历许多行为后趋于平滑 。
作者基于Arcade Learning Environment (ALE)平台实现了对一系列Atari 2600游戏的训练任务。作为具有挑战性的Reinforcement Learning测试平台,在该环境中智能体接收高维视觉输入(60Hz的210×160RGB视频)以及一组多样化且具挑战性的任务。这些任务对于人类而言同样具有难度性。研究的目标是构建一个能够成功学习玩尽可能多的游戏的独特神经网络智能体,在此过程中该网络并未获得任何特定于游戏的信息或人工设计的视觉特征,并未了解模拟器内部状态;它仅从视频输入、奖励反馈以及可能的动作中学习——如同人类玩家一般进行操作。此外,在整个游戏过程中所使用的网络架构与超参数设置均保持一致不变。图1展示了用于训练过程中的五个典型游戏屏幕截图的例子

图1 屏幕截图集(如图1所示)展示了五款 Atari 2600 游戏程序的视觉呈现:从左至右依次为台球游戏、“弹球室”的经典考验、“太空侵略者”的太空主题、“深海迷航”的海洋冒险以及"光束冲浪者"的独特玩法
2. Background
作者所考虑的任务是,在智能体与环境\mathcal{E}进行交互(在此特指使用Atari模拟器)的过程中有一系列的动作、观测及奖励的连续过程。每个时间段步t中,在可选动作集合\mathcal{A}=\{1, \ldots, K\}中选择一个动作a_t并施加于系统中。该动作被施加后会导致模拟器的状态更新以及游戏分数的变化。一般来说,在这种情况下\mathcal{E}的行为可能是随机的或不可预测的性质。智能体无法直接观察到模拟器的内部状态;相反地它只能获取来自模拟器的画面信息x_t \in \mathbb{R}^d其中d代表像素值向量的空间维度数。此外智能体还会接收到一个表示当前游戏得分变化情况的奖励信号r_t值得注意的是一般来说游戏得分的变化会受到一系列历史动作与观测的影响因此对某个具体行动产生的反馈往往需要经过大量时间步骤才能得到。
考虑到智能体只能观测当前屏幕显示的信息,并且任务的状态在观测层面仅能部分获取,在某些情况下不同模拟器之间在感知层面存在差异性。因此,在这种情况下仅凭当前屏幕信息x_t难以全面掌握真实情况。为了应对这一挑战作者提出了一个基于信息序列s_t = {x_1, a_1, x_2, ..., a_{t-1}, x_t}的学习框架,并基于这些信息序列训练相应的策略模型以解决复杂决策问题。为了简化问题假设所有模拟轨迹均会在有限步骤后完成这一前提下构建了一个大型但有限状态空间的马尔科夫决策过程(MDP)。在此框架下每个状态代表一条特定的信息轨迹而标准强化学习算法可直接应用于该MDP结构无需额外调整即可利用完整的状态表示s_t进行状态转移计算。
智能体旨在通过最大化未来奖励来选择动作与模拟器互动。作者基于标准假设认为,在每个时间步长中使用因子γ进行奖励折扣,并定义时间为t时的未来累积奖励为R_t=∑{t'=t}^T γ^{t'-t}r{t'}(其中T表示游戏结束的时间步)。对于状态-行动对(s,a),其最佳动作价值函数Q*(s,a)被定义为在观察到状态s并采取行动a后,在遵循任意策略π的情况下所能达到的最大期望累积奖励值Q*(s,a)=max_π E[R_t | s_t=s, a_t=a, π]。其中π代表一种策略,它将当前的状态信息映射到可能的动作选择上。
最佳行动-价值函数遵循一个关键属性——贝尔曼方程(Bellman equation)。这一观点的基础在于:当下一时间步长中的状态序列s^'的所有最优动作值Q^*(s'^, a'^)对于所有可能的动作a'^都是可获得时,则采取最大化r + γQ^*(s', a')期望值的动作a'*成为最优策略。
Q^*(s,a) = \mathbb{E}_{s' \sim \mathcal{E}}[{ r + \gamma \max_{a'} Q^*(s', a') \Big| s, a }] \ \ \ (1)
基于强化学习理论的核心原理,在每一次迭代中利用贝尔曼方程来进行状态-动作值函数的更新计算。具体而言,在第i+1次迭代时的状态-动作值函数表示为:Q_{i+1}(s,a) = \mathbb{E}\left[ r + \gamma \max_{a'} Q_i(s', a') | s, a \right] ,其中这一种价值迭代方法能够收敛到最优状态-动作值函数 Q^* ,即当i \rightarrow \infty时有Q_i \rightarrow Q^* 。然而,在实际应用中这种方法存在明显的局限性:它假设每个状态-动作对都是独立估计的,并且缺乏普适性。相比之下,在大多数情况下我们采用的是基于参数的状态-动作值函数估计方法:即寻找一个参数化的近似表达式 Q(s,a; \theta) ≈ Q^*(s,a) 。在强化学习领域这通常是一个线性模型近似器的形式,在某些情况下也会采用非线性模型近似器(如神经网络)。特别地,在深度学习领域中权重θ所对应的神经网络模型被称为Q网络(Q-network)。为了训练这一类模型我们通常采用以下损失函数来进行优化:在每次迭代i时定义损失L_i(θ_i) ,并最小化这些损失以获得最优参数θ序列
我们定义了L_i(\theta_i)作为\mathbb{E}_{s,a\sim\rho(\cdot)}作用于(y_i - Q(s,a;\theta_i))^2的结果,并将其标记为方程(2)。
其中 y_i = \mathbb{E}_{s' \sim \mathcal{E}}[r + γ max_{a'} Q(s', a'; θ_{i-1}) | s, a] 表示第 i 次的迭代目标;ρ(s,a) 是序列 s 和动作 a 的概率分布,并被称为行为分布(behaviour distribution)。在优化损失函数 L_i(θ_i) 时,在上一轮中 θ_{i−1} 的参数被固定;请注意的是,在这一过程中所依赖的网络权重与监督学习中的目标不同;根据权重计算对损失函数的导数得到相应的梯度
该等式表示状态-动作值函数关于参数θi的梯度等于对所有可能的状态s及其动作a以及后续状态s'的概率分布s∼ρ(⋅),a∼ρ(⋅),s′∼Ε下的期望值:
(r + γ max_{a'} Q(s', a'; θ_{i−1}) − Q(s, a; θ_i)) × ∇θi Q(s, a; θi)
其中(3)表示该等式的序号。
与其在上述梯度中估算完整的期望值不如通过随机梯度下降优化损失函数这在计算上同样重要如果每个时间步更新权重并且期望值各自由动作分布 ρ 和仿真器 𝒱 中的单个样本取代那么就能得到经典的Q-learning算法
值得注意的是,在本研究中所采用的这种算法具有显著优势:其系统地利用仿真器\mathcal{E}的实际样本数据来解决强化学习问题,并不涉及对\mathcal{E}的具体估计过程进行构建。此外该算法还具备离线策略的特点:通过贪婪策略a = \max_a Q(s,a; θ)实现策略优化的同时能够保持动作分布以确保充分覆盖整个状态空间。在实际应用中行为分布通常由一种结合了贪心与随机选择机制(如\epsilon-greedy)的方法来实现
3. Deep Reinforcement Learning
最近的研究突破在计算机视觉与语音识别领域建立在大规模的数据集基础上以深度神经网络为核心进行有效训练。最常用的方式是被广泛采用的是直接利用原始输入进行训练并采用基于随机梯度下降的小幅权重更新的方法这种技术使得模型能够从大量数据中提取有用特征。当提供充足的数据时 在深度神经网络中能够学到比人工标注特征更有效的表示研究者注意到这些成功经验可能适用于强化学习领域研究者的目标是将强化学习算法连接到一个深度神经网络 并使该网络直接运行于RGB图像上 并通过随机梯度更新高效地处理训练数据
Tesauro 的 TD-Gammon 架构为这种方法提供了一个起点。这一架构通过更新用于估计价值函数的网络参数来实现功能提升,并这些参数来源于 on-policy 的经验样本 s_t,a_t,r_t,s_{t+1},a_{t+1}。这些经验不仅来自于算法与环境之间的互动,在双陆棋的情况下,则是通过自我对弈产生的结果。基于这种方法在20年前便超越了顶级人类双陆棋手的事实,在过去的二十年间硬件技术得到了显著进步的同时还引入了现代深度神经网络架构及可扩展性更强的人工智能算法体系是否因此带来了根本性的创新突破?
与类似TD-Gammon的在线方法相比,在线强化学习领域中的另一种方法是采用经验重放(experience replay)机制。每个时间步智能体都会存储其经验 e_t = (s_t,a_t,r_t,s_{t+1}) 并将这些经验存入数据集 D = e_1,...,e_N 中,并将其收集到经验重放机制中。在算法内部循环期间,在算法内部循环期间,在算法内部循环期间完成Q-learning更新或小批量更新过程时会应用从存储样本池中随机抽取的经验样本 e ∼ \mathcal{D} 进行训练。完成经验回放后,在完成经验和回放后,在完成经验和回放后智能体随后根据 \epsilon-greedy 策略选择并执行动作。考虑到将任意长度的历史输入至神经网络存在难度,在考虑输入历史长度时考虑到将任意长度的历史输入至神经网络存在难度的情况下的情况下的情况下作者将Q函数进行了改进设计,并使其基于函数\phi生成固定长度的历史表示。这种改进后的算法被命名为深度Q学习(deep Q-learning),如图1所示展示了该算法的整体流程框架

与标准的在线 Q-learning 相比,这种方法有几个优点。
- 首先,在每一次经验中都有可能被用来完成多个权重更新的过程。
- 其次,在执行策略时因为样本之间存在较强的关联性而使得直接从连续的状态中获取信息会导致效率低下;随机打乱顺序打破这些关联关系从而降低了更新过程中的方差水平 。
- 第三,在执行策略时当前策略决定了下一个训练数据的状态与动作。例如当最大化动作选择向左移动时则会主要从左侧的历史状态中选取数据作为训练集;如果随后选择向右移动则会切换到右侧的历史状态作为主要来源构建新的训练集。这种动态变化很容易导致反馈机制引发不希望的结果如陷入局部最优解或者出现参数爆炸的情况。通过引入经验回放机制将历史状态的数据进行平均处理以增强稳定性并避免模型在更新过程中出现振荡或发散的问题 。需要注意的是在采用经验回放的情况下必须进行策略外的行为学习(因为当前策略与生成数据所使用的策略存在差异)这也正是Q-learning算法得以应用的原因。
在实践中,算法仅将最后 N 个经验元组存放于重放空间中,并在执行更新时从 \mathcal{D} 中随机均匀地进行采样。这种做法存在局限性,在于内存缓冲区无法区分重要的转换操作,并且由于有限的内存容量 N 总是使用最近的转换来覆盖旧的数据。同样地,统一采样对重放空间中的所有转换给予同等的重要性考量。更为复杂的抽样策略可能会更加注重我们能够从中学习到最多的过渡事件,在这种情况下类似于采用优先扫描的方式进行处理**。
3.1 Preprocessing and Model Architecture

直接对原始 Atari 帧进行处理(即 210 × 160 像素图像和 128 色)时
存在多种利用神经网络参数化Q值的方法。Q函数将历史-动作对映射至相应的Q值估计,在这些方法中通常会采用历史与动作信息作为先前方法中的神经网络输入。然而该架构的一个显著缺点在于需分别进行前向传播以计算每个可能的动作对应的Q值从而使得总计算成本与可选动作的数量呈线性增长。为此作者采用了另一种架构设计在该设计中,默认情况下每一个可选的动作都会有一个独立的目标单元输出端则对应着针对当前状态下各个可选动作的具体Q值预测而状态信息则直接作为神经网络的核心输入
该作者目前详细阐述了针对全部七款 Atari 游戏所采用的具体架构。该神经网络系统中的输入部分是基于 \phi 生成的一个 84×84×4 的图像数据集。随后的第一个隐藏层应用了16个步长为4的8×8滤波器对输入图像进行卷积操作,并随后施加激活函数以引入非线性特性。接着第二个隐藏层应用了32个步长为2的4×4滤波器对信号进行进一步处理,并同样施加激活函数以增强模型的学习能力。在此之后的那个隐藏层是一个全连接层,在每个有效动作上都对应一个输出值。在该作者所考虑的游戏类型中,每个游戏的有效动作数量通常介于4至18个之间。通过这种方法所训练出的卷积网络则被命名为Deep Q-Networks(DQN)。
