主要内容

创建MATLAB强化学习的环境

在强化学习的情况下,你训练一个代理来完成一项任务,环境模型外部系统(即世界)的代理进行交互。在控制系统应用程序中,这通常被称为外部系统这种植物

如下图所示,环境:

  1. 从代理接收行为。

  2. 返回观察的行为。

  3. 生成一个奖励测量的行动有助于实现这一任务。

创建一个环境模型包括定义:

  • 代理使用行动和观测信号与环境进行交互。

  • 代理使用奖励信号来测量它的成功。有关更多信息,请参见定义奖励信号

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

行动和观测信号

创建环境对象时,您必须指定代理使用的行动和观测信号与环境进行交互。您可以创建两个离散和连续操作和观察空间。有关更多信息,请参见rlNumericSpecrlFiniteSetSpec,分别。

你选择什么样的信号操作和观察取决于您的应用程序。例如,对于控制系统应用中,误差信号的积分(有时是衍生品)通常是有用的观察。reference-tracking应用程序,有一个时变参考信号作为一个观察是有帮助的。

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

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

预定义的MATLAB环境

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

  • 学习强化学习的概念。

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

  • 测试自己的强化学习。

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

自定义MATLAB环境

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

  • 网格的世界与指定大小、奖励和障碍

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

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

一旦你创建一个自定义环境对象,您可以训练一个代理以同样的方式在一个预定义的环境。培训代理商的更多信息,请参阅强化学习培训代理

自定义网格的世界

您可以创建自定义网格的世界与自己的自定义任何规模的奖励,配置状态转换和障碍。创建一个定制的网格世界环境:

  1. 创建一个网格世界模型使用createGridWorld函数。例如,创建一个网格世界命名吉瓦十行9列。

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

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

    env = rlMDPEnv (gw);

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

指定自定义函数

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

  • 每一个训练集,初代理调用重置函数初始条件设置环境。例如,您可以指定初始状态已知值或地方环境到一个随机的初始状态。

  • 阶跃函数定义的动态环境中,也就是说,国家如何改变当前状态的函数和代理人的行动。在每个培训时间步,更新模型的状态使用阶跃函数。

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

创建和修改模板的环境

对于更复杂的环境中,您可以定义一个自定义环境创建和修改模板的环境。要创建一个自定义环境:

  1. 创造一个环境使用的模板类rlCreateEnvTemplate函数。

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

  3. 验证您的自定义环境使用validateEnvironment

有关更多信息,请参见从模板创建定制的MATLAB环境

另请参阅

||

相关的话题