主要内容

创建MATLAB强化学习的环境

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

如下图所示,环境:

  1. 从代理接收动作。

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

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

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

  • agent用来与环境交互的动作和观察信号。

  • 一个奖励信号,代理用来衡量它的成功。更多信息,请参见定义奖励信号

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

行动和观察信号

在创建环境对象时,必须指定代理用于与环境交互的动作和观察信号。既可以创建离散的,也可以创建连续的动作和观察空间。更多信息,请参见rlNumericSpecrlFiniteSetSpec,分别。

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

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

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

预定义的MATLAB环境

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

  • 学习强化学习的概念。

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

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

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

自定义MATLAB环境

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

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

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

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

一旦创建了自定义环境对象,就可以以与在预定义环境中相同的方式训练代理。有关训练代理的更多信息,请参见训练强化学习代理

自定义网格的世界

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

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

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

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

    env = rlMDPEnv (gw);

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

指定自定义函数

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

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

  • 阶跃函数定义了环境的动力学,即状态如何作为当前状态和agent动作的函数而变化。在每个训练时间步长中,使用步长函数更新模型的状态。

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

创建和修改模板环境

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

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

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

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

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

另请参阅

||

相关的话题

Baidu
map