前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >塔秘 | DeepMind到底是如何教AI玩游戏的?

塔秘 | DeepMind到底是如何教AI玩游戏的?

作者头像
灯塔大数据
发布2018-04-04 14:20:45
2K0
发布2018-04-04 14:20:45
举报
文章被收录于专栏:灯塔大数据灯塔大数据

导读

DeepMind到底是如何教AI玩游戏的?这篇在Medium上获得1700个赞的文章,把里面的原理讲清楚了。

谷歌的DeepMind是世界一流的AI研究团队,其研发的AlphaGo在2016年备受瞩目的人机大战中击败了韩国围棋冠军李世石(Lee Sedol),一战成名。AlphaGo背后的关键技术就是深度强化学习(Deep Reinforcement Learning)。

这篇论文讲了些什么?

这得从4年前说起。

彼时,DeepMind开发了一个AI程序,它能玩Atari公司70年代推出的一系列游戏,如Breakout(打砖块)、弹球游戏《Pong》和《太空入侵者》(Space Invaders)。正是由于这项研究,谷歌收购了DeepMind,同时它也奠定了AlphaGo的基础。

今天我们将逐段解析原研究论文《Playing Atari with Deep Reinforcement Learning》,便于刚开始接触强化学习的读者理解。

摘要

我们提出了首个可以成功利用强化学习直接从高维感官输入中学习控制策略的深度学习模型。该模型是一种用 Q-learning的变体算法训练的卷积神经网络,其输入是原始像素,输出是预估未来奖励(rewards)的价值函数。我们将该方法应用到Arcade模拟器中的7款Atari(雅达利)2600游戏上,没有对架构或算法做任何调整。最终,在6款游戏中,我们的方法完胜之前的所有方法,并且在其中3款游戏中战胜了一名人类游戏专家。

我们的目的是利用深度学习让机器人学习如何玩Atari游戏。

这里所说的机器人实际上指的是卷积神经网络。它和真正的端对端深度学习差不多,因为卷积网络获取输入的方式和人类游戏玩家相同——直接观察屏幕上的图像,每移动一下就会奖励或改变分数。而网络作出决策时需要的就是这些信息。

那卷积神经网络输出的是什么?

理论上,我们想让网络选择其认为之后能得到最多奖励的动作。但是我们并没有这样做,而是让它给18个可能的游戏手柄动作分配“分值”。简单来说,就是“分值V对应动作A”,即神经网络预估如果执行动作A,未来就会得到分值V。因此这个神经网络本质上是一个价值函数,它将屏幕状态和奖励变化作为输入,输出每种可能动作所对应的分值。这样,你就可以选择分值最高的动作,或者根据编程全面玩家(overall player)的方式选择任何动作。

1 引言

从视觉和语音这样的高维感官输入中直接学习如何控制代理(操作的对象,agent)是强化学习(RL)的一项长期挑战。在相关领域中,大多数成功的RL应用都依赖于人工生成特征以及线性价值函数或策略表示(policy representations)的。显然,此类系统的性能很大程度上依赖于特征表示的质量。

如何让神经网络理解屏幕上游戏中的图像?一种方法是直接将图像输入到神经网络中,不对其作任何处理;另一种方法是,将屏幕上的图像总结为数字形式的信息,输入到神经网络。本论文将第一种方法称为“高维感官输入”,将第二种方法称为“人工生成的特征表示”。

深度学习的最新进展使得从原始感官数据中提取高级特征成为可能,得益于此,计算机视觉[11,22,22]和语音识别[6,7]研究也实现了很多突破。这些研究使用了卷积网络、多层感知器(multilayer perceptrons)、受限玻尔兹曼机(RBM,restricted Boltzmann machines)和循环神经网络等一系列神经网络架构,而且监督学习和无监督学习都有用到。说到这,我们就自然而然想到了这样一个问题:类似的技术能否用来解决强化学习中的感官数据问题?

阅读摘要后,就可以轻松理解本段。

然而,从深度学习的角度来看,强化学习会遇到以下几个挑战:

