MLAgents概述豆耳朵

Unity机器学习Agent(ML-Agents)是一款开源的Unity插件,可让游戏和模拟作为训练智能Agent的环境。通过简单易用的PythonAPI,Agent可以使用强化学习,模仿学习,神经元演化或其他机器学习方法进行训练。我们还提供最新算法的实现(基于TensorFlow),使游戏开发者和业余爱好者能够轻松地为2D,3D和VR/AR游戏训练智能Agent。这些受过训练的Agent可以用于多种目的,包括控制NPC行为(在多种Agent和敌对情况下的各种设置中),游戏构建的自动化测试和评估不同游戏设计的预发布决策。ML-Agents对于游戏开发者和AI研究人员来说都是互利的,因为它提供了一个中央平台,可以在Unity的丰富环境中评估AI的优势,然后得到更广泛的研究和游戏开发者社区的青睐。

本页面的其余部分深入介绍了ML-Agents,其关键组件,不同的训练模式和场景。到最后,对于能用ML-Agent做什么,你应该有一个很好的理解。随后的文档页面提供了如何使用ML-Agents的示例。

为了帮助解释本页面中的材料和术语,我们将始终使用一个假设的运行示例。我们将探讨在游戏中训练非可玩角色(NPC)行为的问题。(NPC是一个永远不受人类玩家控制的游戏角色,其行为由游戏开发者预先定义。)更具体地说,我们假设我们正在构建一个多玩家,以战争为主题的游戏,玩家可以控制战士。在这场比赛中,我们有一名NPC担任医护人员,寻找并救治受伤的球员。最后,让我们假设有两支队伍,每支队伍有五名队员和一名NPC医生。

军医的行为相当复杂。它首先需要避免受伤,这需要检测何时处于危险中并移动到安全位置。其次,它需要了解其团队成员中哪些人受伤并需要帮助。在多人受伤的情况下,它需要评估受伤程度并决定首先帮助谁。最后,一名优秀的医生总能把自己置于一个可以快速帮助其团队成员的位置。考虑所有这些特征意味着医生需要在每种情况下测量环境的若干属性(例如团队成员的位置,敌人的位置,其团队成员中的哪些人受到伤害并达到什么程度),然后决定采取行动(例如躲避敌人的射击,移动以帮助其成员之一)。鉴于环境的大量设置以及军医可采取的大量行动,手动定义和实现这种复杂的行为是具有挑战性的,并且容易出错。

使用ML-Agents,可以使用各种方法来训练这些NPC(称为Agent)的行为。基本想法很简单。我们需要在游戏的每个时刻定义三个实体(称为环境):

ML-Agents提供了将Unity用作模拟引擎的所有必要工具,用于了解Unity环境中不同对象的策略。在接下来的几节中,我们将讨论如何实现ML-Agent以及它提供的功能。

ML-Agents是一个Unity插件,它包含三个高级组件:

ML-Agents的简化框图。

学习环境包含三个帮助组织Unity场景的附加组件:

我们示例游戏的ML-Agents示例框图

我们尚未讨论ML-Agents如何训练行为,以及PythonAPI和ExternalCommunicator分别扮演何种角色。在我们深入了解这些细节之前,让我们总结一下之前的组件。每个角色都绑定到一个Agent上,并且每个Agent都连接到一个Brian上。Brian从Agent处收到观察和并返回行动。Academy确保除了控制整个环境的设置之外,所有Agent和Brian都处于同步状态。那么Brian如何控制Agent做什么呢?

实际上,我们有四种不同类型的Brian,它们可以实现广泛的训练和推理场景:

正如目前所描述的那样,外部通讯器和PythonAPI似乎只能被外部Brian所利用。这不是真的。可以配置内部,玩家和启发式Brian,通过外部通讯器(一种称为广播的功能)将观察,奖励和行动发送到PythonAPI。我们很快会看到,这将使更多的训练模式成为可能。

一个配置有多个Agent和Brains的场景的例子

考虑到ML-Agents的灵活性,可以通过几种方式进行训练和推理。

内置的训练和推理

定制训练和推理

在之前的模式中,使用外部Brian类型进行训练以生成内部Brian类型可以理解和使用的TensorFlow模型。然而,ML-Agents的任何用户都可以利用自己的算法进行训练和推理。在这种情况下,在训练和推理阶段,Brain类型将被设置为External,并且场景中所有Agent的行为都将在Python中进行控制。

