主要内容

rlFunctionEnv

指定自定义使用功能强化学习环境动力学

自从R2019a

描述

使用rlFunctionEnv定义一个定制的强化学习的环境。您提供MATLAB®函数定义的步骤和重置行为环境。这个对象是有用的,当你想定制环境超出了可用的预定义的环境rlPredefinedEnv

创建

描述

例子

env= rlFunctionEnv (observationInfo,actionInfo,stepfcn,resetfcn)创建一个使用提供的强化学习环境观察和操作规范,observationInfoactionInfo,分别。你也设置StepFcnResetFcn使用MATLAB函数属性。

输入参数

全部展开

观测规范,指定为一个rlFiniteSetSpecrlNumericSpec对象或数组包含一个混合的对象。数组中每个元素定义了一个环境观测通道的特性,比如尺寸,数据类型和名称。

您可以提取observationInfo从现有的环境或代理使用getObservationInfo。你也可以手动构建规范。

动作规范,要么作为一个指定rlFiniteSetSpec(离散行动空间)rlNumericSpec(连续动作空间)对象。这个对象定义环境行动通道的属性,如尺寸,数据类型和名称。

请注意

只有一个动作频道是被允许的。

您可以提取actionInfo从现有的环境或代理使用getActionInfo。你也可以手动构建规范。

属性

全部展开

一步对环境行为,指定为一个函数名,函数处理,或匿名函数。

StepFcn是一个函数,你提供,后者描述环境进步到下一个状态从一个给定的行动。当使用一个函数名或函数句柄时,这个函数必须有两个输入和四个输出,如下签名所示。

(观察、奖励、结束,LoggedSignals) = myStepFunction(行动,LoggedSignals)

使用额外的输入参数超出所需的设置,指定StepFcn使用一个匿名函数处理。

的阶跃函数计算值给定操作环境中观察和奖励。所需的输入和输出参数如下。

  • 行动动作电流,必须匹配指定的尺寸和数据类型actionInfo

  • 观察-返回观察中指定的尺寸和数据类型必须匹配observationInfo

  • 奖励——奖励当前步骤,作为一个标量值返回。

  • 结束-逻辑值指示是否结束模拟集。的阶跃函数定义可以包含逻辑来决定是否结束模拟基于观察,奖励,或任何其他值。

  • LoggedSignals——任何你想要的数据,通过从一个步骤下,指定为一个结构。

例如显示多种方式来定义一个阶跃函数,看看创建MATLAB环境中使用自定义函数

重置行为对环境,指定为一个函数,函数处理,或匿名函数处理。

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

[InitialObservation, LoggedSignals] = myResetFunction

使用复位函数输入参数,指定ResetFcn使用一个匿名函数处理。

重置功能设置环境一个初始状态和计算的初始值观测信号。例如,您可以创建一个复位函数,随机排列某些状态值,这样每个训练集开始从不同的初始条件。

sim卡函数调用重置功能重置环境每个仿真开始时,和火车函数调用它的每个训练集。

InitialObservation输出的尺寸和数据类型必须匹配observationInfo

从复位状态传递信息到第一步,指定信息重置功能作为输出结构LoggedSignals

例如显示多种方法来定义一个复位函数,看看创建MATLAB环境中使用自定义函数

信息传递给下一个步骤,指定为一个结构。当您创建环境,不管你定义的LoggedSignals的输出ResetFcn初始化这个属性。一步发生时,软件用数据填充这个属性传递给下一个步骤,定义StepFcn

对象的功能

getActionInfo 从强化学习环境,获得行动数据规范代理或经验缓冲区
getObservationInfo 从强化学习环境,获得观测数据规范代理或经验缓冲区
火车 强化学习培训代理在指定的环境中
sim卡 模拟训练强化学习代理在指定的环境中
validateEnvironment 验证自定义强化学习环境

例子

全部折叠

创建一个强化学习环境在MATLAB®通过提供定制的动态功能。使用rlFunctionEnv,您可以创建一个MATLAB强化学习环境的观测规范,动作规范,和一步重置您定义的函数。

对于这个示例,创建一个环境,代表了系统平衡杆上的车。来自环境的观察车的位置,车速度,摆角和摆角的导数。(这个环境的更多相关信息,请参阅创建MATLAB环境中使用自定义函数)。创建一个观测规范的信号。

oinfo = rlNumericSpec (1 [4]);oinfo。Name =“CartPole国家”;oinfo。描述=“x, dx,θ,dtheta”;

环境有一个离散的行动空间,两种可能的力值的代理可以应用一个购物车,-10 N或10 N .创建行动规范的行为。

ActionInfo = rlFiniteSetSpec (-10 [10]);ActionInfo。Name =“CartPole行动”;

接下来,指定自定义一步重置功能。对于这个示例,使用提供的功能myResetFunction.mmyStepFunction.m。这些功能的详细信息和它们是如何构建的,看到的创建MATLAB环境中使用自定义函数

使用观测规范定义构建自定义环境,动作规范,和函数名。

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

您可以创建代理env和环境中训练他们像其他强化学习环境。

使用函数名作为一种替代方法,您可以指定函数作为函数处理。更多的细节和一个例子,看到创建MATLAB环境中使用自定义函数

版本历史

介绍了R2019a