关注:耕智能,深耕AI脱水干货

作者:唐振韬  报道:深度强化学习 CASIA

转载请联系作者

前言

格斗游戏是一项极具挑战的双人实时对抗人工智能博弈任务,常具有组合动作空间规模大、角色属性风格多样、实时性计算要求高等特点,受到了研究人员的广泛关注。对此,日本立命馆大学发布了双人格斗游戏AI实时对抗平台FightingICE [1],其已成为IEEE Conference on Games(游戏人工智能旗舰会议)的格斗游戏AI竞赛赛道的指定专用测试平台。FightingICE要求参赛算法必须自主适应三种不同类型的格斗角色属性,在有限时间内通过控制本方智能体的格斗动作,快速击败对方算法控制的智能体。不同于回合制双人零和博弈问题,实时双人零和博弈问题属于非完美信息博弈,在同步决策的过程中无法准确获取对方正要采取的动作行为,进而影响智能体的有效决策行为。

正文

针对上述存在的问题与挑战,我们提出了一种新型的基于自适应对手建模的增强型滚动时域演化算法,并且将滚动时域演化算法首次应用到格斗游戏AI领域。同时,提出了一系列监督强化式对手模型优化方法(包括交叉熵型、Q学习型和策略梯度型等)用于优化对手模型的预测有效性。具体实现为根据格斗对抗时生成的历史交战信息作为训练数据源,通过在线优化的方式滚动更新对手模型参数,增强前向模型推理规划的可靠有效性,从而进一步增强滚动时域演化算法的博弈推理表现性能。

相关工作在2020年格斗游戏人工智能竞赛夺得冠军[2],并已整理成研究论文发表在游戏人工智能领域权威期刊IEEE Transactions on Games[3],

AI Bot代码开源地址:https://github.com/DRL-CASIA/GameAI-FightingAI

1. 格斗游戏人工智能竞赛


▶ 格斗游戏AI典型方法 ◀

在格斗游戏任务中典型的双人实时零和博弈解决方法可分为启发式规则型、统计前向规划型和深度强化学习型三大类别。三类方法各有其优势和不足,需要根据实际任务需求进行选择。

以有限状态机和行为决策树为代表的启发式规则型方法(见图2)已经在游戏AI领域得到广泛应用,这类方法基于人类专家总结的经验信息,通过手工规则编码的方式输入到智能体策略集合,使智能体根据规则经验执行相应的动作策略,实现智能决策行为。这类方法具有系统稳定性和可解释性,但是存在执行策略单一且灵活性较弱的缺陷,因而容易被掌握其规律的对手策略所针对。

图2. 基于规则库的动态脚本法

以蒙特卡罗树搜索为代表的统计前向规划型方法(见图3),将游戏引擎的运行机理简化构造前向推理模型,通过前向模型进行环境推理采样,根据启发式知识定义目标评价函数,经过多轮更新迭代优化得到目标解。这类方法具备良好的环境自适应性和泛化性,无需进行模型算法训练,但是该类型算法对前向系统辨识度要求较高且需要大量的前向统计采样,因而在处理实时性问题容易受到影响。

图3. 蒙特卡罗树搜索在格斗游戏的应用

深度强化学习型算法(见图4)已经在许多视频游戏取得里程碑式进展,通过构建深层神经网络模型,以最大化累积期望奖赏目标的作用下,进行大量的环境交互性训练来优化模型参数,提升端到端决策模型的对抗适应性,具备自主优化学习的能力。但是该类型算法需要较长时间的环境交互并且由于采样策略更新的不稳定,容易产生策略遗忘或崩塌的问题,致使策略模型的泛化性无法得到有效保证。

图4. 深度强化学习在格斗游戏的应用

我们提出的基于自适应对手模型的增强型滚动时域演化算法则将启发式规则、统计前向规划与强化学习的优势结合在一起,在启发式规则作用下压缩动作搜索空间,通过滚动时域演化算法在对抗环境自适应性交互,采用监督型强化学习优化对手模型使模型具备学习优化的能力。


▶ 滚动时域演化算法 ◀

滚动时域演化算法是一种演化最优动作序列的更新优化过程,通过前向模型推理优化决策动作序列。在优化过程结束后,选择最优动作序列对应的第一个动作作为决策应答,最优动作序列对应着最佳适应度。滚动时域演化算法的流程如图5所示。

图5. 滚动时域演化算法流程