● 首先,目前大多数成功的深度学习应用都要求具备大量的手动标注的训练数据;而且,强化学习算法还必须能成功学习大量稀疏、嘈杂且延迟的标量奖励信号(scalar reward signal)。动作和对应的奖励之间的延迟可达数千个时间步长。与监督学习中输入与结果之间的直接关联(direct association)相比,这样的延迟尤显严重。

● 另一个问题是,大部分深度学习算法都假定数据样本是独立的,而强化学习中通常都是关联度很高的序列样本。

● 此外在RL中,随着算法学习新行为,数据分布会发生改变;而深度学习则假设潜在分布是固定的。

在强化学习中,深度学习(DL)方法不像在监督/无监督学习中那么好用。大多数DL应用要求有大量的带有准确样本和标签的训练数据集。在无监督学习中,目标成本函数仍然很好用。

但是在RL中,你会遇到这样的问题:

● 奖励可能会延迟很多时间步长(例如在国际象棋中,要走很多步才能吃掉对方的皇后,其他每一步都不能像最后一步那样即时得到反馈奖励,而有些步数可能比最后一步还要重要)。

● 奖励机制可能很混杂——例如,某一动作对应的分数有时是随机分配的,预测起来很难!

● 在DL中,我们常常假设输入样本之间没有关联性。例如,在图像识别网络中,训练数据往往包含大量的随机组织的无关联图像。但是在学习如何玩游戏时,动作策略的制定不仅取决于画面的当前状态,而且还要考虑先前的状态和动作。所以,我们不能轻易地假设样本之间互不关联。

为什么训练数据样本要互不关联呢?假设你有5个动物图像样本,你想让网络学习将它们归为“猫”和“不是猫”这两个类别。如果其中一张图像中有猫,这会影响另一张图像归为“猫”类别的概率吗?并不会。但是在视频游戏中,上一帧画面必然与下一帧相关。如果激光束摧毁飞船需要10帧画面,我敢肯定你从第9帧就可以预测到第10帧的结果。在进行学习时,你不应将间隔只有几毫秒的两帧看作为互不相关,因为这两帧明显都携带与对方相关的重要信息。它们都是相同“事实”(激光束射击你的飞船)的组成部分。

而且训练数据本身会随着神经网络学习新策略而发生变化,这就使得网络更难用训练。

什么意思呢?比如,你是一个国际象棋新手。你第一次玩国际象棋时使用的是一些初级的策略,比如向前移动棋子,一逮住机会就吃掉对方的兵。当你继续学习这些行为并为吃掉对方的兵感到高兴时,这些走法就相当于你当前的训练集。但是,当有一天你尝试使用一种不同的策略(比如牺牲一个象来救自己的皇后,并吃掉对方的车)时,你会突然发现这个新策略太了不起了,于是便将这个新策略添加到你的训练集中。如果你只是一直练习使用刚开始学习时的初级策略,那么你就永远学不到这个新策略。

不稳定数据分布就是这样形成的,而这种变化通常不会发生在监督/无监督学习中。

面对这些挑战,如何训练神经网络?

这篇论文论证了卷积神经网络可以克服这些挑战,在复杂的RL环境中从原始视频数据学习成功的控制策略。我们用Q-learning 的变种算法训练神经网络,并利用随机梯度下降法更新权重。为了缓解关联数据与不稳定分布带来的问题,我们使用了一种经验回放机制(experience replay mechanism),这个机制可以随机采样之前的转换,因此可以通过大量的历史行为平缓训练数据分布。

在本文中,我们阐述了如何解决上述问题,直接使用原始视频/图像数据。

这里需要说明一个机制——“经验回放机制”,它可以解决“数据关联”以及“不稳定数据分配”(具体解释请参看前文)的问题。

我们记录了所有经验——好比在围棋中,每个经验就像是[当前棋位,移动棋子,获得奖励,新的棋位] ,这些都储存在记忆中。训练时,我们选取随机分布且互不关联的经验集。在每个经验集(batch)中,不同的经验也可能与不同的策略相关联,因为先前所有的经验和策略现在都混为了一体!这不仅会使训练数据样本变得更加随机和关联性更弱,还会使神经网络的训练数据分布更加稳定,因为每个新的经验集已经包含了大量的随机策略经验。

