东北大学 信息科学与工程学院, 辽宁 沈阳 110819
收稿日期:2020-05-04
基金项目:国家重点研发计划项目(2018YFB2003502); 国家自然科学基金资助项目(62073061); 中央高校基本科研业务费专项资金资助项目(N2004020)。
作者简介:孟琭(1982-),男,辽宁沈阳人,东北大学副教授。
摘要:基于强化学习, 设计了一个面向三维第一人称射击游戏(DOOM)的智能体, 该智能体可在游戏环境下移动、射击敌人、收集物品等.本文算法结合深度学习的目标识别算法Faster RCNN与Deep Q-Networks(DQN)算法, 可将DQN算法的搜索空间大大减小, 从而极大提升本文算法的训练效率.在虚拟游戏平台(ViZDoom)的两个场景下(Defend_the_center和Health_gathering)进行实验, 将本文算法与最新的三维射击游戏智能体算法进行比较, 结果表明本文算法可以用更少的迭代次数实现更优的训练结果.
关键词:强化学习深度学习目标识别Faster RCNNDQN
Control Algorithm of Three-Dimensional Game Based on Reinforcement Learning
MENG Lu, SHEN Ning, QI Yin-qiao, ZHANG Hao-yuan
School of Information Science & Engineering, Northeastern University, Shenyang 110819, China
Corresponding author: MENG Lu, E-mail: menglu@ise.neu.edu.cn.
Abstract: Based on reinforcement learning, an agent for three-dimensional first person shooting game(DOOM)was designed. The agent can move, shoot enemies and collect objects in the game environment. The proposed algorithm combines the Faster RCNN algorithm of deep learning and the Deep Q-Networks(DQN)algorithm of reinforcement learning, which can greatly reduce the search space of DQN algorithm and improve the training efficiency of the proposed algorithm. The experiments were carried out in two scenes(Defend_the_center and Health_gathering)of the virtual game platform(ViZDoom), and the proposed algorithm was compared with the state-of-the-art three-dimensional shooting game agent algorithm. The results show that the proposed algorithm can achieve better training results with fewer iterations.
Key words: reinforcement learningdeep learningobject detectionFaster RCNNDeep Q-Networks(DQN)
多年来, 科研人员致力于基于无监督的学习方式来训练可以适应现实世界的智能体, 这种适应体现在可以根据现实环境的各种特征来进行相应的反馈, 但现实世界过于复杂, 而且在现实世界中训练智能体的代价太大, 难以承受.作为现实世界的一个简单投射, 电子游戏平台所提供的虚拟环境与现实世界有许多共通之处.因此, 可以通过研究三维虚拟环境中的智能体来模拟现实世界.许多研究人员基于强化学习算法设计可以适应游戏环境并自动打游戏的智能体, 例如, 2015年Mnih等基于强化学习设计智能体, 完成雅达利2600中的游戏, 该智能体在游戏过程中表现出了与人类同级别的水平[1].但雅达利2600中的游戏是二维的, 而且智能体可通过游戏图像来获取全局信息, 这与现实环境有很大不同.相比之下, 三维视角的第一人称射击(first-person shooter, FPS)游戏, 其游戏环境与现实环境的相似度更高.
电子游戏中的非人类控制成分通常被称为智能体.一般在FPS的人机模式下, 智能体需要获取游戏地图、物资位置及角色位置等内部信息来与人类玩家对抗.而人类玩家无法获取游戏内部信息, 主要依靠游戏屏幕图像信息来决策.考虑到目前智能体与人类之间的差距, 有必要研究以屏幕图像信息为输入时决策的制定.
为了研究三维第一人称游戏场景下的深度学习应用, 特别是强化学习的应用, 产生了基于Doom的ViZDoom[2]、基于Quake 3的DeepMind Lab[3]及基于Minecraft的Project Malmo[4]等一系列强化学习训练平台.2016年和2017年在ViZDoom平台上举办了两届比赛[5], 旨在设计并实现在第一人称射击游戏Doom的多玩家Death_match模式下运行的智能体.卡耐基梅隆大学终结者队开发的智能体(Arnold)于2016年获得了第二名, 于2017年获得了第一名.由终结者队公布的代码可知, Arnold用到的强化学习网络为DQN, 将游戏截图直接输入DQN网络, 搜索空间较大.考虑到目前目标识别算法方面有一系列较为成熟的算法, 将两者结合便可减少DQN网络的搜索空间, 提高训练效率及模型效果.
1 Arnold模型本文算法改进自终结者队的Arnold模型.Arnold的具体算法是DQN和DRQN(Deep Recurrent Q-Networks)[6-7]的结合, 通过强化学习来实现智能体在虚拟游戏平台ViZDoom中的决策和动作, 其任务可以分为导航和动作两部分[8-9], 因此在Arnold中, 用DQN和DRQN分别实现导航网络和动作网络.
Arnold的模型结构示意图如图 1所示.其中第一个卷积层的特征图数量为32, 尺寸为8×8, 步长为4;第二个卷积层的特征图数量为64, 尺寸为4×4, 步长为2;第三个卷积层的特征图数量为64;第四层为全连接层, 连接数为4 608;第五层也是全连接层, 连接数为512;表征游戏特征的数据由第五层产生, 尺寸为k, 表示k个特征; 表征动作分数的全连接层由第四层经LSTM产生, 尺寸为n, 表示n种动作[8].模型上层产生的游戏特征起到辅助决策的作用, 模型下层为DQN网络的主体, 产生Q-Learning对象, 根据动作分数对动作进行决策.
图 1(Fig. 1)
图 1 Arnold模型结构示意图Fig.1 Model structure diagram of Arnold |
网络的搜索空间包含动作空间和状态空间.动作空间中包含智能体的动作: 前进、后退、左转、右转、射击、拾取等, 由于本身已经是逻辑量的组合, 冗余空间少.状态空间中包含网络的输入状态, 与输入的图像尺寸、像素取值范围有关.Arnold是直接将游戏截图输入给DQN网络, 且游戏图像是尺寸为60×180的RGB图像, 且每个像素为8位深度, 这导致Arnold的DQN状态空间大小为25610 800, DQN网络的状态空间大, 导致训练效率低, 需要非常多的迭代次数才能达到稳定的结果.
2 本文模型2.1 模型设计本文模型在Arnold基础上进行了改进, 增加了一个目标识别的模块, 该模块用于将图像帧中有意义的目标和无意义的背景都识别出来, 并在后续的操作中仅针对有意义的目标进行处理.与Arnold模型将整幅图像直接送入CNN中进行训练相比, 本文模型则结合现有的目标识别算法Faster RCNN, 将经识别后的特征图像输入到DQN网络中, 这可以将DQN网络的状态空间减小为210 800, 与Arnold相比, 本文模型的状态空间仅为Arnold的1/12810 800, 这可以极大提高训练效率及识别准确度, 同时充分利用深度学习和已有的训练平台, 将强化学习和目标识别相结合.
本文模型的总体结构如图 2所示, 利用Faster RCNN对游戏图像进行目标识别, 获得当前帧的目标识别结果, 包含游戏目标对象的种类和位置, 并根据目标识别的结果将原图像转化为黑白图像, 其中黑色区域表示背景, 即对智能体既不会造成伤害也没有收益.白色区域表示Faster RCNN算法检测出的结果, 该结果在Defend_the_center模式下表示敌人, 在Health_gathering模式下表示对智能体有益的医疗包.
图 2(Fig. 2)
图 2 本文的模型结构示意图Fig.2 Model structure diagram in this article |
当前主流的CNN目标识别算法可分为两类: 包含生成候选区及提取特征的两阶段目标识别检测框架如RCNN系列算法; 端到端的单阶段目标识别算法如YOLO系列算法.两阶段的检测框架相对准确率更高, 但其速度较慢, 较难满足图片或视频实时性处理要求; 单阶段的检测框架相对准确率较低, 但在保证一定准确率的情况下, 拥有更快的推理速度[10].ViZDoom平台考虑到游戏画面之间的连贯性及运行效率, 加入了跳帧处理, 本文算法的跳帧数设置为4[2].
Faster RCNN算法[11-13]是RCNN目标识别系列算法中相对准确率最高、检测速度最快及所需训练时间最短的算法.从RCNN到Fast RCNN再到Faster RCNN, 检测速度不断提高, 从每47s识别1张图像, 提高到每秒识别5张图像.相对准确率也不断提高, Faster RCNN的识别准确率可达到73.2%.
本文模型的输出部分与Arnold的模型输出部分相同, 上层产生游戏特征来辅助决策, 下层产生Q-Learning对象来进行决策.游戏特征部分输出对应的损失函数是交叉熵.Q-Learning部分输出对应的损失函数为DQN的损失函数, 其计算公式为
(1) |
(2) |
2.2 运行模式FPS游戏的任务可以分解成动作和导航两部分: 动作指的是智能体的射击、拾取物资和向左向右转; 导航指的是智能体在地图中循迹.ViZDoom中有Defend_the_center和Health_gathering两个场景, 分别与动作和导航相对应.
在Defend_the_center场景中, 智能体位于圆形无遮挡物地图的中央.敌人从地图边界处不断出现, 并走向智能体, 同时用武器对智能体造成伤害.智能体的武器被限定为一把手枪, 弹药数有限, 仅为56发, 且无法通过捡拾子弹来补充弹药.智能体在该场景下, 需要确定敌人位置, 并射击将敌人击毙, 智能体的目的是击杀尽可能多的敌人, 用目标识别网络处理游戏图像过程如图 3所示.
图 3(Fig. 3)
图 3 Defend_the_center场景下的模型处理过程Fig.3 Model processing of Defend_the_center scenario (a)—游戏原始帧截图;(b)—Faster RCNN识别的中间结果图;(c)—根据目标识别结果得到的黑白图像. |
在Health_gathering场景中, 智能体行走在持续消耗生命值的岩浆上.为了生存, 智能体需要寻找医疗包并进行拾取.在该场景下, 智能体的目的是生存尽量久的时间, 用目标识别网络处理游戏图像过程如图 4所示.
图 4(Fig. 4)
图 4 Health_gathering场景下的模型处理过程Fig.4 Model processing of Health_gathering scenario (a)—游戏原始帧截图;(b)—Faster RCNN识别中间结果图;(c)—根据目标识别结果得到的黑白图像. |
3 实验与结果3.1 实验环境本文的硬件平台采用2个主频为2.1 GHz的8核CPU与1块显存为12 GB的K40 GPU, 操作系统为Ubuntu16.04, 编程语言为Python.实验中, 对比本文算法与终结者队的模型Arnold[8].
3.2 训练过程模型的训练分为两个阶段: 训练目标识别网络Faster RCNN; 基于训练好的目标识别网络训练DQN模型.
在训练的第一阶段, 针对ViZDoom中的两个场景, 建立对应的数据集.Defend_the_center场景的数据集中目标类别包括蛇与机器人, 共有216张图片; Health_gathering场景的数据集中目标类别只有急救包, 共有199张图片.
使用基于VGG16结构的Faster RCNN网络, 加载VGG16模型的预训练参数, 分别在两个数据集上训练网络.训练好的目标识别模型在两个场景下的应用如图 3、图 4所示.
在训练的第二阶段, 每训练5 000次, 进行一次测试.迭代次数由模型性能确定, 当模型性能优于Arnold且已达到稳定时即可停止训练.在Defend_the_center的场景下, 模型的训练指标是测试时平均每局的击杀敌人数.由于智能体最初只有56发子弹而且后期无法得到补给, 所以每局最多可以击杀56个敌人.在Health_gathering的场景下, 比较的是智能体的生存时间, 用测试时平均每局的帧数来表示.在该场景下, 系统设置的最大生存时间为2 min, 结合虚拟游戏平台每秒35帧的帧频, 智能体每局最大生存帧数为4 200帧.
图 5为Defend_the_center场景下, 智能体平均每局击杀敌人数随迭代次数变化的曲线.由于本文模型的搜索空间远小于Arnold模型, 这使得本文模型只需要Arnold模型十分之一的迭代次数就可以达到稳定.而且由于本文模型结合了Faster RCNN, 提高了智能体击杀敌人的准确率, 本文模型平均每局的击杀敌人数为35, 最大一局的击杀敌人数为50.Arnold模型平均每局击杀敌人数为26, 最大一局击杀敌人数为30.
图 5(Fig. 5)
图 5 Defend_the_center场景下的训练曲线Fig.5 Training index curve in Defend_the_center scenario (a)—本文模型;(b)—Arnold模型. |
图 6为Defend_the_center场景下, 本文模型与Arnold模型的损失函数值随迭代次数变化的曲线.相较于Arnold模型, 本文模型的损失函数值很快达到了稳定, 仅在小范围内振荡, 而且其稳态值更小.
图 6(Fig. 6)
图 6 Defend_the_center场景下的损失函数曲线Fig.6 Loss function curve in Defend_the_center scenario (a)—本文模型;(b)—Arnold模型. |
图 7为Health_gathering场景下, 智能体平均每局生存时的帧数.搜索空间的减小使本文模型仅需要十分之一的迭代次数就可以让智能体达到最优.而Arnold模型随着迭代次数的增加, 表现并不稳定, 40万次迭代后才逐渐稳定.
图 7(Fig. 7)
图 7 Health_gathering场景下的训练指标曲线Fig.7 Training index curve in Health_gathering scenario (a)—本文模型;(b)—Arnold模型. |
Health_gathering场景下的损失函数取值随迭代次数变化的曲线如图 8所示.本文模型结合了目标识别算法, 提高了DQN网络的决策效率, 故本文的损失函数值能够比Arnold模型更快地收敛.
图 8(Fig. 8)
图 8 Health_gathering场景下的损失函数曲线Fig.8 Loss function curve in Health_gathering scenario (a)—本文模型;(b)—Arnold模型. |
3.3 实验结果与分析当模型性能优于终结者队的模型, 且已达到稳定时, 停止训练.训练结束后, 两个场景下的模型表现如表 1、表 2所示.
表 1(Table 1)
表 1 Defend_the_center场景下的模型表现Table 1 Performance of models in Defend_the_center scenario
| 表 1 Defend_the_center场景下的模型表现 Table 1 Performance of models in Defend_the_center scenario |
表 2(Table 2)
表 2 Health_gathering场景下的模型表现Table 2 Performance of models in Health_gathering scenario
| 表 2 Health_gathering场景下的模型表现 Table 2 Performance of models in Health_gathering scenario |
表 1为Defend_the_center场景下, 训练结果达到稳定时本文模型与Arnold模型表现.在平均击杀敌人数、损失函数值及达到稳态所需迭代次数, 本文模型的表现均优于Arnold模型.由于本文模型结构更为复杂, 在每次迭代时都需要使用目标识别网络, 所需的单次迭代训练时间比Arnold模型多.
Health_gathering场景下本文与Arnold的模型表现如表 2所示.与Defend_the_center的场景类似, 本文模型需要更少的迭代次数可达到更优的训练效果.实验结果表明本文模型通过将Faster RCNN和DQN相结合, 可以有效提升三维游戏虚拟环境中智能体的训练效率和完成游戏的表现.
4 结论1) ?与传统方法相比, 本文方法可以大大缩小状态空间的搜索范围, 从而可以极大地减小智能体的训练时间,提高智能体的训练效果.
2) ?本文方法在Defend_the_center和Health_gathering两个场景下, 都表现出了优于Arnold模型的训练过程和测试结果, 可以更快、更好地训练出适用于VIZDOOM平台下的三维虚拟射击游戏的智能体.
参考文献
[1] | Mnih V, Kavukcuoglu K, Silver D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015, 518(7540): 529-533. DOI:10.1038/nature14236 |
[2] | Kempka M, Wydmuch M, Runc G, et al. ViZDoom: a doom-based AI research platform for visual reinforcement learning[C]// IEEE Conference on Computational Intelligence and Games(CIG). Santorini, 2016: 1-8. |
[3] | Beattie C, Leibo J Z, Teplyashin D, et al. DeepMind lab[EB/OL]. (2016-12-13)[2019-12-20]. https://arxiv.org/abs/1612.03801. |
[4] | Johnson M, Hofmann K, Hutton T J, et al. The Malmo platform for artificial intelligence experimentation[C] // International Joint Conference on Artificial Intelligence(IJCAI). New York: AAAI Press, 2016: 4246-4247. |
[5] | Wydmuch M, Kempka M, Jas'kowski W. ViZDoom competitions: playing doom from pixels[J]. IEEE Transactions on Games, 2019, 11(3): 248-259. DOI:10.1109/TG.2018.2877047 |
[6] | Hausknecht M, Stone P. Deep recurrent q-learning for partially observable MDPs[J]. arXiv: 1507.06527[2020-03-08]. https://www.researchgate.net/publication/280329735 Deep Recurrent Q Learning for Partially Observable_MDPs. |
[7] | Lample G, Chaplot D S. Playing FPS games with deep reinforcement learning[J] arXiv: 1609.05521[2020-01-13]. https://zhuanlan.zhihu.com/p/34401116. |
[8] | McPartland M, Gallagher M. Learning to be a bot: reinforcement learning in shooter games[C]//Artificial Intelligence and Interactive Digital Entertainment Conference(AⅡDE). Palo Alto, California, 2008: 78-83. |
[9] | Tastan B, Sukthankar G R. Learning policies for first person shooter games using inverse reinforcement learning[C]//Artificial Intelligence and Interactive Digital Entertainment Conference(AⅡDE). Palo Alto, California, 2011: 85-90. |
[10] | 陈亮, 王志茹, 韩仲, 等. 基于可见光遥感图像的船只目标检测识别方法[J]. 科技导报, 2017, 35(20): 77-85. (Chen Liang, Wang Zhi-ru, Han Zhong, et al. A review of ship detection and recognition based on optical remote sensing image[J]. Science & Technology Review, 2017, 35(20): 77-85.) |
[11] | Han C, Gao G, Zhang Y, et al. Real-time small traffic sign detection with revised Faster-RCNN[J]. Multimedia Tools and Applications, 2019, 78(10): 13263-13278. DOI:10.1007/s11042-018-6428-0 |
[12] | Zhu X, Zhang C, Xie W, et al. Server monitoring system using an improved Faster RCNN approach[C] // IEEE International Conference on Anti-counterfeiting, Security, and Identification(ASID). Xiamen, 2017: 50-53. |
[13] | 郭梦浩, 徐红伟. 基于Faster RCNN的红外热图像热斑缺陷检测研究[J]. 计算机系统应用, 2019, 28(11): 265-270. (Guo Meng-hao, Xu Hong-wei. Hot spot defect detection based on infrared thermal image and Faster RCNN[J]. Computer Systems & Applications, 2019, 28(11): 265-270.) |