种群由多个不同动作序列(等价于基因序列)的个体组成。根据适应度函数评价的高低结果,在种群中保留评价结果较高的动作序列个体。对种群中保留的个体进行选择、交叉与变异等一系列演化计算优化过程,产生新一轮不同的子代个体。然后将新一轮子代个体有序地输入到前向系统模型,经过前向推理规划得到未来状态,然后使用启发式适应度函数评估未来状态具有的价值,更新种群中所有个体的适应值。随后重复上述迭代过程,直至系统预留的迭代更新时间耗尽或目标解的适应值已完全收敛。具体应用的格斗游戏任务中,滚动时域演化算法的个体适应函数定义为

其中评分函数定义为

多样性函数定义为

前向模型推理定义为

上述式子中 表示个体评分与多样性评分均衡权重, 与 分别表示我方和对方智能体的动作序列且序列长度为 , 为时刻 时状态, 与 分别表示我方与对方的血量。 为适应度函数由评分函数 与多样性函数 加权求和得到,其中评分函数用于评估对应状态的价值,而多样性函数用于抑制个体同质化, 表示种群个体数量, 表示动作序列的第 个动作,计数函数 用于统计个体中的每个基因在当前种群中的出现次数。

不同于启发式规则型方法,滚动时域演化算法具备良好的环境自适应能力,通过前向模型构建状态动作转移推理规划器,采用演化计算的方式进行前向推理及优化,预估策略推演回报而进行有效决策行为。


▶ 对手策略建模 ◀

尽管滚动时域演化算法具备强大的推理规划能力,但是其仅考虑自身与环境行为的交互,无法考虑对手与环境的同时交互,因而会使其前向推理过程产生一定偏差,致使无法有效解决双人实时零和博弈问题。对此所提出的自适应对手建模可有效处理该问题,使滚动时域演化算法适用于双人实时零和博弈问题。

由建模方式可将对手建模分为隐式建模和显式建模两类。通常隐式建模直接将对手信息作为自身博弈模型的一部分处理对手信息缺失的问题,通过最大化智能体期望回报的方式将对手的决策行为隐式引进自身模型,构成隐式建模方法。显式建模则直接根据观测到的对手历史行为数据进行推理优化,通过模型拟合对手行为策略,掌握对手意图,降低对手信息缺失带来的影响,并且对其他算法的适配兼容效果更好。根据算法模型兼容性和实时性要求,选择显示建模的方式构建基于神经网络方法的对手模型。

对手学习模型采用单步前向推理的方式预估对手行为,通过神经网络模型进行动态自适应性更新调整。针对格斗游戏任务具有的实时性和有限内存要求,构建简单的线性神经网络结构,输入信息包含血量、能量、x轴和y轴方向坐标、角色状态以及角色间的相对距离。输出信息为对手可以采取的56个离散动作行为,包含地面攻击、空中攻击、地面技能以及空中技能等。这里采用监督式和监督强化式两类方法进行对手模型优化。监督式优化方法构造交叉熵损失函数进行优化

式中 表示第 个实际动作标签,并且以独热编码表示。 表示第 个神经网络输出,并采用生成数据在线更新的方式优化。监督强化式优化方法共有两种强化学习类型,分别是Q学习和策略梯度。通常的强化学习方法是通过直接与环境在线交互的方式更新优化,然而这里采取的是状态-动作-奖赏三元组的数据形式进行模型更新,完全通过交战过程中的对手的策略决策行为获得。基于Q学习的对手建模采用 步回报作为优化目标,具体形式为

对手模型参数通过小批量梯度下降更新均方损失函数得到

基于策略梯度的对手建模直接作用在对手策略模型参数,通过梯度上升的方式更新未来期望折扣奖赏的估值,策略梯度更新梯度为

式中累积奖赏对应的即时奖赏函数为对抗双方的血量差,具体表示为

当奖赏值大于零时说明在t+1时刻对手血量要多于本方血量,反之亦然。总之,在对手模型的帮助下,构建一个虚拟策略模型生成对手行为,结合滚动时域演化算法进行迭代推理,得到较为准确的推理决策行为,具体步骤如图6所示。

图6. 基于自适应对手模型的滚动时域演化算法流程图


▶ 算法实验结果 ◀

格斗游戏人工智能平台FightingICE提供了一个实时对抗环境用于格斗游戏AI测试。该平台要求智能体的在反应时间为16.67ms(即60帧每秒)的情况下在56个离散动作中进行有效决策,同时为模拟人类玩家的真实反应时间产生15帧系统延迟。平台提供了三种不同类型的角色ZEN、GARNET和LUD,具有不同的角色属性因而带来不同的行为策略集合。为了公平比较算法性能,对抗双方规定采取同一类型角色进行对战,初始血量为400,初始能量值为0,目标是在60秒限定时间内快速击败对方。

