在强化学习场景中,您正在训练一个代理来完成一项任务,环境建模与代理交互的外部系统(即世界)。在控制系统应用中,这个外部系统通常被称为这种植物。
如图下图,环境:
接收来自代理的操作。
响应行动回报意见。
产生一个奖励来衡量行动对完成任务的贡献有多大。
创建环境模型是定义:
操作和观察信号代理使用与环境互动。
奖励的信号,即代理用来衡量其成功。欲了解更多信息,请参阅定义奖励信号。
环境初始条件和动态行为。
当您创建环境对象,必须指定动作和观察信号代理使用与环境互动。您可以创建离散和连续动作和观察空间。欲了解更多信息,请参阅rlNumericSpec
和rlFiniteSetSpec
, 分别。
什么信号选择的动作和观察取决于你的应用。例如,对于控制系统的应用,误差信号的积分(有时衍生物)通常是有用的观测。另外,对于参考跟踪应用中,具有随时间变化的基准信号作为观察是有帮助的。
当你定义你的观察信号,确保所有的环境状态(或他们的估计)都包含在观测向量。这是一个很好的做法,因为代理往往是一个静态函数缺乏内部存储器或状态,所以它可能不能够成功地重建内部环境状态。
例如,摆锤的图像观测具有位置信息,但本身没有足够的信息来确定摆速。在这种情况下,您可以测量或估计钟摆速度作为观察向量中的一个额外条目。
强化学习工具箱™软件提供了一些预定义的MATLAB®行动,观察,奖励和动态已经为其定义的环境。您可以使用这些环境:
学习强化学习概念。
熟悉强化学习工具箱软件特性。
测试你自己的强化学习代理商。
欲了解更多信息,请参阅装入义电网世界环境和预定义加载控制系统环境。
您可以为自己的应用程序创建以下类型的自定义MATLAB环境:
电网与世界指定的大小,奖励和障碍
与动态环境中使用自定义函数指定
特定环境创建和修改模板环境对象
一旦你创建一个自定义的环境对象,你可以训练以同样的方式代理作为一个预定义的环境。有关培训代理的详细信息,请参阅火车强化学习代理。
您可以创建任意大小的自定义网格世界与自己的自定义的奖励,状态转换以及障碍物的配置。要创建一个定制的格子世界环境:
创建一个网格世界模型createGridWorld
函数。例如,创建一个名为的网格世界GW
用十行9列。
GW = createGridWorld(10,9);
通过修改模型的属性来配置网格世界。例如,将终端状态指定为位置[7,9]
gw.TerminalStates =“(7、9)”;
网格世界需要包含在马尔可夫决策过程(MDP)的环境。创建这个格子世界的MDP环境,该代理人使用与格子世界模型交互。
ENV = rlMDPEnv(GW);
有关自定义网格世界看到的更多信息创建自定义网格世界环境。
对于简单的环境中,你可以通过创建一个自定义一个环境对象rlFunctionEnv
对象,并指定自己的自定义重置和步功能。
在每个训练阶段的开始,代理调用reset函数来设置环境初始条件。例如,您可以指定已知的初始状态值,或者将环境置于随机初始状态。
阶梯函数定义的环境中,也就是,状态作为当前状态的函数,并且代理操作如何变化的动态。在每次训练时间步长,模型的状态使用步进功能更新。
欲了解更多信息,请参阅使用自定义函数创建MATLAB环境。
对于更复杂的环境,您可以通过创建和修改模板环境来定义自定义环境。创建自定义环境:
创建使用环境模板类rlCreateEnvTemplate
函数。
修改模板的环境中,指定环境属性,需要环境的功能,以及可选的环境功能。
使用以下命令验证自定义环境validateEnvironment
。
欲了解更多信息,请参阅从模板创建自定义MATLAB环境。
rlCreateEnvTemplate
|rlFunctionEnv
|rlPredefinedEnv