五分钟教你在Go

多智能体对抗作为决策AI中重要的部分,也是强化学习领域的难题之一。为丰富多智能体对抗环境,OpenDILab(开源决策智能平台)开源了一款多智能体对抗竞技游戏环境——Go-Bigger。同时,Go-Bigger还可作为强化学习环境协助多智能体决策AI研究。

与风靡全球的agar.io、球球大作战等游戏类似,在Go-Bigger中,玩家(AI)控制地图中的一个或多个圆形球,通过吃食物球和其他比玩家球小的单位来尽可能获得更多重量,并需避免被更大的球吃掉。每个玩家开始仅有一个球,当球达到足够大时,玩家可使其分裂、吐孢子或融合,和同伴完美配合来输出博弈策略,并通过AI技术来操控智能体由小到大地进化,凭借对团队中多智能体的策略控制来吃掉尽可能多的敌人,从而让己方变得更强大并获得最终胜利。

四类小球,挑战不同决策路径

Go-Bigger采用FreeForAll(FFA)模式来进行比赛。比赛开始时,每个玩家仅有一个初始球。通过移动该球,玩家可吃掉地图上的其他单位来获取更大的重量。每个队伍都需和其他所有队伍进行对抗,每局比赛持续十分钟。比赛结束后,以每个队伍最终获得的重量来进行排名。

在一局比赛中共有分身球、孢子球、食物球、荆棘球四类球。分身球是玩家在游戏中控制移动或者技能释放的球,可以通过覆盖其他球的中心点来吃掉比自己小的球;孢子球由玩家的分身球发射产生,会留在地图上且可被其他玩家吃掉;食物球是游戏中的中立资源,其数量会保持动态平衡。如玩家的分身球吃了一个食物球,食物球的重量将被传递到分身球;荆棘球也是游戏中的中立资源,其尺寸更大、数量更少。如玩家的分身球吃了一个荆棘球,荆棘球的大小将被传递到分身球,同时分身球会爆炸并分裂成多个分身。此外,荆棘球可通过吃掉孢子球而被玩家移动。

在Go-Bigger中,团队内部的合作和外部的竞技对于最终的成绩至关重要。因此,Go-Bigger设计了一系列的规则来提高团队所能带来的收益。由于玩家的分身球重量越小,移动速度越快,更多的分身可以保证快速发育,但是会面临被其他玩家吃掉的风险。同时,冷却期的存在使得玩家无法靠自身摆脱这样的风险。因此,同一队伍中不同玩家的配合尤为关键。

为便于团队内玩家的配合,Go-Bigger设置了玩家无法被同队伍完全吃掉的规则。Go-Bigger还设置了单个分身球的重量上限和重量衰减,使得单一分身球无法保持过大重量,迫使其分裂以减少重量损失。在游戏后期,团队内部的重量传递会显得至关重要,合理的重量传递可以保证团队在与其他队伍对抗时获得更大的优势。

支持RL环境,提供三种交互模式

此外,为帮助用户在强化学习领域的多智能体策略学习,Go-Bigger也提供了符合gym.Env标准的接口供其使用。在一局游戏中,Go-Bigger默认设置含有20个状态帧和5个动作帧。每个状态帧都会对当前地图内所有单位进行仿真和状态处理,而动作帧会在此基础上,附加对单位的动作控制,即改变单位的速度、方向等属性,或使单位启用分裂、发射或停止等技能。

为了更方便地对环境进行探索,Go-Bigger还提供了必要的可视化工具。在与环境进行交互的时候,可以直接保存本局包含全局视角及各个玩家视角的录像。此外,Go-Bigger提供了单人全局视野、双人全局视野、单人局部视野三种人机交互模式,使得用户可以快速了解环境规则。

三步走,快速搭建强化学习baseline

算法baseline的目的是验证某个问题环境使用强化学习算法的初步效果,对各个环节的信息做简单梳理和分析,熟悉之后便可轻松上手比赛,在环境、算法、算力上逐步增加复杂度,设计迭代效果更强的智能体。

Go-Bigger环境的强化学习算法baseline主要分为环境瘦身、基础算法选择、定制训练流程三部分。其中,环境瘦身即将原始游戏环境简化成适用于强化学习的标准环境格式;基础算法选择指根据环境的基本信息选择合理的基础RL算法;定制训练流程指根据环境的特殊特征定制训练流程。