为有效验证博弈策略模型的算法性能,对五种基于不同类型的对手模型:无对手模型(RHEAOM-N或RHEAOM-None)、随机对手模型(RHEAOM-R)、监督式对手模型(RHEAOM-SL)、Q学习式对手模型(RHEAOM-Q)和策略梯度对手模型(RHEAOM-PG),进行内部比较。然后与2018年参加格斗游戏人工智能竞赛的格斗AIbot进行对抗测试,每个模型每次测试200次,重复测试5轮取平均胜率结果。相关的实验超参数如表1所示。

表1. 实验设置超参数

不同对手模型的内部实验测试结果如表2所示。其中RHEAOM-PG在不同的三个角色均取得较高胜率,因而在五种RHEAOM变体的表现最优。

表2. 不同对手模型的内部对抗胜率结果

为进一步测试,将RHEAOM不同变体与2018年格斗游戏人工智能竞赛AI进行对抗,选择其中五个具有代表性水平的Java AIBot(Thunder、KotlinTestAgent、JayBot、MogakuMono、UtalFighter)作为比较,实验结果如表3所示。RHEAOM-PG同样取得最佳表现,并且基于监督型(SL)和监督强化型(Q与PG)对手模型的滚动时域演化博弈模型在三种不同角色的平均胜率均超过80%,相对于无模型或随机对手模型在性能上均呈现显著提升。

表3.RHEAOM不同变体与2018年格斗游戏人工智能竞赛AI对抗胜率结果

此外,基于该算法设计的格斗AI Bot(ERHEA_PI)参加了2020年格斗游戏人工智能竞赛,并打破了MCTS型博弈策略模型最近4年的统治地位,总积分上以较大领先优势夺得最终冠军。具体参赛及获奖情况分别如图7和图8所示。

图7. 2020年IEEE Conference on Games格斗游戏人工智能竞赛参赛情况

图8. 2020年IEEE Conference on Games格斗游戏AI冠军获奖证书


▶ 小结 ◀

这里提出一种新型的双人实时博弈模型,并将其成功应用到格斗游戏AI,设计了三种基于不同更新方式的对手模型(监督型、Q学习型和策略梯度型)。实验结果表明,在自适应对手模型的作用下,滚动时域演化算法得到了明显增强,表现性能要显著优于蒙特卡罗树搜索型算法,并在对阵格斗游戏人工智能竞赛AI体现了不俗的战力水平。尽管所提出的算法实验是面向格斗游戏任务设计的,但格斗游戏作为典型的双人实时博弈问题,具有双人实时博弈问题的许多共性挑战,所提出的算法可有效解决上述研究带来的挑战性问题,故有潜力进一步适用于其他双人实时零和博弈任务。

图9. 2020年格斗游戏AI竞赛(P1为我方)

参考文献

1. Lu F, Yamamoto K, Nomura LH, et al. Fighting game artificial intelligence competition platform. In: Proceedings of the 2nd IEEE Global Conference on Consumer Electronics (GCCE), 2013

2. http://www.ice.ci.ritsumei.ac.jp/~ftgaic/index-R.html

3. Tang Z, Zhu Y, Zhao D. Enhanced rolling horizon evolution algorithm with opponent model learning.IEEE Transactions on Games, 2020

历史精华好文

  • 专辑1:AI工程落地

  • 专辑2:AI核心算法

  • 专辑3:AI优质资源

交流合作

请加微信号:yan_kylin_phenix注明姓名+单位+从业方向+地点,非诚勿扰。

