技术架构分析:攻克Dota2的OpenAI-Five

640?wx_fmt=jpeg

来源:CreateAMind

摘要:OpenAI昨日发布研究成果,宣布Dota2 5v5在限定条件下(英雄阵容固定,部分道具和功能禁用)战胜人类半职业选手。本文主要对其模型技术架构做一些分析总结。


一、 模型输入与输出


模型的输入是使用RAM(内存信息),如位置坐标,技能血量数值状态等,而不是图像像素信息。


640?wx_fmt=png


模型输入主要分为两个部分:

  • 直接观测的信息:场面其他英雄的绝对位置,相对距离,相对角度,血量,状态等。

  • 人工定义抽象的信息:是否被攻击以及正在被谁攻击,炮弹距离命中的时间,朝向的cos与sin,最近12帧内的英雄的血量变化等。


模型的输出即是指AI所选择的动作,包括移动,攻击释放技能等。OpenAI将连续的动作,离散化对应到网格,并对各种技能定制化释放动作,以减少动作空间的大小。以下图为例,AI要释放一个攻击技能,需要选取这个技能,并选择一个目标单位周围网格内的一个位置:


640?wx_fmt=png


值得注意的是,在Dota2游戏内还有其他动作,例如操控信使,购买装备,技能升级与天赋等,这些都是人工定义好,而不需AI决策的。而操控幻象分身,召唤物等涉及更复杂的多单位操作,则未在OpenAI当前版本的考虑范围内。


二、 网络架构与训练方式


网络架构架构局部如下图:


640?wx_fmt=png


640?wx_fmt=png

模型大图下载链接:https://d4mucfpksywv.cloudfront.net/research-covers/openai-five/network-architecture.pdf


总的来看,大量信息通过连接(concatenate)与全连接层(dense)层进行综合,作为1024维的LSTM的输入。LSTM综合时序信息,并输出决策向量,再用决策向量解构出详细动作。


训练方式:


  • 纯自我对弈训练。

  • 随机化训练:随机初始状态(血量速度移动等)的训练,以增强泛化能力。

  • 使用很高的γ=0.9997。γ为奖励衰减值,一般在其他环境中设置为0.98,0.998。

  • 大量计算:128,000CPU+256GPU,能做到每天模拟玩180年的游戏。


奖励(reward)设计:


  • 总体奖励:当前局面评估(塔的情况等),KDA(个人战绩),补兵表现等。

  • 合作奖励:全队的表现作为自己奖励的一部分。

  • 分路对线的奖励与惩罚:最开始分配一条路,前期发育时如果偏离就会惩罚。


三、 总结


用强化学习玩Dota2需要面对4个挑战:状态空间大,局面不完全可见(有视野限制),动作空间大,时间尺度大。


近期论文中提出的解决方案,大致有以下几个方向:


  • 状态空间大:解决方法如先用World Models抽象,再进行决策。

  • 局面不完全可见:一般认为需要进行一定的搜索,如AlphaGo的MCTS(蒙特卡洛树搜索)。

  • 动作空间大:可以使用模仿学习(Imitation Learning),或者与层次强化学习结合的方法。

  • 时间尺度大:一般认为需要时间维度上的层次强化学习(Hierarchical Reinforcement Leanring)来解决这个问题。


而神奇的是,OpenAI没有使用上述任一方法,而仅仅使用高γ值的PPO基础算法,就解决了这些问题。这说明凭借非常大量的计算,强化学习的基础算法也能突破这些挑战。


OpenAI没有使用的WorldModels,MCTS,IL,HRL等方法,既是学术界研究的重点方向,也是OpenAI-Five潜在的提升空间。这些更高效的方法若被合理应用,可以加快模型的学习速度,增强模型的迁移能力,并帮助模型突破当前的限制。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis基础-Redis概念及常见命令

