最擅长玩《毁灭战士(DOOM)》的那个AI,最近开源了。
它叫Arnold,来自卡耐基梅隆大学“终结者队(Terminator)”,在2017年的VizDoom竞赛中以275杀220死0自杀的成绩,拿下了未知地图完整版死斗比赛的冠军。
在比赛中,Arnold能够只根据游戏的画面来判断局势,在一个陌生的3D环境中探索地图、选择武器、击杀敌人。
VizDoom,是基于第一人称射击游戏《毁灭战士》游戏的AI研究平台,主要用在视觉机器学习和深度强化学习的研究上。Viz代表Visual,也就是说,平台上的Agent主要依靠视觉输入来玩游戏。
Arnold参加的VizDoom 2017竞赛,就是在这个平台上举办的。
竞赛以Agent在10场多人死斗中击杀敌人的数量-自杀数来定胜负,分为两个“赛道”:Track 1是已知地图上的限制版死斗,玩家可用的武器只有火箭炮;Track 2是未知地图上的完整版死斗,玩家可以使用各种武器,训练Agent时有5张地图可选,不过在最终比赛时会遇到一张陌生的测试地图。
比赛场面非常血腥热烈,是这样的(视频有点长……):
这两个赛道,Arnold都参加了,它在限制版死斗获得了第二名,在完整版死斗中拿下了冠军。
最近开源的,就是Arnold的PyTorch实现。发布在GitHub上的代码包括训练《毁灭战士》Agent所需要的源代码、17张可以用于训练或测试的地图、5个可以可视化出来玩的预训练模型,包括今年夺冠的那个。
Arnold有两位作者:Devendra Singh Chaplot和Guillaume Lample。Chaplot是CMU机器学习系的博士生,师从Ruslan Salakhutdinov,研究深度强化学习及其在机器人和NLP中的应用。Lample 2016年获得了CMU硕士学位,现在是Facebook AI Research的博士生。
在VizDoom 2017中和他们竞争的高手们,也不乏大机构背后支持。比如Track 1的第三名Axon,来自腾讯互娱(IEG)的NEXT研发中心;Track 2第二名TSAIL队,来自清华大学,他们给自己的Agent起了个古代人偶工匠的名字:偃师;Track 2第三名则是英特尔是IntelAct。另外,参赛的还有Facebook田渊栋和吴育昕组成的F1队、王乃岩、Siyi Li组成的AlphaDoom队等等。
这些队伍中有不少在2016年就参加过这个竞赛,比如F1,就是VizDoom 2016限制版死斗的冠军,IntelAct是完整版死斗的冠军。CMU终结者队的Arnold,在VizDoom 2016两个赛道上都是第二名。
2016年的竞赛结束后,F1队和终结者队都发表了相关论文,解读自己在比赛中所用的技术,而终结者队最近开源的Arnold代码,与去年的论文仍是一脉相承。
最后,本文相关的代码和论文都在这里啦:
Arnold开源代码: https://github.com/glample/Arnold
Arnold论文: https://arxiv.org/abs/1609.05521
田渊栋、吴育昕的论文Training Agent for First-Person Shooter Game with Actor-Critic Curriculum Learning: https://openreview.net/pdf?id=Hk3mPK5gg
今年还有一支队伍DoomNet也开源了代码: https://github.com/akolishchak/doom-net-pytorch
VizDoom官网: http://vizdoom.cs.put.edu.pl/
— 完 —