Yonghyun Jeong等作者

DeforGAN:用GAN实现星际争霸开全图外挂!


对于广大星际争霸迷来说,地图全开作弊代码「Black sheep wall」应该是再熟悉不过了!如何根据现有状态预测未知信息是博弈过程中举足轻重的一环。日前,韩国三星公司的研究人员在星际争霸游戏中,将预测战争迷雾背后的作战单位信息建模为了一个部分可观察马尔科夫决策过程,并使用基于 GAN 的方法实现了当前性能最佳的战争迷雾去雾算法。
  • 论文地址:https://arxiv.org/abs/2003.01927

  • 项目地址:https://github.com/TeamSAIDA/DefogGAN

本文提出了 DefogGAN,这是一种推断即时战略(Real-Time Strategy,RTS)游戏中战争迷雾后的隐藏信息状态的生成式方法。给定一个部分可观测的状态,DefogGAN 可以将游戏的去雾图像作为预测信息生成。这样的信息可以创造战略智能体。DefogGAN 是一种条件 GAN 的变体,它使用了金字塔重建损失,从而在多个特征分辨率尺度上进行优化。本文使用一个大型专业的星际争霸录像数据集验证了 DefogGAN。结果表明 DefogGAN 可以预测敌方建筑物和作战单位,准确率与职业玩家相当,并且比当前最佳的去雾模型的性能更好。

AlphaGo 的成功为人工智能在游戏中的应用(Game AI)带来了极大的关注。通过深度强化学习训练的智能体可以在国际象棋、围棋和 Atari 等经典游戏中轻而易举地胜过人类。随着任务环境越来越复杂,实时战略游戏(RTS)成为了一种评估最先进的学习算法的方式。如今,Game AI 为机器学习带来了全新的机遇和挑战。开发 Game AI 的好处十分广泛,不仅限于游戏应用中。在科学中应用智能体(例如,在有机化学领域中预测的蛋白质折叠)和企业的商业服务(例如,天机器人)的探索,使 Game AI 正走向一个新的时代。

在本文中,作者提出的 DefogGAN 采用生成式方方法补全因战争迷雾造成的显示给玩家的不完全信息。本文使用星际争霸作为实验场景——这是一款 RTS 游戏,游戏中有三个均衡的种族供玩家选择,玩家要建立完全不同的游戏风格和战略。在发行逾二十年后,星际争霸依然是一款非常受欢迎的电子竞技游戏。为了实现让 Game AI 超越高水平人类玩家的艰巨目标,本文作者使用超过 30,000 场的职业玩家的游戏录像训练了 DefogGAN。在星际争霸中,这样的目标是很难实现的。因为星际争霸长期以来一直广受欢迎,玩家们开发出了各种各样的成熟的游戏策略,除此之外,在电竞现场和暴雪战网(Battle.net)中玩家们还广泛使用了微操技术。

图 1:DefogGAN 预测值和真实值的比较。友方和敌方单位在地图(黑色)上分别用绿色和红色表示。DefogGAN 预测出了观察不到的敌方单位。

战争迷雾指在某个没有友方单位的区域中,不能获得视野和信息,这样的区域包括所有之前探索过但目前无人值守的区域。部分可观察马尔科夫决策过程(Partially Observable Markov Decision Process,POMDP)最适合描述战争迷雾问题。一般而言,POMDP 为真实世界中大多数有大量未观察到的变量的问题提供了一个实用的表达方式。对 Game AI 来说,解决部分可观察问题是提升性能的关键所在。事实上,许多现有的设计智能 Game AI 的方法都会遇到部分可观察问题。最近,生成模型被用来降低部分可观察问题的不确定性。利用生成模型的预测结果,智能体的性能得到了提升。然而,生成方法无法完全与顶尖的人类职业玩家的高水平侦察技术匹敌。

星际争霸为研究与 Game AI 相关的复杂 POMDP 问题提供了一个绝佳的平台。本文作者利用生成对抗网络,建立了 DefogGAN,它可以根据生成的逼真信息准确预测隐藏在战争迷雾中的对手的状态。根据经验,本文作者发现,GAN 比变分自编码器(Variational Autoencoder,VAE)生成的图像更逼真。为了生成去除战争迷雾的游戏状态,本文作者将原始的 GAN 生成器修改为编码器-解码器网络。

从原理上讲,DefogGAN 是条件 GAN 的变体。通过使用跳跃连接,DefogGAN 生成器利用根据编码器-解码器结构学习到的残差进行训练。除了 GAN 的对抗损失,本文作者还设置了有雾和去雾游戏状态间的重建损失,来强调单位位置和数量的回归。本文的贡献如下:

  • 开发了 DefogGAN,可以解析有战争迷雾的游戏状态,得到有用的获胜信息。DefogGAN 是最早的基于 GAN 处理星际争霸中的战争迷雾问题的方法;

  • 利用跳跃连接进行残差学习,在不引入任何循环结构的情况下,DefogGAN 以前馈的方式包含过去的信息(序列),更适用于实时使用的情况;

  • 本文作者在模型简化实验和其它设置(如针对提取出的游戏片段和当前最先进的去雾策略进行测试)中,对 DefogGAN 进行了实证验证。


本文涉及的数据集、源代码和预训练网络对公众开放,可以在线访问。

