0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用视频游戏语料库,训练一个GAN模型为超级马里奥兄弟生成游戏级别

8g3K_AI_Thinker 来源:未知 作者:李倩 2018-07-25 17:59 次阅读

PCG —— 程序内容生成,通过算法创建游戏内容,例如游戏规则,关卡,角色,背景故事,纹理和声音。近年来国际会议组织了各种比赛,例如马里奥AI级别生成比赛,Platformer AI比赛,AI鸟类等级生成比赛和一般视频游戏AI(GVGAI)等级生成比赛 。今天为大家介绍一项关于 PCGML 的最新研究(PCG 通过机器学习的例子),这篇论文也被 GECCO 2018提名为 Best Paper Award ,这也是一个新兴的研究领域。

研究中以无监督学习方式训练生成对抗网络(近期关于无监督学习与GAN的内容我们也给大家介绍了不少),模型根据视频游戏级语料库中的实际游戏级别进行训练。并引入了隐变量进化(LVE)的概念;为了在这个潜在空间内找到最佳水平段,进化算法协方差矩阵自适应进化策略(CMA-ES)用于找到产生水平段的潜在向量,由此产生的系统有助于发现人类专家创建的示例空间中的新级别。

▌摘要

生成性对抗网络(GAN)是能够在给定的训练样本空间内生成新的样本输出的一种机器学习方法。视频游戏中的程序内容生成(PCG)可以从这种模型中受益,特别是对于那些预先存有语料信息的游戏。本文,我们利用视频游戏语料库,训练一个GAN模型为超级马里奥兄弟生成游戏级别(Super Mario Bros)。

我们的方法不仅能够成功地生成与原始视频语料库中级别相当的各种游戏,还能通过应用协方差矩阵自适应进化策略(CMA-ES)进一步改进游戏级别。具体地说,我们使用各种适应度函数(fitness function)来探索GAN模型潜在空间水平,以最大化期望属性,而诸如tile类型分布的静态属性都能够被进一步优化。此外,我们使用2009版Mario AI比赛的冠军A*智能体,用于评估游戏级别的可玩性,以及需要多少跳跃动作来击败它。这些适应度函数允许模型在专家设计的样本空间中探索各种游戏级别,并指导进化朝着满足一个或多个指定目标水平的方向。

▌方法

我们的方法分为两个主要阶段,如下图1所示。

图1 GAN训练流程及隐向量进化概述。我们的方法可以分为两个截然的阶段。在第一阶段中,GAN以无监督学习的方式进行训练并生成马里奥游戏水平。在第二阶段,我们搜索潜在向量空间产生具有特定属性的游戏级别。

首先,GAN在现有的Mario级别上进行训练(下图2所示)。该级别将被编码为多维数组,并在黄色框中描绘。模型中生成器(用绿色表示)输入的是高斯噪声向量(用红色表示),并以相同表征水平输出。而判别器用于区分现有级别和生成级别之间的差异性。我们使用对抗性学习的原则来训练生成器和判别器。

图2训练水平。通过水平从左向右滑动一个28×14窗口生成训练数据。

一旦训练过程完成,生成器网络可以被视为是我们学习到的genotype-to-phenotype映射,它能够将潜在的实数向量(用蓝色表示)作为输入(我们的论文实验中将其大小设置为32),并产生一个tile-level的马里奥游戏级别。相比于简单地绘制来自潜在空间的独立随机样本,我们在进化控制策略下(在这种情况下使用CMA-ES)进行探索。换句话说,我们在隐向量空间搜索并产生想要的不同属性的游戏级别,如tile分布,难度等。

CMA-ES

协方差矩阵自适应进化策略(CMA-ES)是一种功能强大而又广泛使用的进化算法,特别适合于实数向量的进化过程。CMA-ES是一种二阶方法,通过有限差异法不断迭代估计协方差矩阵。它无需依赖一个光滑的自适应先验,而能够有效地处理连续域中非线性、非凸问题的优化。我们采用CMA-ES策略来进化潜在向量,并生成的游戏级别上应用几种自适应度函数。所使用的自适应函数是基于生成的游戏级别的静态属性,或使用人工智能体进行游戏模拟结果。

游戏级别表征

