Human-Level Control Through Deep Reinforcement Learning论文解读

以下是我对Human-Level Control Through Deep Reinforcement Learning这篇论文的解读。首先是对本文提出的问题进行总结;其次综述性地阐述了本研究提出的算法及实验结果,并给出自己理解;最后对本研究方法论,即预处理、模型结构及训练细节进行总结。

问题提出

1.  强化学习中智能体(agent)在面对复杂外界环境时的局限性:他们需要从高维空间学习到输入数据的有效表征,并应用到新环境中,这是个富有挑战性的任务。

2.  传统的强化学习的局限性:只能用在人工提取特征的有效表征(handcrafted feature representations)的情景,或用于可观测的低维状态空间。

本文研究针对以上问题,本文研究将强化学习策略与深度卷积神经网络(CNN)结合起来,提出一种DeepQ-Network(DQN),它能够从输入的高维感知空间直接学习到知识,并通过端到端的强化学习策略(end-to-end)对智能体(agent)进行训练。本文以Atari游戏作为实验对象,以原始像素和游戏得分作为输入,实验结果表明该算法的性能好过之前所有的算法(包括传统的强化学习算法),并能够达到人类专业玩家的水平。本文研究的两大亮点:

1.  针对传统强化学习出现的不稳定甚至偏差现象,本文提出两种方式来解决这种不稳定问题

    a) 使用经验回放(experience replay)来去除观测值之间的相关性(removecorrelations),平滑数据分布(smooth over data distribution)并对数据进行随机抽样(randomover data).

    b) 对目标参数进行周期性更新(Q-learning updates),以减少动作值Q与目标值之间的相关性。

2.  用深度卷积神经网络(CNN)作为动作-值函数(action-value function)。利用卷积神经网络的层次特征表征及模拟生物机制的特点,通过观察状态s下的动作a,以折减系数γ计算出当前状态的value,最终的目标是最大化未来的累计奖励(maximize the cumulative future reward)。

在这里,我认为CNN的层次结构对于高维数据特征的学习是有充分的,有帮助的,也能有效解决上述问题1中智能体在高维空间中特征学习的局限性。其次,CNN的共享性原则也能大大减少深度网络的参数量及模型的复杂度,降低计算成本。再者,CNN的层次学习特点与强化学习策略的动作-值函数能够完美地契合。这可以理解为,给定一个输入,由CNN逐层地学习数据的特征表征(由低层到高层,由简单到抽象),agent根据逐层的特征表征做出相应的动作反应并得到每一步的奖励值,最终返回累计的未来奖励值,目标是使得未来的奖励值最大化。对于CNN学习到的一些低层次特征(low-level features),agent可能采取一些通用性动作(general actions);而对于一些高层次特征(high-levelfeatures,如一些class-specific features or patterns),agent会采取一些更有针对性的动作,所对应的奖励值也会越大。这样,CNN所提取的特征都能为agent每一步的动作决策提供依据,二者能够完美地结合起来以最大化未来的奖励函数。

更进一步地说,对于CNN能够适用的数据类型,都可以通过这种方式,让agent自主地通过学习的知识来做出下一步的决策,以得到未来的最大化奖励(或最优化决策);或者,将CNN替换成一些CNN变体(如ResNet, DenseNet等优秀的CNN变体结构)来学习更有效的特征表征;再或是替换成其他类型的深度神经网络(RNN、Capsule等)来适应不同数据类型特征提取的需要以扩展强化学习的适用范围。我认为这种将深度神经网络和强化学习策略结合的思想也是本研究最大贡献之处,而深度神经网络结构的选择可以视具体需求而定。

Methodology

1. Preprocessing:以Atari游戏为实验对象,预处理操作主要降低输入的维度及对Atari模拟器(emulator)的一些处理。首先是对单帧输入进行编码,对每帧的每个像素去最大值,以消除部分图像的缺失;再者是提取通道Y的数据并将其调整为84×84大小。

2. Architecture:模型的总体结构是给定一个状态作为输入,输出值为该状态下的每个动作的Q值。模型具体结构可见论文中图1说明,在此不详细说明。整体思路是将预处理后的84×84图像作为输入,中间层以一些带ReLU为激活函数的卷积层组成,输出层是线性全连接层,输出每个动作所对应的Q值,有多少个动作就有多少个Q值。

3. Training Details:用Atari游戏来验证本文提出的DQN算法,只改变reward设置,将其修剪(clip)在-1到1之间。此外,实验中使用了batch size为32的RMSProp优化算法,以ε-greedy算法,ε为线性退火率(ε由1线性下降到0.1)训练模型。实验过程采用跳帧训练的技巧,即不是对每一帧数据都进行学习,而是跳过几帧相同动作的数据,这样能够避免冗余学习,减少内存的无效占用,达到高效学习的目的。最后,将训练完毕的DQN模型用于测试阶段,每次的初始状态都是随机选取的,这能够减少模型的过拟合程度。

如有不足之处烦请批评指正!

发布了31 篇原创文章 · 获赞 30 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/linchunmian/article/details/79432538