1.环境瘦身

A.人类视角的Go-Bigger(左)V.S.翻译成游戏引擎中的结构化信息(右):

这些人理解起来很简单的数据表示,对计算机和神经网络却非常不友好,因此需要专门对这些信息做一定的加工,并根据强化学习的特性设置成标准的强化学习环境观察空间。

(1)特征工程:

·原始的游戏数据需要表达游戏内容,其数值范围波动便会较大(比如从几十到几万的球体大小),直接将这样的信息输入给神经网络会造成训练的不稳定,所以需要根据信息的具体特征进行一定的处理(比如归一化,离散化,取对数坐标等等)。

·对于类别信息等特征,不能直接用原始的数值作为输入,常见的做法是将这样的信息进行独热编码,映射到一个两两之间距离相等的表示空间。

对于坐标等信息,使用绝对坐标会带来一些映射关系的不一致问题,相对坐标通常是更好的解决方式。

(2)从RGB图像到特征图像层

(3)可变维度

Go-Bigger环境中存在很多可变维度的地方,为了简化,baseline环境中强行截断了单位数量,用统一的方式来规避可变维度问题。

B.设计动作空间

Go-Bigger对于人类来说操作起来十分简单,包括上下左右QWE,这些基本的按键组合起来便可以诞生出许多有趣的操作,如十面埋伏、大快朵颐等。但是,游戏引擎中实际的动作空间是这样的(动作类型+动作参数):

游戏引擎的这种形式在强化学习中被称作混合动作空间,也有相应的算法来处理该问题。但基于baseline一切从简这一核心,通过使用比较简单粗暴的离散化处理,将连续的动作参数(x,y坐标)离散化为上下左右四个方向。针对动作类型和动作参数的组合,也简单使用二者的笛卡尔积来表示,最终将环境定义为一个16维的离散动作空间。

C.设计奖励函数

奖励函数定义了强化学习优化的目标方向。Go-Bigger是一项关于比谁的队伍更大的对抗游戏,因此奖励函数的定义也非常简单,即相邻两帧整个队伍的大小之差。

如下图所示两张表示相邻两个动作帧,右侧计分板显示各个队伍实时的大小数值,将当前帧的大小减去上一帧的大小,就定义得到了奖励值。而对于整场比赛,则使用每一步奖励的累加和作为最终的评价值。评价值最大的队伍,将赢得本局比赛。此外,在训练时,还通过缩放和截断等手段将奖励值限制在[-1,1]范围内。

2.基础算法选择

在完成对RL环境的魔改之后,会呈现如下基本信息:

多模态观察空间:图像信息+单位属性信息+全局信息

离散动作空间:16维离散动作

奖励函数:稠密的奖励函数,且取值已经处理到[-1,1]

3.定制训练流程

DQN通常只用来解决单智能体的问题,而在Go-Bigger中一支队伍会存在多个玩家,且一局比赛为多个队伍混战,因此会涉及多智能体之间合作和对抗等问题。在多智能体强化学习领域,针对该问题可展开诸多的研究方向,但为简化设计Go-Bigger使用了IndependentQ-Learning(IQL)+自我对战(Self-Play)的方式来实现训练流程。

例如,对于一个队伍中的多个智能体,团队的最终目标是让整个队伍(总体积/总体量/总重量)的大小最大,因此在baseline中可使用IQL算法来实现,以高度并行化地实现整个优化过程;对于实际一局比赛中存在多个智能体的情况,则可使用朴素的自我对战(Self-Play)这一相当简单且非常节省算力的方式来参与比赛。评测时,会将随机机器人和基于规则的机器人作为比赛的对手,测试验证目前智能体的性能。

Tips:

·使用更高级的自我对战(Self-Play)算法(比如保存智能体的中间历史版本,或使用PFSP算法);

·构建LeagueTraining流程,不同队伍使用不同的策略,不断进化博弈;

·设计基于规则的辅助机器人参与到训练中,帮助智能体发现弱点,学习新技能,可作为预训练的标签或LeagueTraining中的对手,也可构造蒸馏训练方法的老师,请玩家尽情脑洞。

