北大教授用《星际争霸II》玩警察抓小偷?
Posted 人工智能博士
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了北大教授用《星际争霸II》玩警察抓小偷?相关的知识,希望对你有一定的参考价值。
点上方人工智能算法与Python大数据获取更多干货
在右上方 ··· 设为星标 ★,第一时间获取资源
仅做学术分享,如有侵权,联系删除
转载于 :新智元
作为一款极为经典的即时战略游戏,暴雪开发的《星际争霸II》也是强化学习训练最喜爱的训练环境之一。
尤其是在2019年DeepMind开发的AlphaStar和人类职业选手的大战之后,更是引发了一波热潮。
近日,北京大学的教授发表了一篇预印本研究论文,详细介绍了一个基于《星际争霸II》训练环境的强化学习系统。
论文地址:https://arxiv.org/pdf/2108.11010.pdf
项目地址:https://github.com/xunger99/SAAC-StarCraft-Adversary-Agent-Challenge
作者通过将控制和微分博弈理论纳入特定的强化学习环境来分析代理人的潜在表现,以及通过扩展当前的《星际争霸》小游戏进而开发了一个对抗性代理挑战(SAAC)的环境。
主要贡献有两个方面:
通过控制与博弈理论的结合,加强了对追逃博弈强化学习能力的理解;
提出了一个用于追逃博弈的对抗性代理强化学习环境,其设置逐渐复杂,并具有实际意义。
背景介绍
本文为追逃博弈开发了一个强化学习环境,这是一个经典但具有挑战性的问题,具有重要的航空航天应用,如同步和合作拦截和外大气层拦截以及搜索和救援行动。
该问题已分别在微分博弈论和最优控制理论的分析框架下得到了广泛的研究。
然而,目前大多数研究基本上只关注一个玩家(通常是追击者)的人工智能(AI)策略,而其他玩家要么不动,要么不能被AI代理直接控制,这实际上减少了博弈的可能冲突水平。
为了解决这个问题,作者开发了一个强化学习环境,通过对著名的《星际争霸II》游戏环境的扩展,使追击-逃逸的两个角色都可以由一个单独的代理直接控制。
3个追击者(蓝色圆圈)和战争迷雾被激活时看到的逃逸者(红色圆圈)
DeepMind开发了一个PySC2的接口库,使用户能够以特征的形式获得空间观察并学习进行类似人类的动作。此外,还可以访问几个游戏的分数/奖励,以检查人工智能代理的工作情况。
代理可以即时获得高度、战争迷雾、摄像机位置、和对手单位等的特征图(左)和一些特征层(右)
然而,与以前大多数理论工作中的游戏设置相比,本文提出的设置存在一些明显区别以及对追逃的相关影响可以被确定如下:
1. DeepMind的FindAndDefeatZerglings游戏包含战争迷雾,它广泛地增加了游戏的复杂性,以至于相应的学习速度比其他没有激活战争迷雾的小游戏慢得多。
2. 追击-逃逸是一种双人零和博弈,大多只由1个追逐者和1个逃避者组成。在更复杂的设置中,几个(地面)逃逸者被许多防守的(空中)追击者保护,这就需要同时采取攻击策略。
3. 在游戏中,的内置代码将控制逃逸者跑向追击者,后者会攻击逃逸者,而逃逸者并不会跑开。因此,这个游戏不是一个典型的追击-逃避游戏。在作者提出的新的学习环境中,这种行动被禁止,只允许逃逸行动。
(a) 三个追击者在战争迷雾的边缘搜索并攻击逃逸者(用红点表示);(b) 逃逸者跑向追击者,而不是逃进附近的战争迷雾;(c) 逃逸者被三个追击者击败
4. 游戏只支持一个代理去控制三个单位。另一个内置的低级代码控制逃逸者,当视线范围内没有追击者时,他们会保持静止,或者以其他方式冲向追击者。
5. 人类玩家必须先将摄像机视角移到目标区域,然后再发布追击行动。因此,当使用《星际争霸II》PySC学习环境时,所有的代理行动都必须被设计为遵循人类玩家的操作/行为习惯。
按照人类玩家的行动习惯(和频率)对代理行动进行编码
(a)人类玩家会首先选择追击者(1),然后观察雷达(2)来搜索逃逸者并找到逃逸者(3);
(b)接着会将视角移动到逃逸者的位置;
(c)最后利用追击者对逃逸者进行攻击。
(d)代理被设计成遵循同样的行动步骤。
对抗性代理
在上述游戏中逃逸者会保持不动,但当追击者被看到时,他们会跑向追击者。这种隐藏策略实际上简化了追击者的搜索任务。
于是作者开发了一个新的对抗代理学习环境,从而可以训练一个控制逃逸者的AI代理。
现有强化学习环境的结构
DeepMind的游戏(a):一个代理与《星际争霸II》提供的学习环境进行互动,控制追击者以使未来的奖励最大化,而《星际争霸II》的内置脚本代码则控制逃逸者。
SMAC拓展工具包(b):每个代理的行动通过SMAC进行串联,来自《星际争霸II》环境的观察结果被分离并重新分配给每个多代理。
因此,SMAC能够在多个合作代理中对协调行动进行强化学习。然而,能够实现强化学习的对抗性代理环境,特别是对于追求逃逸型的微分博弈,仍然是罕见的。
为了填补这一空白,作者致力于提出一个对抗性代理学习环境——星际争霸对抗性代理挑战(SAAC)。
SAAC学习环境概述,其中两个对抗性代理分别控制追击者和逃避者
SAAC环境包括一些小型地图和对抗性代理的例子,这将指导感兴趣的读者建立他们自己的地图和代理。以下是对正确实施环境的一些重要发现。
- 由于未知的原因,DeepMind的七个地图不能支持两个代理。因此,作者利用地图编辑器从头建立训练用的小地图。
- 目前的PySC2接口在多个代理接口之间的低级消息传递过程中可能产生websocket错误。为了绕过这个问题,作者进行了彻底的编程调试,并采用了一个临时的接口来纠正这个问题。
其他重要的修改包括修改后的优化目标(优化追击者的战败单位数量和逃逸者的生存单位数量)。
更具体地说,逃逸者在受到攻击时只会逃到附近的战争迷雾中,而不会反击。
可以看出,与DeepMind的游戏相比,经过更改后的游戏更类似于经典的追逃博弈。
论文开发的对抗代理学习环境
代理训练
之前的大多数工作都集中在基于A2C、A3C、DQN和基于关系的神经网络方法的追击代理上。
在新的学习环境的支持下,注意力则集中在训练逃逸者的AI代理上。
对抗性代理测试的代码结构
来自《星际争霸II》训练环境的两个接口分别向追击者和逃逸者输出观察结果(特征图等)。
逃逸者(代理1)采用四层全连接的卷积网络结构。追击者(代理2)采用了先前工作的代理。
(a)追击者和(b)逃避者的一些代表性截图。(c) 相应的搜索和躲避策略,其中虚线圆圈代表相应的攻击半径,虚线代表搜索路径
可以看出,在搜索逃逸者的过程中,所有三个追击者都呆在一起,以获得集中的打击能力。
同样,经过十几次训练后,逃逸者代理学会了控制所有25个逃避者逐渐移动到一起,最终在地图上的某一个角落集合。
通过奖励R可以看出,强化学习能迅速帮助将被捕获的逃避者的数量从51人左右(实线)减少到30人左右(虚线)。
捕获单位数量,其中实线表示随机代理取得的结果,虚线表示通过对抗代理强化学习与卷积网络和DQN方法取得的结果
结论
本文提出了一个基于《星际争霸》的强化学习环境,该环境支持对抗性代理,用于研究战争迷雾下的追击-逃逸博弈。
通过合并控制和微分博弈理论,对当前追击-规避小游戏中代理人的潜在表现进行分析,此外还扩展了《星际争霸II》小游戏从而开发出SAAC环境。
本文着重于先前的研究中很少涉及的逃逸者代理的学习,并将追击者配置为具有良好搜索性能的代理。
在理论上,这项工作最关键的部分是通过微分博弈论对《星际争霸II》小游戏设置的潜在追击代理性能进行分析解释。
此外,强化学习通常假设一个静止的环境,当出现非合作性的博弈动态时,可能不适用于追逃问题。
因此,所提出的SAAC环境应该能够为微分博弈研究界和强化学习研究界提供新的研究方向,并有助于促进博弈论和人工智能技术的融合。
作者介绍
黄迅教授,安静飞行实验室负责人,北大航空航天工程系博士生导师。
分别在西工大、清华、南安普敦获学士、硕士、博士学位。
19年获聘新体制长聘教授,近年研究兴趣为声学+X(航空航天和医学中重要应用)和群智控制。
曾作为教学负责人帮助北大和港科大建立航空航天教学体系。
附注:这项研究在疫情时期进行,缺乏财政资源和学生的支持。
参考资料:
https://arxiv.org/pdf/2108.11010.pdf https://github.com/xunger99/SAAC-StarCraft-Adversary-Agent-Challenge
---------♥---------
声明:本内容来源网络,版权属于原作者
图片来源网络,不代表本公众号立场。如有侵权,联系删除
AI博士私人微信,还有少量空位
点个在看支持一下吧
以上是关于北大教授用《星际争霸II》玩警察抓小偷?的主要内容,如果未能解决你的问题,请参考以下文章