我们将此方法应用到通过ALE(街机游戏模拟器,Arcade Learning Envi-ronment)实现的一系列Atari 2600游戏中。Atari 2600是一个极富挑战的RL测试平台,拥有高分辨率(210×160 RGB,60Hz)视频输入的代理(agent),以及各种有趣的游戏任务,专为人类玩家设计,具有较高的难度。我们的目标是在不提供任何游戏信息、人工设计的视觉特征,以及关于模拟器内部状态的信息的情况下,创建一个神经网络代理,使其能学习玩尽可能多的游戏;它只能学习视频输入、游戏奖励和终端信号,并像人类玩家一样学习一系列可能的动作。此外,该神经网络的架构和用于训练的所有超参数在所有游戏中都保持不变。

截至目前(2013年),这个神经网络已经在7款游戏中的6款上完胜此前所有的RL算法,并且在3款游戏中超越了人类游戏专家的水平。图1展示了用于训练的5款游戏的截屏。

本段大部分内容很容易理解,重点是所有游戏中的神经网络架构和超参数(学习率等)完全相同。我们并没有在《太空入侵者》中使用较大的神经网络,在《乒乓球游戏》(ping-pong)中则使用较小的网络。在每个新游戏中,我们都从零开始训练神经网络,而且神经网络的架构都是相同的。这很了不起,不是吗?

2 背景

在我们选取的任务中,代理通过一系列的动作、观察和奖励与环境(在本研究中为Atari模拟器)进行交互。在每一个时间步长中,代理从一组合理的游戏动作中选一个动作A = {1, ... , K},再将这个动作传到模拟器,改变模拟器内部状态和游戏得分。通常情况下,ε是随机的。代理无法观察到模拟器的内部状态,但它可以从模拟器中观察到

表示当前画面的原始像素的一个向量。另外,代理还会收到表示游戏得分变化的奖励。

注意,通常游戏得分可能取决于先前一系列的动作和观察; 某一动作的反馈可能经过数千个时间步长才能收到。

前几句很容易理解。“ε是随机的”的意思是说环境不一定都是可以预测的(游戏中哪有不变的真理?什么事都有可能随时发生)。

这里重复强调了神经网络不会获得任何关于游戏内部状态的信息。比如,我们不会让神经网络学习“这个位置会有一个怪兽朝你射击并向某一方向移动,你的飞船会在这里出现并移动到那里”等,我们只是输入图像,让卷积神经网络自己确定怪兽在哪儿,玩家在哪儿,谁在朝哪儿射击等等。这就是所谓的像训练人类一样训练神经网络。

由于代理仅观察当前画面中的图像,所有无法全面观察到任务。而且,在感知上,许多仿真器状态在感官上都是混叠的,也就是说,不可能仅根据当前画面就完全了解当前的情况。 因此,我们还要考虑动作、观察序列

并学习基于这些序列的游戏策略。假设模拟器中的所有序列都在有限的时间步长上终止。 这种形式化表达会生成一个庞大却有限的马尔可夫决策过程(Markov Decision Process,MDP),其中每个序列都是一个不同的状态。因此,我们可以将完整的序列作为t时刻的状态表示,在马尔科夫决策过程中使用标准的强化学习方法。

感知混叠:指的是两种不同的状态或位置在感知上被视为相同。比如,在一栋建筑中,如果只借助视觉信息,几乎不可能确定某一位置,因为所有走廊可能看起来都相同。感知混叠就是这样一个问题。

在Atari游戏中,每毫秒的游戏状态不会发生多大变化,人类也无法在毫秒内做出决策。因此当输入每秒60帧的视频时,我们将每帧看作一个单独的状态,训练数据中的大部分状态看起来几乎都一样!因此,我们选择隔几帧(比如至少4到5帧)观察一下“状态”。我们将之称为连续帧序列,并将一个序列作为一个状态。此外,当人类玩家移动游戏手柄时,数毫秒内游戏手柄通常都保持不动,这会包含到状态中。

每一帧都会持续执行相同的动作。每个序列(包括数帧和各帧之间相同的动作)都是一个单独的状态,而且这个状态仍然适用于马尔可夫决策过程(MDP)。

