首页 > 代码库 > Playing Atari with Deep Reinforcement Learning

Playing Atari with Deep Reinforcement Learning

这是一篇论文,原地址在:

https://arxiv.org/abs/1312.5602

我属于边看便翻译,边理解,将他们记录在这里:


 

 

Abstract:

  我们提出了第一个深学习模型,成功地学习控制策略直接从高维感官输入使用强化学习。该模型是一个卷积神经网络,用Q-学习的变体训练,其输入是原始像素,其输出是估计未来的值函数。我们运用我们的方法在Atari 2600 游戏中测试,没有调整结构或学习的算法。我们发现它比所有之前的方法都好,比人类专家玩得都厉害。

 

1 Introduction

  直接从高维的输入数据中来学习控制机器人,像是vision和speech这样,是加强学习的的长期目标。在这些领域运作的最成功的RL应用程序依赖于手动设置的特性,并与线性值函数或策略表示相结合。显然,这种系统的性能在很大程度上依赖于特征表示的质量。深层学习的最新进展使得从原始感官数据中提取高级特征成为可能,导致计算机视觉和语音识别方面的突破。这些方法使用一系列的神经网络结构,包括卷积网络,多层感知器,受限玻尔兹曼机神经网络,并利用有监督和无监督学习。类似的技术是否有益于加强和直接利用传感器数据?

 

  然而,强化学习从深度学习的角度提出了一些挑战。首先,迄今为止最成功的深学习应用程序需要大量的手工标记的训练数据。另一方面,RL算法必须能够从稀疏、嘈杂和延迟的标量奖励信号中学习。行动和得到的回报之间的延迟,可能会有数千个时间步长,与监督学习中输入和目标之间的直接关联相比,似乎特别令人畏惧。另一个问题是大多数深学习算法假定数据样本是独立的,而在强化学习中,通常会遇到高度相关的序列。此外,在RL中,当算法学习新行为时,数据分布也发生了变化,但这这对于深度学习方法来说,可能是个问题,因为深度学习的方法假设一个固定的潜在的分布。

 

  本文证明了卷积神经网络可以克服这些挑战,能够成功在一个复杂的RL环境当中从原始视频当中学习出一个控制策略。这个网络是由Q-learning的变体来训练的,使用随机梯度下降来进行更新权值。缓解相关数据和非平稳分布的问题,我们采用一个经验重播的算法,这会随机从之前的转变当中曲阳,因此能够在很多的过去行为当中会平滑训练的训练分布。

 

  我们采取我们的方法来去万Atari 2600游戏,这个是在ALE环境中实现的(The Arcade Learning Environment)。A2600是一个有挑战的RL的测试床,可以给机器人呈现210 × 160 RGB video at 60Hz 的视觉输入,并且一个多样化和有趣的任务集合用来给人类玩家进行挑战的。我们的目标是创建一个单一的神经网络代理,它能够成功地学习尽可能多地玩游戏。网络没有提供任何特定于游戏的信息或手工设计的视觉特征,也不了解模拟器的内部状态。它只从视频输入、奖励和终端信号以及一套可能的动作中学习,就像人类玩家一样。此外,网络结构和参数全部用于训练保持恒定在游戏。到目前为止,该网络在我们所尝试的七场比赛中,超过了以前的RL算法,超过了三个人类玩家。


 

2、Background

  我们考虑机器人要完成的任务,需要和环境技术分享进行交互,在这里,也就是 Atari emulator,有一个序列的行动,观察值和rewards。在每一个时间长度(time-step),机器人都会从一个合法的游戏行动当中选择一个行动技术分享

  技术分享 表示的是这个游戏的合法行动。

  这个行动会被传递到游戏模拟器,并且会修改它的内部状态和这个游戏的得分。一般来说技术分享 可能是随机的。这个模拟器的内部状态是不能够给机器人所观察到的。机器人只能够观察到的是图片技术分享,这是一个代表当前屏幕的原始像素值的一个响亮。除此之外,它还会收到一个奖励值:技术分享,代表的是游戏得分的改变。注意,一般情况下,游戏的得分可能是依靠之前的整个的行动和观察值;对于一个行动的反馈可能是很多个time-steps之后才会进行返回。

  

  由于代理只考察当前屏幕图像,这个任务是部分可以被观察的,并且很多模拟器的状态是感知上的别名的,也就是说,要从当前的屏幕技术分享完全了解当前的情况是不可能的。因此,我们考虑行动和观察的序列 ,

   技术分享 技术分享

  并且依靠这些序列来学习游戏的策率。所有的在模拟器中的序列都是被假设会在一个有限的时间序列中结束。这种形式产生了一个大但有限的马尔可夫决策过程(MDP),其中每个序列是一个不同的状态。因此,我们可以运用学习方法MDPs,只要简单地使用完整的序列技术分享作为代表在时间t的状态。

   机器人的目标是通过选择动作来进行和模拟器进行交互,然后使将来的回报达到最高。我们作出了这样一个标准的假设,未来的回报是会被一个因子技术分享,在每一个time-step,都会被进行折扣。并且定义未来的时间 t 被打折的回报作为:技术分享

  其中T是这个游戏结束的time-step。我们定义最优的 action-value 函数为 技术分享最大的期望回报,是由下面的任何一个策略所获得的,在看到一些序列 s 然后采取一些行动 a后, 

