创建MATLAB环境中的强化学习

在强化学习场景中,您正在训练一个代理来完成一项任务,环境建模与代理交互的外部系统(即世界)。在控制系统应用中,这个外部系统通常被称为这种植物

如图下图,环境:

  1. 接收来自代理的操作。

  2. 响应行动回报意见。

  3. 产生一个奖励来衡量行动对完成任务的贡献有多大。

创建环境模型是定义:

  • 操作和观察信号代理使用与环境互动。

  • 奖励的信号,即代理用来衡量其成功。欲了解更多信息,请参阅定义奖励信号

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

动作与观测信号

当您创建环境对象,必须指定动作和观察信号代理使用与环境互动。您可以创建离散和连续动作和观察空间。欲了解更多信息,请参阅rlNumericSpecrlFiniteSetSpec, 分别。

什么信号选择的动作和观察取决于你的应用。例如,对于控制系统的应用,误差信号的积分(有时衍生物)通常是有用的观测。另外,对于参考跟踪应用中,具有随时间变化的基准信号作为观察是有帮助的。

当你定义你的观察信号,确保所有的环境状态(或他们的估计)都包含在观测向量。这是一个很好的做法,因为代理往往是一个静态函数缺乏内部存储器或状态,所以它可能不能够成功地重建内部环境状态。

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

预定义的MATLAB环境

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

  • 学习强化学习概念。

  • 熟悉强化学习工具箱软件特性。

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

欲了解更多信息,请参阅装入义电网世界环境预定义加载控制系统环境

自定义MATLAB环境

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

  • 电网与世界指定的大小,奖励和障碍

  • 与动态环境中使用自定义函数指定

  • 特定环境创建和修改模板环境对象

一旦你创建一个自定义的环境对象,你可以训练以同样的方式代理作为一个预定义的环境。有关培训代理的详细信息,请参阅火车强化学习代理

自定义网格的世界

您可以创建任意大小的自定义网格世界与自己的自定义的奖励,状态转换以及障碍物的配置。要创建一个定制的格子世界环境:

  1. 创建一个网格世界模型createGridWorld函数。例如,创建一个名为的网格世界GW用十行9列。

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

    gw.TerminalStates =“(7、9)”;
  3. 网格世界需要包含在马尔可夫决策过程(MDP)的环境。创建这个格子世界的MDP环境,该代理人使用与格子世界模型交互。

    ENV = rlMDPEnv(GW);

有关自定义网格世界看到的更多信息创建自定义网格世界环境

指定自定义功能

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

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

  • 阶梯函数定义的环境中,也就是,状态作为当前状态的函数,并且代理操作如何变化的动态。在每次训练时间步长,模型的状态使用步进功能更新。

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

创建和修改模板环境

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

  1. 创建使用环境模板类rlCreateEnvTemplate函数。

  2. 修改模板的环境中,指定环境属性,需要环境的功能,以及可选的环境功能。

  3. 使用以下命令验证自定义环境validateEnvironment

欲了解更多信息,请参阅从模板创建自定义MATLAB环境

也可以看看

||

相关的话题