作弊玩游戏,AI也学坏了?

发表于2018-11-19
评论0 6.5k浏览



AI的游戏方式大大出乎研究人员的意料。



多年以前,当我第一次见识到朋友们是如何在《超级马里奥》中通过卡一个龟壳无限刷分,在《魂斗罗》中用一种奇怪的方式获得额外生命的时候,拯救世界和公主就再也不是我想做的事了。


在我看来,游戏里发掘各种奇怪的Bug明显比拯救公主更有趣。


在《恶魔城:月下》里研究各种各样的出城Bug一直是我乐此不疲的一件事


但是现在,关于“利用Bug快速完成游戏目标”这件事情上,AI似乎比我还要擅长。


今年四月,曾经开发出击败Dota2职业选手的OpenAI公司,举办了首届针对AI的强化学习竞赛。这个比赛的目标,旨在评估强化学习算法从以往经验中泛化的能力。这听起来很拗口,具体地说,就是让AI来玩单机游戏,而且玩的是NES平台上的《刺猬索尼克》。


世嘉公司在多年前开发的初代索尼克游戏成了AI的实验对象


每个参赛团队需要让自己研发的AI在不同的训练关卡上运行,通过短时间的机器学习,让AI掌握这款游戏的规则和操作方法,并在游戏设计师重新设计的地图上迅速找到最优的通关策略。


OpenAI举办这次比赛的目的,是想验证这样一个观点:强化学习的强泛化性是通往通用人工智能的关键路径之一。举个例子,如果你在《CS:GO》中是一个百发百中的神枪手,那么其他的FPS游戏你可能也会很轻松的上手。但如果你把一个针对《CS:GO》训练的AI直接扔到《守望先锋》里,那么它估计会直接崩溃。


因此,参赛选手需要让AI自己学习游戏的策略和技巧,以便在陌生的地图上自己找到最优的通关方法。


不过这一次,AI们好像聪明过了头。


在研究人员的调试下,AI被告知要优先获得更高的分数(一般通过击杀敌人和拾取金环获得),同时在仅可能短的时间内到达终点。这样的条件导致了一个奇怪但有趣的结果:AI开始通过寻找游戏内的Bug来更好的完成目标。



就像上面演示的这样,AI控制的索尼克在游戏中找到了一些特殊的“捷径”来让自己更快的达成目标,这些捷径都是通过类似于“卡Bug”的方式实现的。


这样的方式大大出乎研究人员的意料。最开始,研究人员希望AI能通过所提供的人类玩家数据来模仿人类的操作和行为,最终完成游戏目标。


但通过机器学习的人工智能对游戏显然有自己的一套理解,除了在游戏中寻找能让自己快速通关的Bug以外,它们还会做许多在研究人员眼里匪夷所思的事情。


谷歌Deepmind AI项目的研究人员维多利亚·克拉科夫纳就搜集了大量像索尼克这样的例子。


比如在一个《海岸赛艇》的小游戏里,AI操纵的船只沉迷于利用Bug不断地撞击奖励目标以达到更高的分数,顺利到达终点这件事已经不在它的计划之内了。



另一个研究人员试图让AI玩一款经典的像素游戏《Q伯特》,同样,AI在游戏里找到了一个无限刷分的严重Bug并在时间结束之前达到了最高分。不仅如此,当它发现敌人会跟着Q伯特一起掉下悬崖后,AI甚至采取了自杀的方式来获得更高的分数。



就连《俄罗斯方块》这样的游戏,AI也能找到自己的另类玩法。由于每增加一个掉落的方块都会使AI的评分略微升高,所以它采取了完全错误的游戏方式——尽可能快的落下每一个方块并在快要Game Over时暂停游戏以确保自己不会输。


好像听上去还蛮智能的……



虽然在比赛的最后,使用特殊方法获得胜利的AI并没有得到研究人员的认可,但他们还是表示:


“AI展示了它如何在没有人类介入的情况下赢得游戏胜利,出乎意料其富有创造性,可能会完全颠覆人类对游戏如何运行的理解。”


人工智能无意间找到了获取游戏胜利更好的方法,虽然暴露了目前人类对于机器学习仍无法完全控制的的缺陷,但也显露出了AI异于人类的创造性火花。正是这种创造性的潜力让Deepmind投入大量的资金来让人工智能学习像《星际争霸2》这样复杂的竞技游戏。


在2017年的暴雪嘉年华上,Deepmind宣布将让自己的AI尝试《星际争霸2》这样的游戏,虽然让它和世界顶尖选手交战还为时尚早,但在今年,暴雪表示它已经可以应对其他AI的前期速攻战术。


在《星际争霸》2中,有人曾经设计出一种名为 “悍马2000”的脚本,虽然它能凭借操作以极少的兵力战胜远多于自己部队(比如100条狗冲破坦克阵),但这是在后台读取游戏内部数据的结果,算是真正的作弊,而不是能够自己学习和进化的AI。



2年前,AlphaGo带给人类关于围棋的新理解,也许再过不久,AI也能用全新的战术体系来颠覆人类在星际争霸上的统治。


当然就算失败了,当一个专门找Bug的游戏测试员也是个不错的选择嘛。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引