如果你研究过RL,你就会知道MDP是什么以及它们的作用有哪些!MDP是RL中的核心假设。

代理的目标是通过以最大化未来奖励的方式选择动作,与模拟器进行交互。我们做出标准假设:惩罚(惩罚因子γ)每个时间步长的未来奖励,并将时间t的惩罚后的未来奖励定义为

其中T是游戏终止的时间步长。我们将最优动作值函数

定义为通过遵循任何策略可实现的最大预期奖励,在观察到某序列s后采取某种行动a后,

其中π是将序列映射到动作(或动作分布)上的策略。

要想理解这部分内容,你首先要有一些强化学习和Q-Learning算法的背景知识。你应该理解贝尔曼方程(Bellman equation)的作用、什么是惩罚后的未来奖励等。我在这里会给出一个非常简单的Q-Learning算法说明。

上文中我们提到了“价值函数”,不记得的话再重新阅读一下摘要。

现在假设你有一个这样的表格,表格的行代表所有可能的游戏状态,列代表所有可能的游戏手柄动作。每个单元格代表如果你执行某一动作而且在之后的游戏中发挥了最佳水平的话所能获得的最大未来总奖励。这意味着你现在有一张“作弊纸条”,它会告诉你在任何状态中执行某一动作会产生什么结果!这些单元的分值被称为Q-star值(Q*(s,a)):对于状态s,如果执行动作a,表格就会给出最大未来分值Q*(s,a)。

在最后一行中,π代表“策略”。策略是指在某一状态中选择执行哪种动作的决策方法。

最优动作值函数遵循一个名为贝尔曼方程的重要函数。 这是基于以下直觉:如果下一个时间步长的序列的最优值

对所有可能的动作都是已知的,则最优策略是选择最大化

预期值的动作

假设你处在状态S1,你从表格(第3段有解释)中获知了所有可能动作的Q*值,然后选择了A1,因为A1的Q*值最高。你得到一个奖励R1,游戏进入到另一个不同的状态S2。在S2中,(例如)选择表中的A2,就会获得最大未来奖励。

现在,初始Q*值——Q*(S1,A1)就是你从此状态起发挥最佳游戏水平所能得到的最大分值,这意味着Q*(S1, A1)应该等于奖励R1与下一状态的最大未来奖励Q*(S2,A2)之和!我们的目的是减小下一状态的影响,因此我们将Q*(S2,A2)乘以γ(0到1之间),这就是所谓的惩罚(discount)Q*(S2,A2)。

因此 Q*(S1,A1) = R1 + [γx Q*(S2,A2)]

许多强化学习算法背后的基本思想都是通过将贝尔曼方程作为迭代更新来估计动作值函数的

这种价值迭代算法可以收敛为最优动作值函数,即,。实际上,这种方法是完全不切实际的,因为每个序列的动作值函数都是分别估计的,没有任何通用性。相反,我们常使用函数逼近器来估计动作值函数

强化学习中经常使用的都是线性函数近似器,但是有时也会使用非线性函数近似器,如神经网络。我们将权重为θ的神经网络函数近似器称为Q网络。我们可以通过最小化在每次迭代i改变的一系列损失函数来训练Q网络,

其中

是迭代i的目标,是序列s和动作a的概率分布,我们将之称为行为分布。当优化损失函数时,前一迭代的参数保持不变。

注意,目标取决于网络权重; 这与用于监督学习的目标形成对比,这些目标在学习开始之前就保持不变。

对关于权重的损失函数进行差分,我们可以得到以下梯度

我承认读了我的解释后你也许仍会发现这部分很难理解。在这里多花些时间。

再捋一遍之前的方程。

我们假设“已知”任何状态以及任何未来动作的价值函数,并能借助函数选出当前状态的最优动作(通过对所有可能的Q值进行迭代,我们可以真正地预测未来)。但实际上,这样的Q函数根本不存在!我们能做的最多是使用另一函数来“近似”Q函数,并通过重复测试该近似函数来一点一点对它进行更新。这个近似函数可以是简单的线性多项式,也可以是非线性函数。因此我们选择一个神经网络作为我们的“近似Q函数”。现在你应该明白我们为什么要研读这篇论文了吧。DeepMind先使用神经网络近似Q函数,然后再借助该网络预测最优动作,从而让计算机学习玩ATARI游戏。学习一定时间后,计算机会更好地理解奖励的运作机制,而且还会自行调整神经网络(通过调整权重),这样网络就会越来越远接近“真实的”Q函数!当达到足够好的近似程度时,我们发现该网络的预测能力竟然能超越人类。