在视频游戏中,马里奥游戏级别有不同的表征Level Corpus (VGLC)和Mario AI框架,这两种都是基于tile的表征形式。具体地说,以VGLC表征的马里奥级别使用特定的字符符号来表示每个可能的tile类型。然而,应该注意的是这个VGLC表征主要是关注tile的功能特性而不是其艺术属性,因此无法区分视觉上某些特定的tile类型。此外,通过仅提供的单个字符符号来表示不同的敌人类型,VGLC编码忽略了不同敌人之间的功能差异,因此我们可以选择将其映射到通用的Goomba敌人类型上。

为了对训练的水平进行编码,我们用不同的整数来表示每种tile类型,它在输入到判别器前被进一步转换为一个独热编码(one-hot)。此外,生成器网络同样用独one-hot编码形式输出再将其转换回整数值。基于整数格式的级别随后将被发送到用于渲染的Mario AI框架。Mario AI框架允许其tile类型产生更广泛的艺术多样性,但由于其VGLC编码的简单性,只有小部分子集的Mario AI tile是可用的。从VGLC tile类型和符号,到GAN的训练数字编码再到最后Mario AI tile的整个可视化流程如下表1所示。

表1生成的Mario游戏级别所使用的tile类型。符号字符是来自VGLC编码,然后数字标识被映射到相应的值并用于生成可视化的Mario AI框架。在GAN训练期间,该数字标识值将被扩展为独热向量(one-hot)输入到判别器网络。

GAN模型

我们采用深度卷积生成对抗网络DCGAN结构,并使用WGAN算法进行训练,模型的结构示意图如下图3所示。遵循原始的DCGAN架构,判别器网络中采用跨步长卷积(strided convolutions),而生成器中采用小步长卷积(fractional-strided convolutions),在生成器和判别器的每层后都接上batchnorm以正则化。此外,在生成器中每一层我们都使用ReLU激活函数(包括输出层,原始结构中输出层采用Tanh激活函数),我们发现这能带更好的结果表现。而判别器中每一层我们采用LeakyReLU激活函数。

图3训练Mario游戏的DCGAN模型结构

▌实验结果

为验证我们的方法,在实验部分我们通过两组不同实验分别进行基于表征测试(representation-based testing)和基于代理测试(agent-based testing)。实验结果如下。

基于表征测试(representation-based testing)

下图4显示了该方法优化的ground tile百分比与特定目标分布的接近程度。结果表明,每次运行中我们几乎都可以非常接近目标的百分比。

图4优化不同百分比的ground tiles。运行20次后将平均每次的结果并产生一个标准差。除去20%的地面外,该方法总能够发现用于生成ground tiles所需目标百分比的潜在编码。

此外,图5显示了逐级递增的游戏水平难度:其中第1和第2部分的地面覆盖率达100%,第3-5部分的地面覆盖率达70%,而第4、5节中我们还同时最大化敌人的总数n。实验结果表明我们的方法能够同时优化地面分配以及敌人的数量。

图5逐级递增的游戏难度。我们的LVE方法能够创建含多个组成部分的游戏级别,这些级别的难度逐渐增加(即越来越少的地砖伴随着越来越多的敌人)。将来,这种方法可以用来创建一个实时的水平,以适应玩家的特殊技能(动态难度适应)。

基于代理测试(agent-based testing)

图6显示了自适应函数F1和F2的一些最佳和最差结果。我们可以看到,CMA-ES策略确实可以发现一些不可玩的等级(如图6c所示)。自适应函数F1的最佳效果(即具有大量所需跳跃操作的可玩级别)如下图6a和6d所示。而图6b描述是自适应函数F2所产生的最佳结果(即只需少量跳跃操作的可玩级别)。该级别只需要跳跃一次就能很容易地解决敌人。

图6基于代理的优化示例。a和b显示了F1自适应函数下最大化跳跃次数的例子,此时最小化F2函数。c显示了一个最差的结果,即在F1自适应函数下不可玩的游戏级别例子。在d中显示了高适应性的结果(即F1下最大化跳跃步数),但同时破坏了标题的例子。

▌结论

本文提出了一种新的隐变量进化方法,它能够以无监督学习的方式,在现有的Mario游戏水平上,进化并产生新的Mario游戏级别。我们的方法不仅能够优化不同分布水平,并将tile类型结合起来,还可以使用基于代理的评估函数来优化游戏级别。虽然我们的GAN模型通常能够捕捉到高水平的训练结构,但有时也会产生破碎的结构。将来的工作我们可以通过采用更适合视频游戏离散表征的GAN模型来优化这个问题,我们希望LVE能够作为一种很有前景的快速生成方法,扩展到各种视频游戏以及其他类型的游戏。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GaN
    GaN
    +关注

    关注

    19

    文章

    1728

    浏览量

    67095
  • 机器学习
    +关注

    关注

    66

    文章

    8037

    浏览量

    130401
  • 智能体
    +关注

    关注

    1

    文章

    108

    浏览量

    10407

