文章摘要:本文是第一篇使用深度学习和强化学习结合起来的模型的论文。作者采用CNN作为深度学习模型,结合Q-Learning强化学习算法进行训练。CNN的输入为高维原始像素,输出为估计期望奖赏的估值函数。通过本文训练的神经网络在7个Atari 2600游戏上的得分有6个胜过了以往最好方法,有3个游戏超过了人类专家。

 

深度学习与强化学习的结合:

一方面,强化学习在视频和语音方面的主要困难在于,学习过程依赖于大量手工标注的特征,这使得学习算法的效果极大地取决于特征的标注质量。

另一方面,深度学习在视频和语音领域取得了极大的成就,神经网络在提取复杂高维特征方面有着极大的优势,在此方面使用神经网络来结合强化学习看起来是一种很自然的技术。

RL与DL结合的困难之处:

1.神经网络依赖于大量有标签数据的监督训练,而强化学习的训练通常只有一个reward返回值,而且它通常具有噪声,稀疏性和延时性。

2.神经网络的训练数据通常应该具有高度的独立性,而强化学习需要一系列高度相关的状态序列。

3.神经网络需要均衡的样本分布,而强化学习不断产生新的样本,样本的分布随时发生改变。

DQN的解决办法:

本文通过使用一个CNN网络和Q-Learning算法结合的方法来解决这些问题,采用随机梯度下降的优化算法,同时采用了一种名为experience replay mechanism的经验重播机制方法来解决数据分布不均衡的问题。

 

Q-Learning算法回顾:

强化学习通过Agent与环境的交互来不断学习最优的策略,Agent的目标就是获取最大奖赏。

定义在论文笔记:《Playing Atari with Deep Reinforcement Learning》时刻未来能获得的回报为:论文笔记:《Playing Atari with Deep Reinforcement Learning》,即回报随着时间会有一定的衰减。

最优的动作-值函数为:论文笔记:《Playing Atari with Deep Reinforcement Learning》

比较基本的方法是采用动态规划的方法计算最优的Q值,因为序列符合MDP,我们得到如下的迭代公式:

论文笔记:《Playing Atari with Deep Reinforcement Learning》

带迭代次数趋于无穷时,Q逼近与Q*。

然而这种方法在实际应用中是完全不可行的,因为每个序列的值函数是单独估计的,没有任何普遍性。另外,当状态-动作空间太大时,使用Q-Table更新是不现实的。所以通常的做法是把Q值的更新看作是一个函数拟合问题,通过参数拟合来逼近最优函数:论文笔记:《Playing Atari with Deep Reinforcement Learning》。如果我们想要拟合一个非线性函数,那么神经网络无疑是非常合适的选择。利用SGD算法最小化损失函数:论文笔记:《Playing Atari with Deep Reinforcement Learning》来训练。这种算法是无模型的,而且是off-policy的,因为它通过e-greedy来选择动作。

 

一些相关工作:

此前已经有人提出过将深度学习和增强学习相结合的方法了。TD-gammon算法将Q-Learning与一个单隐层的神经网络相结合,但是并不具备通用性,并且人们发现model-free方法与非线性拟合相结合很容易造成Q-Network不收敛。目前,神经网络主要被用于为环境建模,为估值函数建模和为奖赏建模。不过这些方法在使用非线性函数来估计固定策略或者使用线性函数来估计控制策略是可以收敛的。,但还没能拓展到非线性控制中。

 

深度强化学习(核心):

深度强化学习的目标是直接从高维像素中学习到策略。

创新点:

TD-gammon的直接从on-policy序列中学习不同,DQN采用了经验回放机制,将论文笔记:《Playing Atari with Deep Reinforcement Learning》的经验存入一个固定大小的数据集中,之后的训练中随机从经验池中选区minbatch个数据集用于训练。因为数据选取的随机性而有效避免了训练样本高度相关性的问题,解决了训练问题,同时,经验的每一步都可能用于许多权重更新,从而提高数据效率。 并且,通过使用经验重放,在许多以前的状态下对行为分布进行平均,平滑学习,避免参数的振荡或发散,避免陷入糟糕的局部最小值。同时算法仅保存最新的N个经验样本,解决了内存问题。

下面分析算法的具体流程:

论文笔记:《Playing Atari with Deep Reinforcement Learning》

1.初始化经验池

2.随机初始化网络权值

3.对于每一次游戏片段迭代,获取预处理的图像输入

4.根据e-greedy算法选择下一次的动作,计算下一帧图像和奖赏

5.将得到的数据打包存入经验池

6.从经验池中随机选取数据,计算网络的输出

7.用SGD算法更新权值

 

模型上的优点:传统的方法将状态-动作作为网络的输入,Q为网络的输出。这种方法的缺点在于,状态-动作的空间很大,运算的次数和空间的大小是成正比的。不同的是,作者把状态作为网络的输入,对于每个action,都有一个输出通道输出它的Q值,只需一次前向传播就能得到所有的action对应的Q值。

有待改进的地方:由于输入都是短暂的片段,只适用于处理只需短时记忆的问题,无法处理需要长时间经验的问题。

最终的实验结果:

论文笔记:《Playing Atari with Deep Reinforcement Learning》

DQN在7个Atari 2600游戏上的得分有6个胜过了以往最好方法,有3个游戏超过了人类专家。

对于该DQN方法的一点思考:

用同一种网络和算法以及同样的超参数设定的网络能用于学习多种类似的游戏并取得较高的水平,这是一个极大的进步。但是我对于这种方法的通用性有一定程度的怀疑,该算法是否为一个通用的算法,是否适用于这个领域以外的问题。比如,该算法是否只是学会了单个游戏的通关方法,而不具备学习取得游戏胜利的普遍规律的能力,或者说不能学会胜利与决策之间的因果关系。这样的话这种算法只能针对于一个领域的任务,而无法迁移到其它领域中去。这可能是下一步的解决目标。

 

 

相关文章: