主要内容

创造马铃薯强化学习环境

在强化学习场景中,当您训练一个代理完成一项任务时,环境对代理与之交互的外部系统(即世界)进行建模。在控制系统应用程序中,此外部系统通常称为植物

如下图所示,环境:

  1. 从代理接收操作。

  2. 返回响应行动的观察。

  3. 生成一个奖励,衡量行动对完成任务的贡献程度。

创建环境模型涉及定义:

  • 操作和观察信号表示代理用于与环境交互。

  • 代理用于衡量其成功的奖励信号。有关更多信息,请参阅定义奖励信号

  • 环境初始条件及其动态行为。

行动和观察信号

创建环境对象时,必须指定代理用于与环境交互的操作和观察信号。您可以创建离散和连续动作和观察空间。有关更多信息,请参阅rlnumericspec.rlfinitesetspec., 分别。

您选择的信号和观察的信号取决于您的应用程序。例如,对于控制系统应用,错误信号的积分(有时导数)通常是有用的观察。此外,对于参考跟踪应用,具有时变的参考信号作为观察是有帮助的。

当您定义观测信号时,确保观察向量中包含所有环境状态(或其估计)。这是一个很好的做法,因为代理通常是缺乏内部存储器或状态的静态功能,因此它可能无法在内部成功重建环境状态。

例如,摆动摆的图像观测具有位置信息,但其本身没有足够的信息来确定摆的速度。在这种情况下,可以测量或估计摆锤速度,作为观测向量中的附加条目。

预定义的马铃薯环境

钢筋学习工具箱™软件提供了一些预定义的MATLAB®在已经定义了操作,观察,奖励和动态的环境。您可以使用这些环境:

  • 学习强化学习概念。

  • 熟悉强化学习工具箱软件功能。

  • 测试自己的强化学习代理。

有关更多信息,请参阅加载预定义网格世界环境负载预定义控制系统环境

风俗马铃薯环境

您可以为自己的应用程序创建以下类型的自定义MATLAB环境。

  • 具有指定大小,奖励和障碍的网格世界

  • 使用自定义功能指定动态的环境

  • 通过创建和修改模板环境对象指定的环境

创建自定义环境对象后,您可以以与预定义环境中相同的方式培训代理。有关培训代理商的更多信息,请参阅火车加固学习代理

自定义网格世界

您可以使用自己的自定义奖励,状态转换和障碍配置创建任何大小的自定义网格世界。要创建自定义网格世界环境:

  1. 使用创建栅格世界模型creategridworld.作用例如,创建一个名为GW.有十行和九列。

    gw = creategridworld(10,9);
  2. 通过修改模型的属性来配置网格世界。例如,将终端状态指定为位置[7,9]

    gw.terminalstates ="[7,9]";
  3. 网格世界需要包含在马尔可夫决策过程(MDP)环境中。为此网格世界创建MDP环境,代理用于与网格世界模型进行交互。

    ent = rlmdpenv(gw);

有关自定义网格世界的详细信息,请参见创建自定义网格世界环境

指定自定义函数

对于简单的环境,您可以通过创建自定义环境对象rlFunctionEnv对象并指定您自己的自定义重置功能。

  • 在每次训练开始时,代理调用重置函数来设置环境初始条件。例如,可以指定已知的初始状态值或将环境置于随机初始状态。

  • 步骤函数定义环境的动态,即状态如何变为当前状态和代理操作。在每个训练时间步骤中,使用步函数更新模型的状态。

有关更多信息,请参阅使用自定义函数创建MATLAB环境

创建和修改模板环境

对于更复杂的环境,可以通过创建和修改模板环境来定义自定义环境。要创建自定义环境,请执行以下操作:

  1. 使用“创建环境模板类”rlCreateEnvTemplate功能。

  2. 修改模板环境,指定环境属性,必需的环境函数和可选环境函数。

  3. 使用验证自定义环境验证环境

有关更多信息,请参阅从模板创建自定义MATLAB环境

也可以看看

||

相关话题