不使用深度学习,进化算法也能玩Atari游戏!

深度学习因为其强大的表征能力,在很多方面都有非常优秀的性能,它不论是在计算机视觉、自然语言处理,还是在游戏智能体上都能构建出优秀的模型。而最近图卢兹联邦大学等研究者表示进化算法也有着与深度学习相类似的潜力,它可以进化出一些能玩 Atari 游戏的智能体,并取得与人类相匹配的性能。


近期街机学习环境(ALE)被用于对比不同的控制器算法,从深度 Q 学习到神经进化算法。Atari 游戏的环境在一个通用界面上提供了大量不同任务、可理解的奖励度量和令人兴奋的研究领域,且它所需的计算资源相对有限。无怪乎该基准套件得到了如此广泛的应用。

Atari 领域中的一个困难在于使用纯像素的输入。尽管与现代游戏平台相比,Atari 的屏幕分辨率不算高,但处理这类视觉信息对于人工智能体来说仍然是个挑战。人们使用目标表征和像素缩减方法,将该信息压缩成更适合进化控制器的形式。这里深度神经网络控制器表现更加优秀,原因在于卷积层和在计算机视觉领域的长期应用。

笛卡尔遗传规划(Cartesian Genetic Programming,CGP)在计算机视觉领域的应用也有很长的历史,尽管比深度学习稍微短了一些。CGP-IP 能够创建图像滤波器,用于去噪、目标检测和质心定位(centroid determination)。在强化学习任务中使用 CGP 的研究相对较少,本论文将展示首次使用 CGP 作为游戏智能体的研究。

简单而言,笛卡尔遗传规划是遗传规划的一种形式,其中程序表征为有向的、通常由笛卡尔坐标索引的非循环图。其中功能性节点通常由一组进化的基因定义,并通过它们的坐标连接输入与其它功能性节点。程序的输出由任何内部节点或程序输入基于进化的输出坐标得出。

ALE 提供了 CGP 和其他方法之间的定量对比。直接将 Atari 游戏分数与之前研究中的不同方法结果进行对比,以对比 CGP 与其他方法在该领域的能力。

CGP 的独特优势使得其应用在 ALE 上非常合适。通过定长的基因组,小型程序能通过进化生成并被读取以理解。虽然深度 actor 或进化神经网络的内部机制可能难以了解,但 CGP 进化的程序可以让我们深入理解玩 Atar 游戏的策略。最后,通过使用用于矩阵运算的函数集,CGP 能够仅使用像素输入而不使用先验游戏知识,在多种游戏上实现与人类相当的性能。

论文:Evolving simple programs for playing Atari games

  • 论文地址:https://arxiv.org/abs/1806.05695

  • 项目地址:hps://github.com/d9w/CGP.jl

摘要:笛卡尔遗传规划(Cartesian Genetic Programming,CGP)之前已被证明在图像处理任务中具备使用计算机视觉专用的函数集来进化程序的能力。类似的方法也可用于 Atari 游戏。使用混合型 CGP 和适用于矩阵运算的函数集(包括图像处理)来进化程序,但是允许出现控制器动作。尽管这些程序相对较小,但很多控制器的性能与 Atari 基准集的最优方法不相上下,且需要的训练时间更短。通过评估最优进化的程序,我们可以找到简单却有效的策略。

3 方法

尽管有很多在图像处理中使用 CGP 的案例,但在玩 Atari 游戏时这些实现必须进行修改。最重要的是,输入像素必须通过进化程序处理以确定标量输出,这需要程序减少输入空间。本研究选择的方法可确保和其它 ALE 结果的可比较性,同时鼓励有竞争力且简单的程序的进化。

图 1:使用 CGP 来玩 Atari 游戏,蓝色像素矩阵是进化程序的输入,进化的输出决定最后的控制器动作。这里展示了所有控制器动作,但大多数游戏仅使用可用动作的子集。带红色标记的动作表示一个按钮。

4 结果

图 2: Kung-Fu Master 游戏的蹲伏方法和玩家功能图。为简洁起见,这里忽略未激活的输出和导致这些输出的计算图。

图 3:Centipede 玩家,仅激活了输出 17,下-左-开火。所有其它输出导致空值或恒定零输入,此处未展示。

图 4:Boxing 游戏,使用像素输入来连续移动和采取不同动作。这里,CGP 智能体通过不断打击 Atari 玩家来缓慢移动,将 Atari 玩家逼到围绳处。

理论Atari进化算法
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~