原文标题:AI为超级马里奥兄弟创造了游戏新级别——GECCO 2018最佳论文提名

文章出处:【微信号:AI_Thinker,微信公众号:人工智能头条】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    用labview设计超级马里奥游戏时如何加障碍物?

    用labview设计超级马里奥游戏时如何加障碍物
    发表于 05-09 13:33

    简单有效的多标准中文分词详解

    本文介绍种简洁优雅的多标准中文分词方案,可联合多个不同标准的语料库训练单个模型,同时输出多标准的分词结果。通过不同语料库之间的迁移学习提升
    发表于 12-28 14:39

    pyhanlp文本分类与情感分析

    预测接口都是线程安全的(被设计不储存中间结果,将所有中间结果放入参数栈中)。情感分析可以利用文本分类在情感极性语料训练模型做浅层情感分
    发表于 02-20 15:37

    Flair如何使用加载语料库

    工具篇Flair之使用加载语料库教程
    发表于 04-27 10:03

    fpga通过什么实现逻辑功能

    fpga通过什么实现逻辑功能,以超级马里奥例子讲述FPGA有些制作。1、FPGA游戏目标没有CPU,单纯用 FPGA 的verilog硬件语言来实现
    发表于 07-22 07:07

    关于实现AR rc漂移车操作有么有什么建议?

    赛车的视角,布置完成后通过AR技术在switch设备上操控遥控车并在现实中进行马里奥赛车比赛。 然而十分令人遗憾的是该游戏并没有实现《马里奥赛车》中最经典的漂移操作。基于此,我决定利用
    发表于 10-13 06:13

    求助labview游戏

    想找labview马里奥游戏代码运行的视频讲解 ,我有详细代码,我提供代码有大神可以讲解下吗?也可以有偿。有意加qq1050440255
    发表于 03-23 16:25

    如何在基于Arm的设备上运行游戏AI呢

    如何在基于 Arm 的设备上的游戏中使用训练有素的代理。不同的难度级别如前所述,我们在演示中准备了具有不同难度级别游戏 AI。具有不同
    发表于 08-15 15:43

    iPhone7发布会上提到的游戏 马里奥大叔15日可以在iOS平台试玩了!

    App Store了。这款名为《超级马里奥Run》的游戏是一款跑酷游戏,该游戏将于下月15日正式登陆App Store,售价9.99美元。
    发表于 11-16 11:14 752次阅读

    超级马里奥Run安卓版即将上市,国内玩家先别激动

    12 月 29 日,任天堂官方在国外社交网站推特上宣布,超级马里奥Run已经登录了Google Play 并开启预约注册,现在注册的用户,未来可以第一时间获知安卓版超级马里奥Run
    发表于 12-30 17:29 748次阅读

    国行版Switch正式开售,预装《新超级马里兄弟U》体验版

    12月10日消息,今天凌晨,国行Switch将正式开售,售价2099元,预装《新超级马里兄弟U》体验版,游戏完整版售价299元。
    的头像 发表于 12-10 14:53 6177次阅读

    马里奥忠实粉丝称其自制的渲染图被超级任天堂世界官网盗用

    ,但它最近却被发现盗用了粉丝制作的渲染图。 推特用户“uJIdow”是一位马里奥的忠实粉丝,他致力于制作各种马里奥的渲染图。昨日(1.7),“uJIdow”发表推文表示,超级任天堂世界官网使用了其制作的
    的头像 发表于 01-08 12:52 1630次阅读

    Labview编的超级马里奥8.0源码

    Labview编的超级马里奥8.0源码
    发表于 11-02 16:35 24次下载

    带有压电蜂鸣器和Arduino的超级马里奥主题曲

    电子发烧友网站提供《带有压电蜂鸣器和Arduino的超级马里奥主题曲.zip》资料免费下载
    发表于 11-01 09:32 0次下载
    带有压电蜂鸣器和Arduino的<b class='flag-5'>超级</b><b class='flag-5'>马里奥</b>主题曲

    数据语料库、算法框架和算力芯片在AI大模型中的作用和影响

    数据语料库、算法框架和算力芯片的确是影响AI大模型发展的三大重要因素。
    的头像 发表于 03-01 09:42 158次阅读