几个有意思的发现

通过上述简单基线算法训练出来的初级AI在在发育阶段会将球尽量分开,以增大接触面加快发育;在面对潜在的危险时,会避开比自身大的球,并使用分裂技能加快移动速度,防止被吃掉。这些操作都是在人类玩家的游戏过程中经常用到的小技巧。

THE END
1.五分钟学算法五分钟学算法之经典算法题 :排序算法(某东算法工程师比赛) 摘要: 题目描述 已知数据表 A 中每个元素距其最终位置 不远 ,为了节省时间,应该采取的算法是() A、直接选择排序 B、直接插入排序 C、堆排序 D、快速排序 题目分析 我们在之前学习 希尔排序 算法的时候提及到,希尔排序进行到一定阶段(每个元素距离其https://www.cnblogs.com/fivestudy/
2.五分钟学算法个人介绍 公众号【五分钟学算法】个人网站:https://www.cxyxiaowu.com 他关注的专题/文集/连载 他喜欢的文章 他创建的专题 LeetCodeAnimation 五分钟学算法 在PPT动画中学算法 从零开始学Swift 他的文集 日记本 新媒体管家发布 五分钟学算法 Python https://www.jianshu.com/u/c6ad3f2ed2d6
3.algomooc算法慕课网Loadinghttps://www.algomooc.com/
4.五分钟学算法五分钟学算法浏览人数已经达到0,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:五分钟学算法的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要https://www.colabug.com/sites/13534/
5.五分钟学算法青少年人工智能资源与创新平台五分钟学算法授课教师:王晓茹价格免费学习有效期 长期有效 免费加入 简介 学习目录简介 缜密的思维,形象的语言,妙绝的思路,再难的算法,也能信手拈来,娓娓道给你听! 王晓茹,博士,任教于北京邮电大学计算机学院,副教授、硕士生导师。曾在美国MIT(麻省理工学院)和美国PSU(波特兰州立大学)访问学习。现任中国人工智能https://yuanzhuo.bnu.edu.cn/goods/show/33
6.五分钟学算法链接直达手机查看 GitHub 42000 Star,全球排名 79 。小吴讲算法,图解面试算法,来和程序员小吴一起学算法吧,学习如何刷力扣(LeetCode),掌握如何学习数据结构。五分钟学算法官网,一个算法学习的网站,图解力扣算法,看动画,刷力扣,备面试,跳槽涨薪美滋滋。https://www.toolmao.com/sites/1338.html
7.五分钟学算法官方网站理想股票技术论坛五分钟学算法官方网站,五分钟学算法,官方网站,算法教程,在线学习,编程教程 五分钟学算法官方网站,提供丰富的算法教程,在线学习编程知识,轻松掌握各类算法技巧。 公式法详解与应用实例视频教程 [股票软件指标公式技术交流] 刻骨2010 2024-8-18 相关标签:五分钟学算法官方网站 数学公式软件app 计算题公式法的公式 https://www.55188.com/tag-08617563.html
8.分享一个学习算法的网站五分钟学算法官方网站文章浏览阅读1.5k次。五分钟学算法:https://www.cxyxiaowu.com/通过动画来理解算法,我觉得很有意思。然后祝程序员生日快乐,永不加班!_五分钟学算法官方网站https://blog.csdn.net/qq_36767214/article/details/102732104
9.有哪些高质量的自学网站?25、五分钟学算法(http://cxyxiaowu.com/) 一个完全免费的算法学习网站。 有很多的算法题和概念解释,甚至面试的攻略,适合新手的学习和进阶。 漫画式的教学,将复杂的内容深入浅出,效果很棒! 26、菜鸟教程(http://runoob.com/) 正如其名,非常适合新手的编程技术网站。 https://www.douban.com/note/767851363/
10.算法五分钟算法小知识:学习数据结构和算法的框架思维收藏 https://developer.aliyun.com/ask/283137
11.吴师兄学算法五分钟学算法吴师兄学算法 (www.cxyxiaowu.com) 专注于提供数据结构与算法学习的基础知识,涵盖 LeetCode 题解、剑指 Offer 题解、数据结构等内容。它是一个非常有用的资源平台,特别适合那些希望提高编程技能和算法理解能力的学习者。 吴师兄学算法-五分钟学算法_致力于让每个小白都能看懂每一道算法题 https://pidoutv.com/sites/27782.html
12.全网最全程序员学习网站汇总,还不赶快收藏地址: 五分钟学算法 简介:有少量非常不错的数据结构、算法相关的内容。 推荐指数:? 13、犬小哈教程网 地址: 犬小哈教程网 简介:少量哈士奇的技术问答漫画很有意思。 推荐指数:? 15、原创技术大联盟 地址: 原创技术大联盟 简介:优秀的技术博主实在太多了,列不完,也看不完,这里有一个导航页https://www.songma.com/news/txtlist_i66992v.html
13.一年级体育课跳绳教学设计(精选10篇)2、在练习中,能够掌握跳绳活动方法,做到自主学练和合作锻炼。 五、教学过程: (一)、开始部分:(时间10分钟) 1、体育委员集合队伍 2、师生问好 3、游戏:“踩尾巴” 要求学生通过两人一组,一人把绳子绑在腰间,露出两端“尾巴”,想方设法保护好“尾巴”;另一人使劲去抓它;并轮流活动。教师边指导,要求注意动作规https://www.ruiwen.com/doc/1229163816.html
14.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置鲲鹏BoostKit CDN使能套件聚焦CDN开源组件可用性和CDN缓存节点吞吐量低、时延大等问题,提供CDN主流组件的开源使能和性能调优指南,通过使能鲲鹏处理器内置的RSA加速引擎,对RSA2048算法进行硬件卸载,同时提供了NUMA优化等手段,以便充分发挥鲲鹏处理器多核优势,助力客户CDN缓存节点提供更大吞吐量,实现更低时延。 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
15.来自凯文·凯利的40条人生建议你就能跨越“不能”和“学”之间的界线。 关于创造与生活 1、 对一个东西最好的批评 是做出新东西来替代它。 2、 成功最可靠的方法, 是你自己定义成功。 先射箭, 然后在射中的地方, 画一个靶心。 3、 新想法产生五分钟后, 就会从你的头脑中消失。 https://36kr.com/p/2427137908531971
16.五分钟弄懂有点难度的排序:堆排序腾讯云开发者社区Go代码实现 Java代码实现 Python代码实现 JavaScript代码实现 如果你是iOS开发者,可以在GitHub上https://github.com/MisterBooo/Play-With-Sort-OC获取更直观可调试运行的源码。 你可以在公众号 **五分钟学算法** 获取更多排序内容。https://cloud.tencent.com/developer/article/1366827
17.华为认证大数据方向(HCIEHCIE-Big Data认证定位于大数据分析领域中大型分布式并行处理数据仓库平台的架构原理、优化设计、应用开发和大数据挖掘领域的基础理论、常用挖掘算法、应用设计以及开发,旨在推动业界大数据行业的专家型人才培养。 HCIE-Big Data认证包括但不仅限于:(1)华为企业级的大型并行处理分布式数据仓库平台FusionInsight LibrA的架构、功http://m.edufly.cn/huawei/hcie/549.html
18.五分钟技术趣谈隐私计算之安全多方计算专用算法层是利用支撑技术层构建的安全多方计算协议,包括专用算法和通用框架。专用算法是指为了特殊问题所构建的特殊算法,效率较高,包括了四则运算,比较运算,矩阵运算等;通用架构是指可以满足大部分需求的隐私计算逻辑,虽然效率相比专用算法较低,但是适用范围更广。 https://www.51cto.com/article/704306.html
19.五分钟技术趣谈边缘智能:实现实时数据处理和智能决策的新一代技五分钟技术趣谈 | 浅谈人工智能中的算力、算法和数据 09/28 08:56 浅谈基于NeRF的三维重建技术 09/27 12:40 浅谈rsyslog配置和日志转发 09/27 10:10 五分钟技术趣谈 | 大语言模型格式化输出方法浅析 09/25 12:00 查看更多 热门内容 1 [方案]GL3523 USB3.1 HUB电路设计方案(PCB+原理图) 2 [方案https://www.eefocus.com/article/1643293.html