2020最佳双人博弈对抗方法 | 基于强化学习对手建模的滚动时域演化算法「AI核心算法」...相关推荐

  1. 2020AI顶会的腾讯论文解读 | 多模态学习、视频内容理解、对抗攻击与对抗防御等「AI核心算法」

    关注:决策智能与机器学习,深耕AI脱水干货 报道 |  腾讯AI实验室 计算机视觉领域三大顶会之一的 ECCV(欧洲计算机视觉会议)今年于 8 月 23-28 日举办.受新冠肺炎疫情影响,今年的 EC ...

  2. 「万字综述」对抗鲁棒性-AI桥头堡「AI核心算法」

    关注:决策智能与机器学习,深耕AI脱水干货 作者 |  陶略 报道  |  王晋东不在家 前言:本文介绍对抗鲁棒性,主要针对的是深度学习时代下深度神经网络的鲁棒性问题.大部分内容探讨最基本的机器学习分 ...

  3. 少数派实测报告:AI巨无霸模型GPT-3 | 附送API 调用方法「AI核心算法」

    关注:决策智能与机器学习,深耕AI脱水干货 作者 |   Max Woolf 编译 |  刘淑雯 编译 |  林檎 报道 | 数据实战派 编者按:在今年5月29日,OpenAI 发表了一篇关于 GPT ...

  4. 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法

    2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...

  5. 【论文笔记】基于强化学习的机器人手臂仿人运动规划方法

    文章目录 摘要 关键词 0 引言 学者研究 阶段一:采集运动数据,分析运动过程特征 阶段二:设计仿人变量.建立仿人标准和约束 阶段三:用智能算法提升仿人运动机器人性能 本文工作 1 问题描述及方法架构 ...

  6. 【论文笔记】基于生成对抗网络的强化学习算法的研究

    目录 摘要 关键词 0 引言 1 相关理论 1.1 强化学习理论 1.2 生成对抗网络理论 1.3 基于生成对抗网络的强化学习算法 1.3.1 算法总体结构框架 2 实验与分析 3 总结 摘要 解决: ...

  7. dncnn图像去噪_基于强化学习的图像去噪方法与流程

    本发明属于图像处理技术领域,涉及一种基于机器学习技术,采用强化学习去除图像噪声的方法. 背景技术: 随着计算机技术的发展,人们对于图像质量的要求越来越高.但是,由于环境或拍摄设备等因素,能够获得图像通 ...

  8. python代码:基于强化学习的智能电网的动态定价方法 摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法

    python代码:基于强化学习的智能电网的动态定价方法 摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法. 使用强化学习(RL)描述分层决策框架 ...

  9. 主要内容: 本文提出了一种基于(ppo)的微电网最优调度方法。 该方法采用强化学习(RL)来学习调度策略,并积累相应的调度知识。 同时,引入ppo模型,将微电网调度策略动作从离散动作空间扩展到连续动作

    MATLAB代码:微电网 强化学习 关键词:微电网 强化学习 RL Reinforcement Learning 参考文档:<Optimal Scheduling of Microgrid Ba ...

最新文章

  1. 2020-WEB开发路线图,和即将到来的 2021-WEB技术清单
  2. boost::multi_array模块实现打印数组相关的测试程序
  3. 参数详解 复制进程_如何优化PostgreSQL逻辑复制
  4. 前端学习(517):两列布局的第三种解决方案的优缺点
  5. 2016级算法第二次上机-F.ModricWang's Number Theory II
  6. 今天的作业 --- 去重
  7. linux下ts转mp4,ffmpeg安装及实现视频格式的转换、分片(ts m3u8)
  8. 【hibernate笔记】
  9. 95-30-017-Channel-NioServerSocketChannel
  10. Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)
  11. java树广度优先_如何在功能上生成树广度优先 . (使用Haskell)
  12. Python 微信表情包打印发送中秋快乐
  13. 吉他效果器-削波失真
  14. 信创操作系统--麒麟Kylin桌面版 (项目三 控制中心:账户、自定义、个性化、声音、日期、电源管理、网络、输入法、系统更新等设置)
  15. 程序关闭时在#pragma warning(suppress: 4985)处中断
  16. android微信qq分享,android 一键分享 QQ 微信
  17. 远程监控系统中关于TP-Link路由器的设置方法
  18. [李景山php] ddos 防御基础
  19. 世界卫生组织关于糖尿病、眼部疾病的相关数据整理
  20. ROS学习总结一:talker and listener

热门文章

  1. 都 9012 年了,为什么汽车厂商还没全面倒向 OTA 升级?
  2. c++实现线程池(真实入门!)
  3. Springboot美食网u1652计算机毕业设计-课程设计-期末作业-毕设程序代做
  4. Burp Suite 解决中文乱码
  5. 能否构成三角形的条件代码_灵活运用全等三角形寻找线段间的数量关系
  6. 光泵磁强计:下一代功能神经影像工具
  7. PHP Excel导出之 xlswriter (三)
  8. linux标准输入流,linux下标准输入输出流重定向方法
  9. 学习C#值得一看的书
  10. 阿里云OSS视频文件迁移视频点播,并导出媒资excel表