我们目前没有教程突出展示此模式,但您可以在此处了解有关PythonAPI的更多信息。

课程学习

数学课程的例子。从简单课程到更复杂课程的学习过程,每一个都是建立在之前之上。

训练与课程学习教程将介绍WallArea示例环境的训练模式。

模仿学习

简单地展示我们希望Agent执行的行为通常更直观,而不是尝试通过试错法来学习。例如,这种模式不是通过设置奖励功能来训练医生,而是通过游戏控制器提供医生应该如何表现的实例。更具体地说,在这种模式下,训练期间的Brian类型被设置为玩家,并且使用控制器执行的所有动作(除了Agent观察)将被记录并发送到PythonAPI。模仿学习算法将使用这些来自人类玩家的观察和行动来学习策略。带模仿学习的训练教程将介绍BananaCollector示例环境的训练模式。

目前为止的讨论主要集中在使用ML-Agents对单个Agent进行训练,有几种训练方案是可能的。我们很期待看到社区创造了什么样的新奇和有趣的环境。对于那些训练智能Agent的人来说,下面是一些可以作为启发的例子:

除了提供灵活的训练方案外,ML-Agents还包含其他功能,可提高训练过程的灵活性和可解释性。

THE END
1.强化学习GAIL生成对抗模仿学习详解《Generativeadversarialimitation本文深入探讨了强化学习中的模仿学习,特别是生成对抗模仿学习(GAIL)的概念。通过对《Generative adversarial imitation learning》的解析,阐述了行为克隆、逆向强化学习(IRL)和GAIL的区别与联系。GAIL通过模拟专家轨迹,绕过IRL的复杂步骤,直接学习策略。文中还涉及熵正则化、示性正则化和GAIL的优化目标,以及如何利用生成对抗https://blog.csdn.net/weixin_37895339/article/details/82863379
2.关于「强化学习」和「模仿学习」的两篇文章模仿学习(Imitation Learning)完全介绍(一) 强化学习(Reinforcement Learning)知识整理 简书上编辑不了公式不能直接发这了。最后编辑于 :2017.12.05 03:50:01 ?著作权归作者所有,转载或内容合作请联系作者 2人点赞 杂七杂八 更多精彩内容,就在简书APP "觉得有用可以请我喝杯咖啡~"赞赏支持还没有人赞赏https://www.jianshu.com/p/48942d31d7b8
3.模仿学习(ImitationLearning)完全介绍腾讯云开发者社区模仿学习(Imitation Learning)完全介绍 在传统的强化学习任务中,通常通过计算累积奖赏来学习最优策略(policy),这种方式简单直接,而且在可以获得较多训练数据的情况下有较好的表现。 然而在多步决策(sequential decision)中,学习器不能频繁地得到奖励,且这种基于累积奖赏及学习方式存在非常巨大的搜索空间。https://cloud.tencent.com/developer/article/1144328
4.基于模仿学习与强化学习结合的自动驾驶训练方法及系统强化学习的优点是不需要专家数据,且能够通过反复学习获得较高的智能,上限较高。强化学习的缺点是在智能体刚开始训练时,探索花费的时间较长,且训练达到收敛整体所需的时间也较长。技术实现要素:6.本发明实施例提供了一种基于模仿学习与强化学习结合的自动驾驶训练方法及系统,以至少解决现有强化学习存在训练慢、收敛难的https://www.xjishu.com/zhuanli/55/202111532390.html
5.AI深度强化学习落地方法七步曲2——状态空间篇回报函数篇鉴于强化学习算法对优秀reward函数设计的依赖,学术界提出了很多方法改善这一状况。比如逆向强化学习,利用expert demonstration(专家示范)学习到reward函数,再用这个reward函数训练RL策略。此外,还有一大堆模仿学习的方法,干脆抛开reward直接拟合专家策略。以上方法的前提是要有专家数据,不具备普适性,这里就不多说了。 https://www.shangyexinzhi.com/article/4228946.html
6.元强化学习的研究与应用仿真结果表明,改进的元模仿学习算法能够快速实现新任务的学习,任务成功率显著提高。将元学习引入DRL的奖励函数塑造中,提出了基于匹配网络(Matching Network,MN)的元强化学习模型。将MN引入强化学习的奖励函数中,计算当前机器人的状态与已有演示之间的相似度并得到奖励值,减轻人工设置奖励函数对设计者的经验要求。奖励函数https://cdmd.cnki.com.cn/Article/CDMD-10290-1021774503.htm
7.逆强化学习和模仿学习51CTO博客已为您找到关于逆强化学习和模仿学习的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及逆强化学习和模仿学习问答内容。更多逆强化学习和模仿学习相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/0b1c1b72bafbacb.html
8.消退泛化强化正强化负强化惩罚模仿学习替代反应的-消退、泛化、强化、正强化、负强化、惩罚、模仿学习、替代反应的概念要想让一个新的条件反射持久存在,就得持续地把无条件刺激和条件刺激结合起来,否则条件反射就会逐渐削弱直至最终消失。这种条件性的刺激-反应之http://www.sdsgwy.com/article/html/88119.html
9.科学网—观察学习与替代强化父母、教师可能不只提供模仿的刺激,而且可能在儿童模仿行为时给予强化。其次,班杜拉发现,当成人的反应得到强化时,儿童更容易模仿成人的反应。换言之,儿童观察一名成人因某行为而受到表扬就更可能以同样的方式反应。班杜拉称之为替代强化,因为在这种情况下,学习者没有得到强化,而只是看到了强化。因此,强化和榜样作用一https://blog.sciencenet.cn/blog-2619783-1306057.html
10.社会学习理论–燕京理工学院为解决这—矛盾,于20世纪40年代经心理学家的努力,在美国开始提出了组合两种理论的优点,又独树一帜的社会学习理论。它是调和行为主义理论和认知理论的产物,主要观点是,人们倾向于模仿被强化的榜样行为。人类的社会行为和人格,主要是通过观察学习、模仿学习和自我调节过程以及榜样作用而形成。https://www.yit.edu.cn/?p=47519
11.动手学强化学习14.2 最大熵强化学习 142 14.3 Soft策略迭代 143 14.4 SAC 143 14.5 SAC代码实践 145 14.6 小结 154 14.7 参考文献 155 第三部分 强化学习前沿 第15 章 模仿学习 158 15.1 简介 158 15.2 行为克隆 159 15.3 生成对抗模仿学习 159 15.4 代码实践 160 https://www.ptpress.cn/bookDetails?id=UB7d4a1fc362a4a
12.清华北大等发布SelfPlay强化学习最新综述澎湃号·湃客TiKick 通过 WeKick 的自博弈数据进行模仿学习,再利用分布式离线强化学习开发了一个多智能体AI。TiZero将课程学习与自博弈结合,无需专家数据,达到了比TiKick更高的TrueSkill评分。 各场景类型比较与总结图 讨论 自博弈方法因其独特的迭代学习过程和适应复杂环境的能力而表现出卓越的性能,然而,仍有不少方向值得进一步https://www.thepaper.cn/newsDetail_forward_28688973
13.多智能体强化学习及其在游戏AI上的应用与展望引爆这波AI热潮的AlphaGo(Nature),采用了人类数据来做模仿学习27,获得了一个很好的初始化(imitation init),并结合了蒙特卡洛树搜索的方法优化效率,最后再使用Self-play进行强化学习的不断迭代,以将其提升到超越人类的水平。AlphaZero则在此基础上完全去除了对人类数据的依赖,完全依靠强化学习训练,并实现了在围棋,国际https://www.gameres.com/890381.html
14.头条文章图6 采用一只老鼠来模拟强化学习中的 Agent,其任务是走出迷宫,每走一步都有一个方法来衡量其走的好与坏,基本学习过程是当其走得好的时候就给其一定的奖励(如一块蛋糕)。通过这种方式, Agent在行动评价的环境中获得知识,改进行动方案以适应环境。 图6 强化学习的基本学习流程 https://card.weibo.com/article/m/show/id/2309404598738399395890
15.GitHubWDWSD/easy强化学习中文教程(蘑菇书),在线阅读地址:https://datawhalechina.github.io/easy-rl/ - WDWSD/easy-rlhttps://github.com/WDWSD/easy-rl
16.什么是深度学习?MicrosoftAzure了解深度学习的定义、深度学习的用途及其工作原理。获取有关神经网络和 BERT NLP 的工作原理及其优点的信息。https://azure.microsoft.com/zh-cn/overview/what-is-deep-learning