本文作者:NGA-43097891
相信大家这几年或多或少都听过深度学习这个概念。绝悟AI正是深度学习的产物,更确切说绝悟AI的核心是深度强化学习(Deep Reinforcement Learning)。本人粗略阅读腾讯AI lab 叶德珩博士一作的论文<Mastering Complex Control in MOBA Games with Deep Reinforcement Learning>[1](链接在文末参考文献中),此文发表的人工智能的顶会2020 AAAI上面(虽然这个会议的水平个人感觉最近有些下降)。下面本人结合论文和一些资料,对绝悟的内部原理细节做进行阐述。
首先是背景,相信大家应该都听过围棋AI-AlphaGo。之前的阿尔法狗一战成名让强化学习名声大噪。之后便有各种游戏AI,例如DeepMind的星际争霸的AI与OpenAI的Dota2的AI,这两个比较早,因该是两三年之前。之前便取得不错的成绩,因为本人是刀塔玩家,所以当时TI比赛期间见过AI 5v5 明星挑战赛。下面将绝悟与go做个对比:
上面主要介绍绝悟AI在1v1的环境下,相比于Go的计算复杂度上面,以Action space(直译动作空间)为例王者荣耀的每一帧的操作可以分解为100 个离散的动作(比如位移,点击技能,点击攻击按键等),这里的9000帧每局游戏应该是考虑到人类的反应时间而设置的帧数。所以我们可以看到,游戏AI的复杂度是很高的。
下面还需要提出两个概念,智能体(agent)和游戏单元(game unit),智能体可以简单理解为英雄,游戏单元包括小兵,野怪,防御塔之类。由于1v1难以获取高效的数据(叶博士说1v1练英雄比较多),所以采用无监督学习的方式,采用自对弈的方式(即我训练我自己)。下面正式进入绝悟的细节:首先是系统架构方面,也是就是绝悟AI的整体到底是个什么东东。
首先要说明的是,上述各个模块是独立的,下面我将逐一介绍。
1)AI server with Game Env部分:这就是AI打AI(我打我自己)的地方,并且与游戏环境做交互,这里设计到游戏的内核部分。
2)Dispatch部分:这个部分主要就是收集游戏数据,传输给下一个部分
3)Memory Pool部分:其中进行存储前一部分传输过来的数据,并且对数据进行处理,以方便喂给我们的学习器。
4)RL learner部分:顾名思义,就是训练强化学习的模型的地方,并且将输出的数据再传输给我们的第1)部分(这里的输出简单理解应该就是我们英雄所执行的各种动作),这样AI就可以与AI博弈。(腾讯果然财大气粗,这里光显卡用了1000 ,应该是英伟达专业级的神经网络显卡)
看完上述的描述,大家应该发现,RL learner才是AI的核心,没错下面我将详细介绍RL learner部分,照例我们先看框图: