Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

狂揽4k star,AI通过强化学习玩宝可梦,两万场后成功拿下

AI 的宝可梦之旅。

图片

是不是说起「口袋妖怪」,你就不困了?

「口袋妖怪」是「宝可梦」的非官方译名。从 1996 年至今,它可以被分为数个世代,成为很多玩家心中的经典之作。游戏画风简单,但是身为策略游戏,其中包含的角色、属性、战术、体系等让这个游戏入门容易精通难。

如果训练 AI 来玩宝可梦,你觉得它的实力如何?

推特用户 @computerender 用强化学习训练 AI 玩起了宝可梦。他也通过视频记录了这一过程,不仅生动地展示了训练过程,还详尽地介绍了其中的方法。

图片

  • 项目地址:https://github.com/PWhiddy/PokemonRedExperiments
  • 视频地址:https://www.youtube.com/watch?v=DcYLT37ImBY

当你打开视频,就能观看两万场 AI 玩的《宝可梦・红》。一开始,AI 没有任何的知识和经验,只能够随机按下按钮。但在五年的模拟游戏时间里,它在经历中习得了更多能力。最终,AI 能够抓住宝可梦,进化它们,并击败了健身房的领导者。

那么这是怎么做到的呢?

最基础的目标是让 AI 去探索地图。作者所使用的方法是在 AI 到达新位置时给予奖励。

图片

作者记录 AI 在玩游戏时看到的每个屏幕并将当前屏幕与记录中的所有屏幕进行比较,看看是否有接近的匹配。如果没有找到匹配,这意味着 AI 发现了一些新东西。在此情况下,作者将给它一个奖励,并将新屏幕添加到记录中。独特屏幕带来的奖励可以鼓励它继续寻找游戏的新部分。

图片

经过几次迭代之后,AI 能更快的走出初始房间。但在这过程中,作者发现了随着探索越来越多,AI 却会被「困」在某处。这是因为该场景中有草、水、随意走动的 NPC,这会更容易触发新场景产生。作者通过改变画面差异的像素阈值来进行改进。

除此之外,AI 还遇到了战斗画面大致相同,无法得到奖励而逃离的行为。但是不战斗,就无法前进。最后,作者通过增加额外奖励来保持 AI 的前进。

图片

                                    战斗画面相似性较高图片                                     增加额外关卡奖励

当然,AI 在这个过程中遇到的问题远多于此。

当宝可梦战斗的时间很长,其默认行动被耗尽时,它似乎会卡住,在多次训练迭代之后,才有了实质性的改进。作者发现,在看到一只鸽子第一次参与进来后,它终于知道当一个移动耗尽时该做什么,并能够切换到另一个替代移动。

图片

就当一切顺利时,作者发现了一个关键问题。AI 会直接投入战斗,即使是那些它无法获胜的战斗。并且,它从不去宝可梦中心治疗,这意味着当它输了,它会一直回到游戏的开始。

图片

作者试图使用输掉战斗就减去奖励来改进,但是没有效果。当 AI 即将失败时,它没有避免艰难的战斗,而是拒绝按下按钮继续无限期地拖延。这在技术上满足了目标,但不是作者想要的。

作者在细致地观察后发现,在一些罕见的情况下会造成巨大的奖励减扣。一直以来,AI 都会在一场游戏中扣除比预期多 10 倍的奖励。作者在回顾时发现,AI 宝可梦中心,在角落里的电脑前徘徊。登录并漫无目的地按了一会儿按钮后,它将一只宝可梦存入了系统,随即大量奖励就流失了。这是因为奖励是根据宝可梦的等级总和分配的。因此,存入一只 13 级的宝可梦就会立即损失 13 分。这会发出强烈的负面信号,给 AI 造成类似创伤的体验。AI 不像人类那样有情感,但一个具有极端奖励价值的事件仍会对它的行为产生持久的影响。在这种情况下,仅仅失去一次宝可梦就足以让 AI 对整个宝可梦中心形成负面联想,从而在今后的游戏中完全避开它。为了解决这个问题,作者再次修改奖励函数,只有当等级增加时才给予奖励。这似乎解决了问题。重新启动训练后,AI 开始访问宝可梦中心。

图片

当它到达了宝可梦中心内的月亮山入口。在这里,一个男人会以 500 元的价格卖给你一条魔法鲤鱼。魔法鲤鱼在短期内一点帮助都没有,所以你可能会认为 AI 不会对此感兴趣。然而,购买它是获得 5 级的超级简单方法。所以 AI 每次都买。在所有的游戏中,它总共购买了超过 10000 个魔法碳水化合物。

图片                                    作者将 AI 行为与人类类比

作者还分析了 AI 的行动路线,它似乎更喜欢在地图的几乎所有边缘逆时针行走。这意味着,当站在右边的边缘时,它更喜欢往上走,蓝色显示的就是这种情况。当上方有边缘时,它喜欢往左走,显示为粉红色。当左边有边缘时,它喜欢向下走,用橙色表示。而当下面有一条边时,它更喜欢向右走,显示为绿色。

图片

作者在视频中表明,机器学习的基本挑战是在不明确告诉程序如何做的情况下让它做一些事情。这意味着,如果你的模型没有按照你预期的方式运行,你必须弄清楚如何通过学习算法或在线训练数据间接地改进它。强化学习增加了一层间接性。在此基础上,输入模型的训练数据不再是静止的、受你控制的,而是模型在早期时间点行为的产物。这种反馈循环会导致无法预测的突发行为。 

图片

在没有机构规模的资源时,作者建议你可以这么做:

  • 将问题简化,以避免工具、资源的限制。
  • 接下来,在合理的时间和成本内迭代实验的设置非常重要。
  • 然后需要仔细考虑 AI 如何与环境交互以及奖励函数如何设计。在视频中,作者对他所用到的奖励函数已经有所介绍,但是受制于篇幅,并没有介绍全部。它使用到了至关重要的七个函数,实际上还有更多的并没有测试或是最终使用。
  • 通过可视化的方法了解 AI 的行为。

图片

作者说道,在未来还可能应用迁移学习的方法。即在一个大型的广泛数据集上预先训练一个模型,然后可以非常有效地利用它来完成新任务。在过去,这已经给计算机视觉自然语言处理领域带来了革命性的变化。在将其应用于 RL 方面,已经有一些有趣的早期工作,但尚未真正落地。这是由于这些类型的任务缺乏大型的多样化数据集。

图片

在视频最后,作者还介绍了项目的更多操作细节。

更多详细内容,请观看原视频。
工程宝可梦
相关数据
机器学习技术

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

计算机视觉技术

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

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

强化学习技术

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

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