通常我们选择通过随机梯度下降法来优化损失函数(这样计算起来更快捷),而不是计算上述梯度的完整期望值。如果在每个时间步长后更新权重,分别用行为分布ρ和模拟器 ε 中 的单个样本替换期望,我们就会得到熟悉的Q-Learning算法[26]。

注意,该算法是无模型的:它直接使用来自仿真器 ε 的样本来解决强化学习任务,并未特别构建 ε 的模型。该算法也是离策略性的:它学习极大值策略,同时遵循能够确保充分探索状态空间的行为分布。在实践中,行为分布通常是通过 ε 极大值(ε-greedy)策略来选择的,该策略遵循以概率为 1- ε 的极值策略,并选择概率为 ε 的随机动作。

现在先不管上面的一团数学推导(对我来说也很难!)。已知Q-learning算法是一种“无模型 ”算法。“无模型”的强化学习指的是代理不需要特别学习游戏的规则或物理学。在基于模型的强化学习中,常常需要根据用来计算下一状态的“转换矩阵”(给定某一当前状态和动作)以及用于计算奖励的“奖励函数”(给定某一当前状态和动作),来定义这些规则和物理学(physics)。

在本研究中,这两个元素因太过复杂而难以计算。仔细想想,我们并不需要它们!在这个“无模型”的方法中,我们只需要通过测试和试验来学习Q值函数,因为我们假设优秀的Q值函数本来就会遵循游戏的规则和物理学。

我们所用的方法是混合的。这样方法的差异颇为微妙,因为既有策略性的也有离策略性的。

假设处于状态s,需要从几个动作中选择一个动作。我们已知一个Q值函数的近似函数,我们计算了其中每个动作的近似Q值。当选择动作时,我们有两种选择方法。其中的“greedy”方法是选择Q值最大的动作,这是一种“极大值”策略,始终根据对游戏的现有理解来选择当前最有利的动作。但是开始时你并不知道Q值函数的近似函数,即使有一个好的策略,你仍然会想让AI检查其他可能的策略并预测各策略的结果。

这就是为什么“极大值”策略并不一定有效的原因。当进行学习时,你不会只想一直尝试你认为会有效的方法,你还会想尝试其他可能有效的方法,而且这样做还可以获得经验。

这就是策略性(极大值)和离策略性(非极大值)之间的差异。

为什么说我们使用的方法是混合的呢?因为我们会根据网络学到了多少,来换着使用方法。我们依据代理会选择哪个最优动作来改变概率。

这是怎么做到的?我们将概率设为(1-e)来选择最优动作,其中e为代表选择随机性的变量。因此,e=1代表选择是完全随机的,而e=0则表示始终选择最优动作。

首先,当网络刚开始学习时,我们将e值设定为非常接近1 ,因为我们想让AI系统探索尽可能多的策略。随着时间的推移,AI系统学会越来越多的策略,我们再将e值缩小到趋近于0,这样该AI系统就会停留在某一策略上。

3.相关工作

最著名的增强学习案例也许就是TD-gammon,这是一个完全通过强化学习和自我游戏学习的西洋双陆棋游戏程序,它的游戏水平超越了人类[24]。TD-gammon使用的是一种类似于Q-learning的无模型强化学习算法,它用带有一个隐藏层的多层感知器来近似价值函数。

Qiang:西洋双陆棋游戏是最受科学家喜爱的游戏,他们常常用这个游戏来测试他们的人工智能系统和机器学习算法。参考[24]使用的是一种无模型算法,这种算法的游戏水平超越了人类。无模型意味着算法的输入(屏幕上的图像)和输出(发现的最佳游戏策略)之间没有明显的等式关系。

Q-learning中的“Q”代表“质量(quality)”。当我们在某一状态中执行某一动作时,我们会使用Q函数来表示惩罚后的最大未来奖励。从这个状态起,之后的状态都始终执行最优策略(游戏策略)。

