主要内容

rlfunctionenv.

使用函数指定自定义强化学习环境动态

描述

rlfunctionenv.定义一个自定义强化学习环境。您提供MATLAB®定义环境的步骤和重置行为的函数。当您想要超出可用的预定义环境时,此对象很有用rlPredefinedEnv

创建

描述

例子

env= rlFunctionEnv (obsInfo,actInfo,stepfcn,resetfcn)使用提供的观察和行动规范创建强化学习环境,obsInfoactInfo, 分别。你还设置了StepFcnresetfcn.性质使用MATLAB函数。

输入参数

展开全部

观察规范,指定为rlFiniteSetSpec或者rlnumericspec.对象或包含此类对象混合的数组。这些对象定义了诸如维度、数据类型和观察信号的名称等属性。

动作规范,指定为rlFiniteSetSpec或者rlnumericspec.目的。这些对象定义了诸如动作信号的尺寸,数据类型和名称之类的属性。

属性

展开全部

环境的步骤行为,指定为函数名、函数句柄或匿名函数。

StepFcn是您提供的函数,描述了环境如何从给定的操作前进到下一个状态。使用函数名称或功能句柄时,此功能必须具有两个输入和四个输出,如以下签名所示。

[观察,奖励,ISDONE,LoggedSignals] = MyStepFunction(动作,loggedSignals)

若要使用所需集合以外的其他输入参数,请指定StepFcn使用匿名功能句柄。

步骤功能计算对环境中给定操作的观察和奖励的值。所需的输入和输出参数如下。

  • 行动- 当前操作,必须匹配指定的尺寸和数据类型actInfo

  • 观察-返回的观察结果,必须匹配中指定的维度和数据类型obsInfo

  • 奖励- 对当前步骤的奖励,作为标量值返回。

  • 结束—是否结束模拟章节的逻辑值。您定义的步骤函数可以包含基于观察、奖励或任何其他值来决定是否结束模拟的逻辑。

  • LoggedSignals.—您希望从一个步骤传递到下一个步骤的任何数据,指定为结构。

有关定义步骤函数的多种方法的示例,请参见使用自定义功能创建MATLAB环境

设置环境的重置行为,指定为函数,功能句柄或匿名功能句柄。

您提供的重置功能必须没有输入和两个输出,如以下签名所示。

[InitialObservation, LoggedSignals] = myResetFunction

使用重置功能使用输入参数,请指定resetfcn.使用匿名功能句柄。

复位功能将环境设置为初始状态,并计算观察信号的初始值。例如,您可以创建一个复位函数,该函数随机化某些状态值,从而从不同的初始条件开始。

sim卡函数调用重置函数在每个模拟开始时重置环境,以及火车函数在每个培训集的开始时调用它。

InitialObservation的尺寸和数据类型必须匹配obsInfo

要将重置条件中的信息传递到第一步,请指定重置函数中的信息作为输出结构LoggedSignals.

有关定义reset函数的多种方法的示例,请参见使用自定义功能创建MATLAB环境

传递到下一步的信息,指定为结构。当您创建环境时,无论您将其定义为LoggedSignals.的输出resetfcn.初始化此属性。当发生步骤时,软件将使用数据填充此属性以传递到下一步,如定义StepFcn

对象的功能

getActionInfo. 从强化学习环境或agent获取动作数据规范
getobservationInfo. 从强化学习环境或代理获得观察数据规范
火车 在指定的环境中训练强化学习代理
sim卡 在指定环境中模拟培训的钢筋学习代理
validateEnvironment 验证自定义强化学习环境

例子

全部收缩

通过在MATLAB®中提供定制的动态函数来创建一个强化学习环境。使用rlfunctionenv.,您可以从观察说明书,行动规范和和的MATLAB强化学习环境创建MATLAB强化学习环境一步重启您定义的函数。

对于本例,创建一个环境来表示一个在杆子上平衡手推车的系统。从环境中观察到的是小车的位置,小车的速度,摆角,摆角的导数。(有关此环境的其他详细信息,请参见使用自定义功能创建MATLAB环境。)为这些信号创建观察规范。

oinfo = rlNumericSpec([4 1]);oinfo。Name ='cartpole状态';oinfo.description =.'x dx d ';

环境有一个离散的操作空间,代理可以将两个可能的力值之一应用到购物车,- 10n或10n。为这些操作创建操作规范。

ActionInfo = rlFiniteSetSpec([-10 10]);ActionInfo。Name ='cartpole行动';

接下来,指定自定义一步重启功能。对于本例,使用提供的函数myResetFunction.mmyStepFunction.m。有关这些函数及其构造方式的详细信息,请参见使用自定义功能创建MATLAB环境

使用定义的观察规范,操作规范和函数名来构造自定义环境。

env = rlFunctionEnv (oinfo ActionInfo,'mystepfunction',“myResetFunction”);

您可以创建代理商env在这个环境中训练他们就像在其他强化学习环境中一样。

作为使用函数名称的替代方案,您可以将函数指定为功能句柄。有关更多详细信息和示例,请参阅使用自定义功能创建MATLAB环境

介绍了R2019a