王者荣耀AI相关文章解读:Hierarchical Macro Strategy Model for MOBA Game AI

给不想看后面详细信息的人的说明:

  • 这篇文章说明了王者荣耀18年年底公布的新的AI系统中的一些重要模块。其实要完成一个完整都AI系统肯定还有很多其他的小模块需要研究。
  • AI的输入是游戏画面加一些UI上面可以直接读出的信息(玩家血量,击杀数等),输出是游戏操作的序列。也就是人怎么操作,AI就怎么操作。比如人要在某个地方放置某个技能,AI也需要通过控制虚拟手柄来完成,而不是调用一个游戏内部的API来完成。
  • 至于现在王者荣耀游戏服务器里的困难人机对战,我猜测是简化版的。一个是没有必要还把游戏画面作为输入,而一个这么战斗不可能每场战斗都调用这么多计算资源来支持。结果是困难人机的水品肯定是比黄金级别的强很多,但是肯定没有kpl决赛中那场AI对高玩的直播的能力强。

文章背景介绍中主要说:

  • 即时战略游戏比围棋的解空间维度大很多,所以解决这个问题要复杂得多。
  • OpenAI Dota2的AI中,提出了让AI学习局部战术的很好的方法,所以本研究的局部战术的模型和OpenAI的相同。
  • 本文章的贡献点是提出了一种监督学习的方法来训练AI能够学到战略层面的东西。
  • 具体分为三个战略层面:
    • 让AI学习到怎么预判什么地方会发生战斗。
    • 让AI学习到当场面处于什么状态的时候,是需要执行什么样的任务(推不同的塔,打红蓝Buf等等一共14个task)
    • 让一个角色决策同时会居于其他同盟的决策(也就是AI之间的协作)
  • 上面三个战略网络模块会输出一些结果,会作为后面基于OpenAI的战术网络的输入。这样就能在让战术配合战略。
  • 虽然角色每个时刻的目的地不全由发生战斗的可能性决定,但是这是一个重要的因素,所以设计这个模块作为角色行走等战术决策的输入。

网络模块的细节:

不管是预判战斗地点还是但前执行的task都有一个共同的网络模型作为输入,所以这里先把完整的模型介绍一下:

王者荣耀AI相关文章解读:Hierarchical Macro Strategy Model for MOBA Game AI_第1张图片

  • 模型的输入是:
    • 基于游戏的小地图提取出来的一些图像信息,比如所有角色的位置,小兵的位置,被攻击的位置。这些位置通过图像上的mask来表示,并且最终会缩放为12×12的图片。这就是上图中的image_feature。
    • 一些全局的属性:比如玩家血量,死亡,击杀数等。这个对应上图中的vector_feature。
    • vector_feature通过多个全连阶层处理得到输出o1。
    • image_feature通过多个卷积层处理得到输出o2。
    • 后面的战斗地点预判和当前任务预判模块会使用o1和o2作为输入。
  • 预判战斗发生地点:
    • o1,o2作为输入
    • 输出是一张11×11的图像,上面的像素直代表这个角色在当前时刻预判出来的战斗发生可能性的大小。
    • 监督学习的数据产生的方法:
      • 先把一场对战中一个角色所有发动攻击(对英雄)的时间点提取出来。
      • 以这些时间点把这场对战的时间分为多个session。也就是一个session以上一次攻击作为开始,以下一次攻击作为结束。
      • 以session开始时的数据(image_feature和vector_feature)作为输入,session结束时发生攻击的地点位置(11×11图像中的mask来表示)作为label。(这样函数的输入输出就有了,使用神经网络来模拟这个函数就行)
  • 预判任务:
    • o1,o2作为输入
    • 输出是之前提到的14个任务中的一个,就是分类问题
    • 监督学习的数据产生的方法:
      • 和预判战斗模型一样,先划分session,只是划分session的时间点是这个玩家开始14个task里面的一个的时间点。
      • 以session开始时的数据(image_feature和vector_feature)作为输入,最终玩家进行的task作为label
  • 玩家间的协作
    • 上面两个任务的输入除了o1,o2还要加上其他玩家的预判战斗可能性的图。
    • 也就是说AI1的据测是参考了其他AI的决策的。

模型训练:

  • 使用30w场对战的重播
  • 提取出5亿个输入-label对(也就是5亿条训练数据)
  • 使用8GPU训练10小时。

实验结果:

  • 和王者荣耀排行前1%的(王者级别)不同的team进行了250场对战。
  • AI的胜率为48%

你可能感兴趣的:(深度学习)