主要内容

rlNumericSpec

为强化学习环境创建持续行动或观察数据规范

描述

一个rlNumericSpec对象指定强化学习环境的连续动作或观察数据规范。

创建

描述

例子

规范= rlNumericSpec (为连续操作或观察创建数据规范,并设置财产。

规范= rlNumericSpec (名称,值属性使用名称-值对参数。

属性

全部展开

数据空间的下限,指定为与数据空间大小相同的标量或矩阵。当LowerLimit指定为标量,rlNumericSpec将其应用于数据空间中的所有项。

数据空间的上限,指定为与数据空间大小相同的标量或矩阵。当UpperLimit指定为标量,rlNumericSpec将其应用于数据空间中的所有项。

的名字rlNumericSpec对象,指定为字符串。

的描述rlNumericSpec对象,指定为字符串。

此属性是只读的。

数据空间的维度,指定为数值向量。

此属性是只读的。

关于数据类型的信息,指定为字符串,例如“替身”“单身”

对象的功能

rlSimulinkEnv 使用实现的动态模型创建强化学习环境动态仿真模块
rlFunctionEnv 使用函数指定自定义强化学习环境动态
rlValueFunction 强化学习代理的值函数逼近器对象
rlQValueFunction 强化学习代理的q值函数逼近器对象
rlVectorQValueFunction 强化学习代理的矢量q值函数逼近器
rlContinuousDeterministicActor 强化学习agent的具有连续动作空间的确定性actor
rlDiscreteCategoricalActor 具有离散动作空间的随机分类体强化学习代理
rlContinuousGaussianActor 用于强化学习agent的具有连续动作空间的随机高斯actor

例子

全部折叠

对于本例,考虑rlSimplePendulumModel仿真软件模型。该模型是一个简单的无摩擦摆,最初悬挂在一个向下的位置。

打开模型。

mdl =“rlSimplePendulumModel”;open_system (mdl)

创建rlNumericSpec而且rlFiniteSetSpec对象,分别用于观察和操作信息。

观察结果是一个包含三个信号的向量:角度的正弦、余弦和时间导数。

obsInfo = rlNumericSpec([3 1])
obsInfo = rlNumericSpec with properties: LowerLimit: -Inf UpperLimit: Inf Name: [0×0 string] Description: [0×0 string] Dimension: [3 1] DataType: "double"

动作是表示扭矩的标量,可以是三个可能值之一,-2海里,0纳米和2Nm。

actInfo = rllimitesetspec ([-2 0 2])
名称:[0×0 string]描述:[0×0 string]维度:[1 1]数据类型:"double"

对象的属性值可以使用点表示法rlNumericSpec而且rlFiniteSetSpec对象。

obsInfo。Name =“观察”;actInfo。Name =“扭矩”

分配代理块路径信息,并使用前面步骤中提取的信息为Simulink模型创建强化学习环境。

agentBlk = [mdl' / RL代理'];env = rlSimulinkEnv (mdl agentBlk、obsInfo actInfo)
env = SimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: [] UseFastRestart: on

您还可以使用点表示法包含一个reset函数。对于本例,随机初始化theta0在模型工作区中。

env。= @(in) setVariable(in)“theta0”randn,“工作区”mdl)
模型:rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl) UseFastRestart: on

版本历史

介绍了R2019a

Baidu
map