在 t 时刻,DefogGAN 根据部分可观察(有雾)状态,生成了完全的观察(去雾)状态。在星际争霸中,完全观察状态包括在给定时间下,所有友方和敌方单元的确切位置。图 2 展示了 DefogGAN 的架构。本文作者对当前的部分可观察状态的输入计算得到的特征图进行求和池化。在过去的观测结果的特征图进入生成器前,要和当前状态累积并拼接。本文作者用预测的可观察状态和实际的完全观察状态间的重建损失和判别器的对抗损失训练生成器。

图 2:DefogGAN 的架构概览。

DefogGAN 的生成器采用了 VGG 网络的风格。卷积核的大小固定为 3*3。当特征图大小减少一半时,卷积核的数量增加一倍。DefogGAN 没有使用任何空间池化层或全连接层,而是用了卷积层来保留从输入到输出的空间信息。

DefogGAN 的生成器包括编码器、解码器和通道组合层。编码器采用 32*32*82 的输入,利用卷积神经网络(Convolutional Neural Networks,CNN)提取出隐藏在战争迷雾中的语义特征。每个卷积层都用了批量归一化和修正线性单元(ReLU)来实现非线性转换。

解码器利用从语义上提取出的编码器特征生成预测数据。解码过程将数据重构为高维数据,再利用转置卷积运算完成推断。解码器产生的输出尺寸与输入相同。考虑到因初始通道尺寸大导致的学习速度大,我们没有使用像 ResNet 那么多的卷积层。

表 1:x¯_t 和 x˜_t 的混淆矩阵。使用到的测试数据超过 10,000 帧,表中为平均值。

表 1 总结了 DefogGAN 输入-输出的统计信息,包括部分可观察状态 x¯_t、累积的部分可观察状态 x˜_t,和真实值 y_t。平均而言,在部分可观察状态中可以看到 54% 的单位,在累积的部分可观察状态中可以看到 83% 的单位。注意,累积的部分可观察状态造成了第一类型错误(假阳性),因为累积状态包含此刻已经不再符合实际情况的、移动的单元之前的位置。在给定这样的输出空间时,去雾问题需要在可能的 67,584(32*32*66)个空间中平均选出 141 个空间。

图 4:预测结果的可视化。最左侧是累积的部分可观察状态(x˜_t)。第二列是部分可观察状态 x¯_t。第三列是 CED(当前最佳去雾器)的预测结果。4-7 列分别是 DCGAN、BEGAN、WGAN-GP 和 cWGAN 的生成结果。DefogGAN 的结果呈现在第八列,最后一列是真实值。行表示用于评估的录像。

表 4:DefogGAN 和其它模型的准确率比较结果。

图 4 中的可视化结果可以有效地解释 DefogGAN 的预测性能。随机选择四组录像,给出每个模型预测的、去雾后的完全观察状态。例如,在录像 4 中,在部分可观察状态 x¯_t 的右下角看不到红色的敌方单位。同时,在累积的部分可观察状态 x˜_t 中只能看到敌方单位的子集。同时使用观察结果和累积观察结果,DefogGAN 可以生成的完全可观察状态 y_t 看起来和真实值非常相似。CED 也生成相当可信的完整状态,但 DefogGAN 生成了更准确的结果。WGAN-GP 在没有重建损失的情况下也生成了可信的完整状态,但有生成假阳性(低精度)结果的倾向。cWGAN(一种使用了重建损失的 WGAN-GP 变体)似乎降低了假阳性率,但 DefogGAN 的预测结果仍然更好。

理论GAN马尔可夫决策过程三星星际争霸
相关数据
混淆矩阵技术

混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。矩阵的每一行表示预测类中的实例,而每一列表示实际类中的实例(反之亦然)。 这个名字源于这样一个事实,即很容易看出系统是否混淆了两个类。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

结构学习技术

结构化预测是监督学习,分类和回归的标准范式的一种推广。 所有这些可以被认为是找到一个能最大限度减少训练集损失的函数。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

假阳性技术

假阳性是指模型因为种种原因把不应该分类成特定情况的人/物错误地分类到了该分类的情况。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

WGAN技术

就其本质而言,任何生成模型的目标都是让模型(习得地)的分布与真实数据之间的差异达到最小。然而,传统 GAN 中的判别器 D 并不会当模型与真实的分布重叠度不够时去提供足够的信息来估计这个差异度——这导致生成器得不到一个强有力的反馈信息(特别是在训练之初),此外生成器的稳定性也普遍不足。 Wasserstein GAN 在原来的基础之上添加了一些新的方法,让判别器 D 去拟合模型与真实分布之间的 Wasserstein 距离。Wassersterin 距离会大致估计出「调整一个分布去匹配另一个分布还需要多少工作」。此外,其定义的方式十分值得注意,它甚至可以适用于非重叠的分布。

三星机构

三星集团是韩国最大的跨国企业集团,同时也是上市企业全球500强,三星集团包括众多的国际下属企业,旗下子公司有:三星电子、三星物产、三星航空、三星人寿保险、雷诺三星汽车等,业务涉及电子、金融、机械、化学等众多领域。 三星集团成立于1938年,由李秉喆创办。三星集团是家族企业,李氏家族世袭,旗下各个三星产业均为家族产业,并由家族中的其他成员管理,集团领导人已传至 李氏第三代,李健熙为现任集团会长,其子李在镕任三星电子副会长。

围棋技术

围棋是一种策略性棋类,使用格状棋盘及黑白二色棋子进行对弈。起源于中国,中国古时有“弈”、“碁”、“手谈”等多种称谓,属琴棋书画四艺之一。西方称之为“Go”,是源自日语“碁”的发音。

生成对抗技术

生成对抗是训练生成对抗网络时,两个神经网络相互博弈的过程。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。

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