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