参考[24]中的方法的不同之处在于:他们用多层感知器(multi-layer perceptron ,MLP)来近似Q值函数。在他们用的MLP中,输入层和输出层之间包含有一个隐含层。

Qiang:类似的方法无法成功地应用于其他游戏,这使得人们不信任TD-gammon方法,他们将该方法在西洋双陆棋上的成功归因于骰子投掷随机性。

回顾前面几段,我们可以看出哪种函数可以用来近似理论上完美的Q值函数。显然,线性函数比非线性函数适合。

拿神经网络来说,线性函数可以使神经网络更易于收敛(可以神经网络调整权重的方式更加准确,而不是变得更加随机)。

Qiang:最近,研究人员又开始研究深度学习和强化学习的结合。他们使用深度学习算法估计环境、价值函数和策略。同时,又用梯度时序差分学习法部分解决了发散问题。但是正如论文所述,这些方法只能适用于非线性函数的近似函数,不能直接应用于非线性函数。

Qiang:NFQ与本论文中的方法最为类似。NFQ的主要原理是使用RPROP(弹性反向传播算法)更新Q网络的参数,优化等式2中的损失函数序列。而它的弊端则在于:由于NFQ使用的是批量更新,所以其计算成本与数据集大小成比例。本论文使用的是随机梯度更新法,这种方法在计算上更加高效。NFQ只能应用于简单的任务,不能应用于视觉输入,而本论文的算法可以进行端对端的学习。另一篇关于Q-learning算法的论文也使用的是低维状态,而不是原始的视觉输入;本论文克服了这个缺点。

Qiang:本段提出了Atari 2600模拟器的几种应用。在第一篇论文中,Atari 2600模拟器作为强化学习平台,作者借助线性函数的近似函数以及通用视觉特征应用了标准强化学习算法;使用更多特征并将特征映射到低维空间中,以改进结果;然后再利用HyperNEAT进化架构分别为每款游戏形成一个神经网络。这个神经网络可表示游戏策略,并且经过训练后还可以利用某些游戏中的某些设计缺陷。但是如该论文所述,此算法无需调整网络架构,就可以学习7款Atari 2600游戏的策略。

TD Gammon是一种策略性方法,它直接使用经验(s1, a1, r1, s2)训练网络(无经验回放机制等)。

本段阐述的是对TD Gammon作出的某些改进。第一个改进是经验回放,上文有说明。函数φ的作用是预处理图像等,因此我们将游戏的状态储存为最终预处理后的形式(下一部分会作进一步解释)

使用经验回放法有几个实际的优势(本段在下一页继续)。

第一,和常规的深度学习一样,每个数据样本都可重新使用多次,用以更新权重。在进行训练时,同一经验我们也可以使用多次,这是对数据的高效利用。

第二个和第三个优势非常相关。因为每个状态都与其之后的下一状态密切相关(玩视频游戏时也是一样),用连续状态训练权重会导致程序只遵循一种游戏玩法。根据Q函数预测一个动作,执行这个动作,然后更新权重,这样下次你就很可能会向左移动。如果打破这个模式,从先前的经验中随机抽取样本,就可以避免这些不必要的反馈循环。

从经验回放中收取简单样本固然是种好方法,但是有时你会想让代理学习游戏中的某一重要的转换。这就是该论文当前方法的一个局限。相关建议是:在使用经验回放时,选择概率更大的重要转移,或者采取其他类似操作。

(下文的所有内容都是基于前文中阐述的理论,很大一部分内容都是技术细节)

本段大部分内容很容易理解。状态S经过预处理后包含4个不同的帧,然后通过预处理将它们转换为灰度,调整尺寸并裁剪为84x84的方形图像。我的观点是,由于游戏每秒运行24多帧,人类的反应速度根本无法保证能在每一帧中都执行一个动作,因此合理的方法是在相同的状态中一次考虑4个连续的帧。

