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 属性

Unity ML-Agents之Academy设计_第1张图片
Academy Inspector
  • 最大步数 Max Steps: 每次episode的总步数。 0对应于没有最大步数的episode。一旦步计数器达到最大值,环境将重置。
  • 配置Configuration: 与渲染质量和引擎速度相对应的引擎级设置。
    • 宽度Width: 环境窗口的宽度(以像素为单位)。
    • 高度Height: 环境窗口的宽度(以像素为单位)。
    • 质量水平Quality Level: 渲染环境质量。(越高越好)
    • 时间比例Time Scale: 运行环境的速度。(更高更快)
    • 目标帧速率Target Frame Rate: FPS引擎尝试维护。
  • 重置参数 Reset Parameters - 重置时环境中可更改的自定义参数列表。

你可能感兴趣的:(Unity ML-Agents之Academy设计)