Unity ML-Agents之Academy设计

本文翻译自https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Design-Academy.md

创建Academy

Academy总体协调Unity场景中的所有Agent和Brain对象。每个包含agent的场景都必须包含一个Academy。要使用Academy,你必须创建你自己的子类。但是,所有需要重写的方法都是可选的。

使用Academy方法来:

  • 场景加载后初始化环境
  • 重置环境
  • 在每个模拟步骤中更改环境中的内容

有关在模拟期间调用这些方法的时间的说明,请参阅Unity中的Reinforcement
Learning(https://www.jianshu.com/p/3f21686d6790)。

初始化Academy

初始化在Academy对象的生命周期中执行一次。对于通常在标准Unity Start()或Awake()方法中执行的任何逻辑,使用InitializeAcademy()方法。

注意:因为基础Academy类实现了Awake()函数,所以不能实现自己的。由于Unity MonoBehaviour类的定义方式,实现您自己的Awake()函数会隐藏基类版本,而Unity会调用您的。同样,不要在您的Academy子类中实现FixedUpdate()函数。

重置环境

在每次episode开始时,实现AcademyReset()函数以改变环境。例如,你可能需要将agent重置到其起始位置或将目标移动到随机位置。在达到Academy Max Steps计数时重置环境。

当你重置环境时,请考虑应该改变的因素,以便将训练推广到不同的条件。例如,如果你正在训练一个解决迷宫问题的阿根廷,那么您可能需要为每个训练集更改迷宫本身。否则,代理人可能会学会解决一个特定的迷宫,而不是一般的迷宫。

控制环境

在任何agent更新之前,模拟的每一步都会调用AcademyStep()函数。使用此功能在每个步骤或episode之间来更新环境中的对象。例如,如果要以随机间隔向环境中添加元素,可以将创建它们的逻辑放在AcademyStep()函数中。

Academy 属性

Academy Inspector
  • 最大步数 Max Steps: 每次episode的总步数。 0对应于没有最大步数的episode。一旦步计数器达到最大值,环境将重置。
  • 配置Configuration: 与渲染质量和引擎速度相对应的引擎级设置。
    • 宽度Width: 环境窗口的宽度(以像素为单位)。
    • 高度Height: 环境窗口的宽度(以像素为单位)。
    • 质量水平Quality Level: 渲染环境质量。(越高越好)
    • 时间比例Time Scale: 运行环境的速度。(更高更快)
    • 目标帧速率Target Frame Rate: FPS引擎尝试维护。
  • 重置参数 Reset Parameters - 重置时环境中可更改的自定义参数列表。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Agents设计 本文翻译自https://github.com/Unity-Technologies/ml-ag...
    浪尖儿阅读 11,486评论 0 6
  • Unity中的强化学习 Reinforcement Learning in Unity 强化学习是一种人工智能技术...
    浪尖儿阅读 5,854评论 1 3
  • 0. 预备知识 虽然名字叫做机器学习ML,但是主要内容还是增强学习RL(或者叫强化学习)。其实并没有错,ML中主要...
    浪尖儿阅读 23,122评论 4 24
  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 14,553评论 3 88
  • 那夜晚的蝉鸣 一声一声 是在经历了漫长的岁月 终于羽化 飞上枝头 从前的暗无天日 一天又一天的等待 此刻 已经不重...
    风從哪里来阅读 2,394评论 0 6

友情链接更多精彩内容