主要内容

创造MATLAB强化学习环境

在强化学习方案中,您可以在其中训练代理完成任务,环境对代理商互动的外部系统(即世界)建模。在控制系统应用中,此外部系统通常称为植物

如下图所示,环境:

  1. 收到代理商的诉讼。

  2. 返回对动作的观察结果。

  3. 产生奖励,以衡量该动作有助于完成任务的能力。

创建环境模型涉及定义:

  • 代理商用来与环境相互作用的动作和观察信号。

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

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

动作和观察信号

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

您选择的作为操作和观察的信号取决于您的应用程序。例如,对于控制系统应用,误差信号的积分(有时甚至是导数)通常是有用的观察结果。同样,对于参考跟踪应用程序,具有时间变化的参考信号作为观察很有帮助。

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

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

预定义MATLAB环境

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

  • 学习强化学习概念。

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

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

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

风俗MATLAB环境

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

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

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

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

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

自定义网格世界

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

  1. 创建网格世界模型CreateGridWorld功能。例如,创建一个名为的网格世界GW有十行和九列。

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

    gw.terminalstates =“ [7,9]”;
  3. 马尔可夫决策过程(MDP)环境需要将网格世界包括在内。为这个网格世界创建MDP环境,代理商用它与网格世界模型进行交互。

    env = rlmdpenv(gw);

有关自定义网格世界的更多信息,请参阅创建自定义网格世界环境

指定自定义功能

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

  • 在每个训练剧集的开头,代理调用重置功能以设置环境初始条件。例如,您可以指定已知的初始状态值或将环境置于随机的初始状态。

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

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

创建和修改模板环境

对于更复杂的环境,您可以通过创建和修改模板环境来定义自定义环境。创建自定义环境:

  1. 使用rlcreateenvtemplate功能。

  2. 修改模板环境,指定环境属性,所需的环境功能和可选环境功能。

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

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

也可以看看

||

相关话题