图1:《星际争霸II》游戏中人类玩家操控单位的截图。为了在全场游戏中开展研究,本文作者将研究限制在以下环境中:深海暗礁地图上的1对1,虫族对虫族。他们开发了两个AI智能体——智能体TStarBot1基于平面动作(flataction)的深度强化学习,智能体TStarBot2基于分层动作(hierarchicalaction)的规则控制器。
论文链接:https://arxiv.org/pdf/1809.07193.pdf据我们所知,这是第一次公开调查能够在《星际争霸II》全场游戏中击败内置AI的智能体。代码将开源[3]。
图2:基于宏观动作和强化学习的智能体架构概览。如图2所示,顶部:基于宏观动作的可学习控制器;底部:165个可执行宏观动作,硬编码了游戏规则的先验知识(例如,技能树),并对控制器隐藏了琐碎的决定因素(例如,构建布局)和一些执行细节。图中还展示了两个宏观动作的定义作为示例:BuildRoachWarren和ZoneAAttackZoneI。
表1:165个宏观动作的总结:分类、示例和硬编码规则/知识。在最右列,RandUnit表示随机选择一个主体单元;RandPlacer表示随机选择一个有效的放置坐标。基于宏观动作的智能体TStarBot1可能存在局限。尽管宏观动作可以按功能分组,单个控制器必须基于整个动作集合来工作,其中这些动作在每个决策步骤是互相排斥的。
图3:宏观-微观分层动作总览写代码的时候,我们将每个控制器封装为一个模块。模块以类似于UAlbertaBot的方式组织,如图4所示。
图4:基于宏观-微观分层行动的智能体模块图。我们在1v1虫族对虫族的全场比赛中分别测试TStarBot1和TStarBot2智能体。具体来说,智能体需要和等级1(最简单)到等级10(最困难)的内置AI进行比赛。我们使用的地图是深海暗礁模式,据报道在该地图中,在原始PySC2观察/动作上,一般A3C智能体与内置AI进行人族vs人族全场比赛时表现不佳。
图5:TStarBot1使用PPO算法的学习曲线。注意TStarBot1-PPO在大约30M帧后开始打败等级2(简单)的内置AI(至少75%的胜率),打败等级4(困难)、等级6(非常困难)、等级9(资源作弊)、等级10(疯狂作弊)则分别是在大约250M帧、800M帧、2000M帧、3500M帧的时候。
表2:TStarBot1和TStarBot2智能体在不同难度等级下和内置AI比赛的胜率(%)。对于TStarBot1,我们报告了使用DDQN、PPO和随机策略的比赛结果。每个胜率通过对使用不同的随机种子在200场比赛的结果取平均值得到,其中允许使用战争迷雾。
表3:TStarBotvs人类玩家。每个项表示TStarBot1/TStarBot2的胜利/失败场数。图6:关于TStarBot1战争时机的学习策略:Rush和经济优先。parseInt(o[t]))return1;if(o[t]&&!
领取专属 10元无门槛券
私享最新 技术干货