在构建网络架构时,你可以将S1和A1作为Q函数的输入,分别输出它们的Q值。但是这意味着在每一步中,该网络都必须全部运行一遍18种可能的游戏手柄操作,并比较这18种操作对应的输出。但是,我们可以只将S1作为输入,并使每个输出对应于某一给定游戏手柄操纵的Q值。用这种方法比较Q值要方便多!

前一半内容很容易理解。后一半讲的是该试验的要点:奖励作为代理的输入,而本试验改变了奖励的性质。因此,只要是正奖励就输入+1,负奖励则输入-1,无变化则输入0。这当然与真实有效的工作原理不同——奖励始终在变化,完成某些些任务获得的奖励要比完成其他任务获得的奖励高。尽管如此,在某些游戏中代理的表现还是超越了人类玩家!

我们在第2部分中解释了e-greedy以及经验回放。本段讲的是它们的实现细节。

在按照前文中的方法玩Atari游戏时,我们还使用了一种简单的跳帧(frame-skipping)方法[3]。更确切地说,代理在每kth帧而不是在每一帧观察并选择动作,在跳过的帧中则重复它的最后一个动作。由于模拟器向前运行一步需要的计算量少于代理选择一个动作的计算量,这种方法可以使代理在不大幅增加运行时间的情况下将游戏次数增加约k倍。除了《太空入侵者》(Space Invader),我们在其他游戏中都将k设为4,如果在这款游戏中将k设为4,就会看不见激光,因为跳过的帧与激光闪烁的时长相重叠。将k设定为3就可以看到激光,k值的改变就是不同游戏间的唯一超参数差异。

本段讲的是在训练期间使用的评估指标。在监督学习中,我们可以通过验证准确性(validation accuracy)来评估模型性能,但是在强化学习中并没有可用来作比较的验证集。那么有什么其他方法可用于检查模型是否在朝着某一目标训练或者权重是否只是在乱变化?本论文的目标是构建一个能在游戏中获得高分的AI代理,何不使用总得分作为我们的评估指标呢?我们可以让模型玩多款游戏,收集平均总得分。

但是在实际中,这种指标的评估效果并不好,因为它会十分嘈杂。还有什么其他指标呢?我们在本实验中的另一目标是找出一种可以确保获得最高得分的“策略”(如前文所述,这是一种离策略学习)。任何特定时刻的Q值代表AI代理预期的未来总奖励。如果AI代理找到了一种好策略,那么该策略的Q值就更高,对吗?现在让我们研究一下Q值本身是否能作为评估指标。实验结果表明,Q值似乎比平均总奖励更为稳定。但是这种方法并没有合理的理论解释,它只是碰巧可行而已。(实际上深度学习中这种情况很常见。某些方法就是可行,而其他某些方法虽然理论上可行但实际不可行。例如Dropout,这种方法虽然看起来天马行空但是却十分有效)

本段很简单,描述了价值函数在游戏中不同动作中的变化方式。

本段将本论文的结果与本领域先前研究的结果进行了对比。“Sarsa”指的是[s1,a1,r,s2,a2],这是一种策略学习算法(与我们的离策略学习形成对比)。这两种方法间的差异不是很容易理解,可以参考以下资料:

https://studywolf.wordpress.com/2013/07/01/reinforcement-learning-sarsa-vs-q-learning/

https://stackoverflow.com/a/41420616

除了给出学习代理(learned agents)的得分,我们还给出了人类专业游戏玩家的得分,以及一种均匀地随机选择动作的策略。人类玩家的表现表示为玩了两小时游戏后得到的奖励中值。

注意,我们给出的人类玩家的得分要比Bellemare等人论文[3]中给出的得分高得多。至于学习方法,我们遵循的是Bellemare等人的论文[3,5]中使用的评估策略,并且我们还通过将 ε 设定为0.05运行 ε 极大值( ε -greedy)策略来获得固定步数的平均得分。表1的前5行给出了所有游戏的各游戏平均得分。在这7款游戏中,我们的方法(DQN法)虽然没有吸纳任何关于输入的先验知识,结果还是大幅超越了其他学习方法.

原文链接:

https://medium.com/@mngrwl/explained-simply-how-deepmind-taught-ai-to-play-video-games-9eb5f38c89ee

文章作者:AI科技大本营

文章编辑:秦革

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 灯塔大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档