技术分享

  其中,技术分享是一个映射序列到行动的策略(或是随着行动而产生的分布)

 

  最优的action-value函数遵循一个重要的标识,就是 Bellman equation 。 这个是基于下面的直觉而得出的。如果一个序列技术分享的最优值技术分享 在下一个time-step,对于所由的可能的动作技术分享,那么最优的测录额就是选择行动技术分享使得下面等式的期望值最大化 技术分享

  技术分享

  在很多加强学习算法的背后的基本的想法就是估计action-value函数,通过使用Bellman equation 作为迭代的更新,就得出

   技术分享  技术分享

  这样的一个值迭代的函数,会在趋向无穷的时候,迭代达到最优的值,

  技术分享

  然而,在实际上,这种基本的方法是完全不可行的,因为 action-value 函数是每个序列都会分开估计的, 而不是相互之间互相影响(也就是求出一个,另外一个是可以解出的)。

  然而,更加可见的是,使用一个函数的估计,来对 action-value 函数进行一个估计。技术分享

  在加强学习的社区当中,这是一个线性的函数估计函数,但是有时候也使用非线性的估计函数,比如说使用神经网络。我们所指的神经网络估计,是带有一个参数weight 技术分享作为一个Q-network。一个Q-network 可以通过减少损失函数 技术分享 来作为训练, 这个损失函数,在每一次迭代 中都会进行改变。

技术分享

  其中技术分享 是这次迭代的目标,技术分享是一个经过了序列 s 和 行动 a 的一个概率分布,我们把它称为  behaviour distribution。

  从上一次迭代 技术分享 中得到的参数是固定的,当优化损失函数 技术分享 的时候。注意,注意,目标取决于网络权重;这与用于监督学习的目标形成对比,监督学习的目标是在学习开始前就已经固定的。将损失函数与权重区分开来,我们得出以下梯度

  技术分享

  与计算上述梯度的完全期望值相比,随机梯度下降法优化损失函数往往是计算方便的。如果权重每一time-step更新后,期望通过从行为分布ρ和仿真器分别为单样本代替,然后我们来到熟悉的Q学习算法。

  注意,该算法是无模型的:它直接利用仿真器中的样本解决了强化学习任务,没有明确地构造一个模拟器的一个估计。

  这也是没有策率的: 它学习贪婪策略技术分享 ,遵循行为分布,确保对状态空间进行充分的探索。

   在实践中,行为分布通常是通过一个 技术分享的策略(同时也会产生一个技术分享的贪心策略)来进行选择的,并且会由概率技术分享尽心随机选择一个概率。


 

看完背景后,蒙逼了没,我第一次看完,睡起来就不记得由什么鬼跟什么鬼了,重看一遍,总结总结吧:

元素:

技术分享

技术分享

技术分享

技术分享

技术分享技术分享

技术分享 技术分享

技术分享 技术分享技术分享 技术分享

技术分享 技术分享

技术分享 技术分享

 技术分享

技术分享

技术分享

 

 

 

背景的第一部分

  描写游戏的过程:

  也就是文字的第一段,主要描写过程。

 

背景第二部分

  描写这个些游戏,能够被建模成一个MDP的依据,并且,使用序列 st来作为状态的序列。

 

背景的第三部分:

  游戏的目标:最大化未来的回报

  所作的一个假设:回报会被一个未来的折扣因子折扣。

  定义了 有折扣因子的未来的回报的公式

  定义了最优的action-value函数,这个函数的意思是,在状态序列 s 后,采取行动 a 的 最大化未来收获就是 Q ()。 π 是行为后的概率分布

 

背景的第四部分:

  action-value 遵循一个等式:Bellman equation。

  述说它的根据:如果有一个序列 技术分享,它的最优的值是 技术分享,这说明,要想取得最优值,下一个行动,它就得采取了行动技术分享。选择了这个行动,就可以最大化 技术分享这个等式的期望值。这个等式的意思就是 回报 r 加上 一个折扣后的最优值。于是,根据这个等式,得出了最优值的一个公式:

技术分享

这个公式给我的感觉就是,联系了序列S和序列 技术分享

 

背景第五部分:

  根据平常的方法来解它,是不可行的。 

  所以必须使用一个估计的方程。新的方法是使用一个Q-network来进行估计。这个Q-network能够使用一个损失函数来进行训练优化。

  

 

  

 


 

Playing Atari with Deep Reinforcement Learning