1.nosql数据库 NoSQL数据库是一种提供了非关系型数据存储的数据库系统,与传统的关系型数据库(如SQL数据库)不同。NoSQL数据库的特点是灵活性高,能够处理结构化、半结构化或非结构化数据。它们通常用于大数据和实时Web应用。NoSQL数…

Java 高级特性 --- 反射

From:Java 高级特性 --- 反射:https://www.jianshu.com/p/9be58ee20dee From:Java 基础之 --- 反射(非常重要):https://blog.csdn.net/sinat_38259539/article/details/71799078 From:Java 高级…

G20国家科技竞争力大盘点,中国科研创新表现突出,人工智能变道超车

来源:科睿唯安中国科学院文献情报中心和科睿唯安6月25日在北京联合发布了《G20国家科技竞争格局之辩》系列报告,报告分为总体篇及人工智能专题篇(下文有重点介绍),聚焦G20国家的科研产出规模、学术影响力、领域分布、国…

Java中泛型 Class<T>、T与Class<?>、 Object类和Class类、 object.getClass() 和 Object.class

From&#xff1a;Java中泛型 Class<T>、T 与 Class<?>、 Object类 和 Class类、 object.getClass() 和 Object.class &#xff1a;https://www.cnblogs.com/zhaoyanhaoBlog/p/9362267.html Class<T>和 Class<?>类型 有什么区别&#xff1a;https://…

智能驾驶是否会“运动式”发展

来源&#xff1a;中国科学网最近&#xff0c;无人驾驶车发生撞人致死事故再度引发公众恐慌。在近日举行的全球人工智能技术大会上&#xff0c;中国工程院院士李德毅表示&#xff0c;不管是无人驾驶还是有人驾驶&#xff0c;事故总是有的。实际上人类才是第一马路杀手&#xff0…

Java学习之java高级特性

From&#xff1a;https://blog.csdn.net/w252064/article/details/79923999 [Java高级特性详解]&#xff1a;https://blog.csdn.net/qq_37977176/article/details/78941649 菜鸟教程 之 Java 教程&#xff1a;https://www.runoob.com/java/java-tutorial.html 本部分内容主要…

任正非亲自指导下拍的视频,事关中国的未来

来源&#xff1a;华为中美贸易战开打之后&#xff0c;中国产业未来的出路在哪里&#xff1f;华为的答案是基础研究与基础教育。这则由华为创始人兼CEO任正非亲自指导下拍摄的视频&#xff0c;呼吁社会重视基础教育&#xff0c;让教师成为最伟大的职业&#xff0c;成为优秀青年的…

《科学》杂志做了一个清单,告诉你今年 10 个最重要的科技突破

来源&#xff1a;网络大数据摘要&#xff1a;著名杂志《科学》最近列出了一份清单&#xff0c;来告诉你哪些科技突破在 2015 年是最重要的。《科学》是美国科技促进会出版的一份学术期刊杂志&#xff0c;主要发布的内容是各种学术研究&#xff0c;以及相关的科学新闻和观点&…

[进阶] --- Python3 异步编程详解(史上最全篇)

[进阶] - Python3 异步编程详解&#xff1a;https://blog.csdn.net/lu8000/article/details/45025987 参考&#xff1a;http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html 木风卜雨&#xff1a;https://blog.csdn.net/lu8000 1 什么是异步编程 1.1 阻…

AI+医疗:基于模型的医疗应用大规模分析 | 腾讯AI Lab学术论坛演讲

来源&#xff1a;腾讯AI实验室摘要&#xff1a;3月15日&#xff0c;腾讯AI Lab第二届学术论坛在深圳举行&#xff0c;聚焦人工智能在医疗、游戏、多媒体内容、人机交互等四大领域的跨界研究与应用。3月15日&#xff0c;腾讯AI Lab第二届学术论坛在深圳举行&#xff0c;聚焦人工…

Python 并行编程

