主要内容

rlContinuousGaussianTransitionFunction

基于神经网络环境的随机高斯跃迁函数逼近器对象

    描述

    在创建基于神经网络的环境时使用rlNeuralNetworkEnvironment,你可以指定随机过渡函数近似使用rlContinuousDeterministicTransitionFunction对象。

    过渡函数近似器对象使用深度神经网络作为内部近似模型,根据当前的观测和动作预测下一个观测。

    要指定确定性过渡函数近似器,请使用rlContinuousGaussianTransitionFunction对象。

    创建

    描述

    例子

    tsnFcnAppx= rlContinuousGaussianTransitionFunction (observationInfoactionInfo名称=值创建随机过渡函数近似器对象tsnFcnAppx利用深度神经网络并设置ObservationInfo而且ActionInfo属性。

    在创建随机转捩函数近似器时,必须使用ObservationInputNamesActionInputNamesNextObservationMeanOutputNames,NextObservationStandardDeviationOutputNames名称-值对参数。

    您还可以指定PredictDiff而且UseDevice使用可选名称-值对参数的属性。例如,要使用GPU进行预测,请指定UseDevice = " gpu "

    输入参数

    全部展开

    深度神经网络,具体为dlnetwork对象。

    此网络的输入层名称必须与使用指定的输入名称相匹配ObservationInputNames而且ActionInputNames.输入层的尺寸必须与相应的观察和动作规范的尺寸相匹配ObservationInfo而且ActionInfo,分别。

    此网络的输出层名称必须与使用指定的输出名称相匹配NextObservationOutputNames.输入层的尺寸必须与相应的观测规范尺寸相匹配ObservationInfo

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    例子:ObservationInputNames = "速度"

    观察输入层名称,指定为字符串或字符串数组。

    的长度必须匹配ObservationInfo名称的顺序必须与规格的顺序一致ObservationInfo

    动作输入层名称,指定为字符串或字符串数组。

    动作输入名称的数量必须与的长度匹配ActionInfo名称的顺序必须与规格的顺序一致ActionInfo

    接下来观察平均输出层名,指定为字符串或字符串数组。

    下一个观察的平均输出名称的数量必须匹配的长度ObservationInfo名称的顺序必须与规格的顺序一致ObservationInfo

    下一步观察标准偏差输出层名称,指定为字符串或字符串数组。

    下一个观察标准差输出名称的数量必须与的长度匹配ObservationInfo名称的顺序必须与规格的顺序一致ObservationInfo

    属性

    全部展开

    此属性是只读的。

    观测规范,指定为强化学习规范对象或定义属性(如尺寸、数据类型和观测信号名称)的规范对象数组。

    可以从现有环境或代理中提取观察规范getObservationInfo.还可以使用手动构造规范rlFiniteSetSpecrlNumericSpec

    此属性是只读的。

    动作规范,指定为强化学习规范对象或定义诸如尺寸、数据类型和动作信号名称等属性的规范对象数组。

    可以从现有环境或代理中提取操作规范getActionInfo.您还可以使用手动构造规范rlFiniteSetSpecrlNumericSpec

    用于在训练和模拟过程中执行诸如梯度计算、参数更新和预测等操作的计算设备,具体说明如下“cpu”“图形”

    “图形”选项需要并行计算工具箱™软件和CUDA®使英伟达®GPU。有关支持的gpu的更多信息,请参见GPU计算的需求(并行计算工具箱)

    您可以使用gpuDevice(并行计算工具箱)查询或选择一个本地GPU设备,以与MATLAB一起使用®

    请注意

    在GPU上训练或模拟网络涉及到设备特定的数值舍入误差。与使用CPU执行相同的操作相比,这些错误会产生不同的结果。

    选项,用于预测当前观测值与下一个观测值之间的差异,指定为以下逻辑值之一。

    • —如果勾选此选项输出下一个观察值。

    • 真正的—如果勾选此选项输出下一个观测值与当前观测值之间的差值。在这种情况下,预测的输出中添加当前的观察值,从而计算下一个观察值

    对象的功能

    rlNeuralNetworkEnvironment 环境模型与深度神经网络过渡模型

    例子

    全部折叠

    创建一个环境接口并提取观察和操作规范。或者,您可以使用rlNumericSpec而且rlFiniteSetSpec

    env = rlPredefinedEnv (“CartPole-Continuous”);obsInfo = getObservationInfo (env);actInfo = getActionInfo (env);

    定义深度神经网络的层。该网络有两个输入通道,一个用于当前的观察,另一个用于当前的行动。网络的输出是下一次观测的预测高斯分布。两个输出通道对应这些分布的均值和标准差。

    statePath = featureInputLayer (obsInfo.Dimension (1) Name =“观察”);actionPath = featureInputLayer (actInfo.Dimension (1) Name =“行动”);commonPath = = [concatenationLayer(1、2、名称“concat”) fullyConnectedLayer(32名=“俱乐部”) reluLayer (Name =“CriticRelu1”) fullyConnectedLayer(32名=“取得”));meanPath = [reluLayer (Name =“nextObsMeanRelu”) fullyConnectedLayer (obsInfo.Dimension(1),名称=“nextObsMean”));stdPath = [reluLayer (Name =“nextObsStdRelu”) fullyConnectedLayer (obsInfo.Dimension(1),名称=“nextObsStdReluFull”) softplusLayer (Name =“nextObsStd”));tsnNet = layerGraph (statePath);tsnNet = addLayers (tsnNet actionPath);tsnNet = addLayers (tsnNet commonPath);tsnNet = addLayers (tsnNet meanPath);tsnNet = addLayers (tsnNet stdPath);tsnNet = connectLayers (tsnNet,“观察”“concat /三机一体”);tsnNet = connectLayers (tsnNet,“行动”“concat / in2”);tsnNet = connectLayers (tsnNet,“取得”“nextObsMeanRelu”);tsnNet = connectLayers (tsnNet,“取得”“nextObsStdRelu”);情节(tsnNet)

    图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

    创建一个dlnetwork对象。

    tsnNet = dlnetwork (tsnNet);

    创建一个随机转换函数对象。

    tsnFcnAppx = rlContinuousGaussianTransitionFunction (tsnNet obsInfo actInfo,...ObservationInputNames =“观察”...ActionInputNames =“行动”...NextObservationMeanOutputNames =“nextObsMean”...NextObservationStandardDeviationOutputNames =“nextObsStd”);

    使用这个转换函数对象,您可以基于当前的观察和操作预测下一个观察。例如,预测随机观察和行动的下一个观察结果。接下来的观测值从高斯分布中采样,由过渡网络输出平均值和标准差。

    观察=兰德(obsInfo.Dimension);action =兰德(actInfo.Dimension);nextObs =预测(tsnFcnAppx{观察},{行动})
    nextObs =1 x1单元阵列{4 x1单}
    nextObs {1}
    ans =4x1单列向量1.2414 0.7307 -0.5588 -0.9567

    你也可以用得到预测的下一个观测的高斯分布的平均值和标准差评估

    nextObsDist =评估(tsnFcnAppx{观察、行动})
    nextObsDist =1×2单元阵列{4x1单体}{4x1单体}

    版本历史

    介绍了R2022a

    Baidu
    map