参考&#xff1a;python-parallel-programming-cookbook-cn&#xff1a;https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/ 第一章 认识并行计算和Python 1. 介绍2. 并行计算的内存架构3. 内存管理4. 并行编程模型5. 如何设计一个并行程序6. 如何评…

自动驾驶技术之——虚拟场景数据库研究

来源&#xff1a;智车科技摘要&#xff1a;驾驶场景数据是智能网联汽车研发与测试的基础数据资源&#xff0c;是评价智能网联汽车功能安全的重要“案例库”与“习题集”&#xff0c;是重新定义智能汽车等级的关键数据依据。驾驶场景测试用例主要通过虚拟仿真环境及工具链进行复…

C++ 数据指针(-)

C指针探讨 &#xff08;一&#xff09;数据指针 指针&#xff0c;在C/C语言中一直是很受宠的&#xff1b;几乎找不到一个不使用指针的C/C应用。用于存储数据和程序的地址&#xff0c;这是指针的基本功能。用于指向整型数&#xff0c; 用整数指针(int*)&#xff1b;指向浮点数用…

【进阶】 --- 多线程、多进程、异步IO实用例子

【进阶】 --- 多线程、多进程、异步IO实用例子&#xff1a;https://blog.csdn.net/lu8000/article/details/82315576 python之爬虫_并发&#xff08;串行、多线程、多进程、异步IO&#xff09;&#xff1a;https://www.cnblogs.com/fat39/archive/2004/01/13/9044474.html Py…

何恺明CVPR演讲:深入理解ResNet和视觉识别的表示学习(41 PPT)

来源&#xff1a;专知摘要&#xff1a;今年CVPR 2018上&#xff0c;刚获得“TPAMI”年轻研究员奖的Facebook的Kaiming He做了一个叫“Learning Deep Representations for Visual Recognition”的讲座。在今年CVPR 2018上&#xff0c;刚获得“TPAMI”年轻研究员奖的Facebook的Ka…

Python 标准库 functools 模块详解

functools 官方文档&#xff1a;https://docs.python.org/zh-cn/3/library/functools.html Python 标准模块 --- functools&#xff1a;https://www.cnblogs.com/zhbzz2007/p/6001827.html python常用模块 - functools 模块&#xff1a;https://www.cnblogs.com/su-sir/p/125…

长寿即服务:创业公司如何用AI技术颠覆传统药物研发

来源&#xff1a;资本实验室摘要&#xff1a;未来学家、奇点大学创始彼得戴曼迪斯&#xff08;Peter Diamandis&#xff09;最近就人工智能对新药研发的推动作用进行了讨论&#xff0c;并结合其新近投资的药物研发公司案例&#xff0c;进一步为我们打开了一扇通往未来新药研发的…

npm 详解

npm 官方文档&#xff1a;https://docs.npmjs.com/cli/v6/commands/npm-install/ npm 模块管理器&#xff1a;http://javascript.ruanyifeng.com/nodejs/npm.html npm 常用命令详解&#xff1a;https://blog.csdn.net/sxs1995/article/details/80729069 1. 什么是 NPM NPM 的…

视觉系统的演化之旅——视觉器官、光感受器及视觉分子

来源&#xff1a;科学网摘要&#xff1a;在所有的感觉信息中&#xff0c;视觉机制可能是最复杂的了。我们每个人都能轻而易举地欣赏大自然的美景——青翠的草木、飞舞的蝴蝶、苍茫的白雪……我们很轻松地欣赏着大自然的色彩斑斓与瞬息万状&#xff0c;但这种神奇的视觉过程到底…

MAC OS 命令行使用详解

MAC OS 命令行使用详解&#xff1a;https://blog.csdn.net/sun375867463/article/details/9812317 1 为什么要使用命令行/如何开启命令行&#xff1f; 许多功能在图形界面不提供&#xff0c;只有通过命令行来实现。Finder 会隐藏许多你不太会需要的文件&#xff0c;然而 comman…