主要内容

评估

评估函数近似者对象给定的观察(或observation-action)输入数据

自从R2022a

描述

outData=评估(fcnAppx,inData)评估函数近似者对象(即演员或评论家)fcnAppx考虑到输入值inData。它返回的输出值outData

例子

(outData,状态)=评估(fcnAppx,inData)还返回更新后的状态fcnAppx当它包含一个递归神经网络。

例子

全部折叠

这个例子向您展示了如何评估一个函数近似者对象(即,一个演员或批评)。在这个例子中,函数近似者对象是一个离散分类演员和评价它给你一些观测数据,获得的回报行动概率分布和更新网络状态。

负载相同的环境中使用火车PG代理Cart-Pole平衡系统,获得观察和操作规范。

env = rlPredefinedEnv (“CartPole-Discrete”);obsInfo = getObservationInfo (env)
obsInfo = rlNumericSpec属性:LowerLimit:无穷UpperLimit:正的名字:“CartPole国家”描述:“x, dx,θ,dtheta”维度:[4 1]数据类型:“替身”
actInfo = getActionInfo (env)
actInfo = rlFiniteSetSpec属性:元素:-10[10]的名字:“CartPole行动”描述:[0 x0字符串]维度:[1]数据类型:“替身”

近似策略中的演员,用反复深层神经网络。层的网络定义为一个数组对象。观察空间的尺寸和数量的可能的行动直接从环境规范的对象。

网= [sequenceInputLayer (prod (obsInfo.Dimension)) fullyConnectedLayer (8) reluLayer lstmLayer (8, OutputMode =“序列”)fullyConnectedLayer(元素个数(actInfo.Elements)];

网络转换为一个dlnetwork对象和显示权重的数量。

网= dlnetwork(净);总结(净)
初始化:可学的真正的数字:602输入:1“sequenceinput”序列输入4维度

创建一个随机的演员表示网络。

演员= rlDiscreteCategoricalActor(网,obsInfo, actInfo);

使用评估返回的概率的两种可能的行动。注意,返回的数据的类型,而不是

(概率、州)=评估(演员,{兰德(obsInfo.Dimension)});概率{1}
ans =2 x1单一列向量0.4847 - 0.5153

由于递归神经网络用于演员,第二个输出参数,表示神经网络的状态更新,不是空的。在这种情况下,它包含更新的(细胞和隐藏的)州的八个单元lstm层中使用网络。

州{:}
ans =8 x1单一列向量-0.0833 0.0619 -0.0066 -0.0651 0.0714 -0.0957 0.0614 -0.0326
ans =8 x1单一列向量-0.1367 0.1142 -0.0158 -0.1820 0.1305 -0.1779 0.0947 -0.0833

您可以使用getState设置状态提取并设置的当前状态的演员。

getState(演员)
ans =2×1单元阵列{8 x1单}{8 x1单}
演员=设置状态(演员,{-0.01 *单(兰德(8,1)),0.01 *单(兰德(8,1))});

你可以获得行动为一批观测概率和更新状态。例如,使用一批五个独立的观察。

obsBatch =重塑(1:20 4 1 5 1);(概率、州)=评估(演员,{obsBatch})
概率=1 x1单元阵列{2 x5单}
状态=2×1单元阵列{8 x5单}{8 x5单}

输出参数包含行动概率和为每个观察在批处理更新状态。

注意,演员将观测数据沿着独立批长度尺寸,没有顺序。

概率{1}
ans =2 x5单一矩阵0.5187 0.5869 0.6048 0.6124 0.6155 0.4813 0.4131 0.3952 0.3876 0.3845
概率=评估(演员,{obsBatch (:,: [5 4 3 2 1])});概率{1}
ans =2 x5单一矩阵0.6155 0.6124 0.6048 0.5187 0.5869 0.3845 0.3876 0.3952 0.4813 0.4131

评价演员使用连续的观测,使用序列长度(时间)维度。例如,获得行动概率五个独立的序列,每一个由九个连续观测。

(概率、州)=评估(演员,{兰德([obsInfo。Dimension 5 9])})
概率=1 x1单元阵列{2 x5x9单一}
状态=2×1单元阵列{8 x5单}{8 x5单}

第一个输出参数包含两个概率(第一个维度)的向量的每个元素观察批(二维)和为每个时间元素的序列长度(三维)。

第二个输出参数包含两个向量的每批观察最终状态(也就是说,网络维护一个单独的国家历史每批观察)。

显示第二个行动的概率,第七个顺序观察独立第四批。

概率{1}(2、4、7)
ans =0.5675

更多信息在复发性神经网络的输入和输出格式,请参见算法部分lstmLayer

输入参数

全部折叠

输入数据的函数近似者,与尽可能多的元素指定为一个单元阵列的输入通道的数量fcnAppx。在下一节中,观测通道的数量表示NO

  • 如果fcnAppx是一个rlQValueFunction,一个rlContinuousDeterministicTransitionFunction或者一个rlContinuousGaussianTransitionFunction对象,然后每一个第一次NO的元素inData必须代表当前观测矩阵从相应的观测通道。他们必须紧随其后的是最后一个矩阵代表行动。

  • 如果fcnAppx是一个函数近似者对象代表一个演员或评论家(但不是吗rlQValueFunction对象),inData必须包含NO一个矩阵的元素,每一个代表当前观察从相应的观测通道。

  • 如果fcnAppx是一个rlContinuousDeterministicRewardFunction,一个rlContinuousGaussianRewardFunction,或者一个rlIsDoneFunction对象,然后每一个第一次NO的元素inData必须代表当前观测矩阵从相应的观测通道。他们必须代表行动,紧随其后的是一个矩阵,最后通过NO元素,每一个从相应的矩阵表示下一个观察观察通道。

的每个元素inData必须是一个矩阵的维度C——- - - - - -lB——- - - - - -l年代,地点:

  • C对应的尺寸相关的输入通道。

  • lB批量大小。指定一个单一的观察,集lB= 1。指定输入一批(独立),指定lB> 1。如果inData有多个元素呢lB所有元素必须相同的吗inData

  • l年代指定的序列长度(长度的序列输入沿着时间维度)递归神经网络。如果fcnAppx不使用递归神经网络(环境函数近似者,因为他们不支持递归神经网络),然后呢金宝appl年代= 1。如果inData有多个元素呢l年代所有元素必须相同的吗inData

更多信息在递归神经网络的输入和输出格式,请参见算法部分lstmLayer

例子:{兰德(64年8日3日,1),兰德(4 1 64 1),兰德(2,1,64,(1)}

输出参数

全部折叠

输出数据的评价函数近似者对象,作为细胞数组返回。的大小和内容outData取决于您所使用的类型的对象fcnAppx,下面的列表所示。在这里,NO是观测通道的数量。

  • rlContinuousDeterministicTransitionFunction- - - - - -NO矩阵,每一个代表预测观察从相应的观测通道。

  • rlContinuousGaussianTransitionFunction- - - - - -NO矩阵的平均值代表预测观察相应的观测通道,紧随其后NO矩阵表示的标准偏差预测观察相应的观测通道。

  • rlContinuousGaussianActor——两个矩阵的平均值和标准偏差表示行动,分别。

  • rlDiscreteCategoricalActor——一个与每个操作的概率矩阵。

  • rlContinuousDeterministicActor一个矩阵与行动。

  • rlVectorQValueFunction——一个矩阵的值每个可能的行动。

  • rlQValueFunction——一个矩阵与行动的价值。

  • rlValueFunction——当前观测矩阵的值。

  • rlContinuousDeterministicRewardFunction——一个矩阵预测奖励作为电流的函数观察,行动,和明年后观察行动。

  • rlContinuousGaussianRewardFunction——两个矩阵代表平均值和标准偏差,分别预测的奖励作为电流的函数观察,行动,和明年后观察行动。

  • rlIsDoneFunction——一个向量的概率预测终止状态。终止概率范围从0(没有终止预测)1(终止预测)和(在最一般情况下)依赖的值观察,行动,和明年后观察行动。

的每个元素outData是一个矩阵的维度D——- - - - - -lB——- - - - - -l年代,地点:

  • D是向量的对应输出通道的尺寸fcnAppx。根据合拢器函数的类型,这个通道可以携带一个预测观察(或其平均值或标准偏差),一个动作(或其平均值或标准偏差),一个观察的价值(或价值)(或observation-action夫妇),奖励预测或预测终止状态。

  • lB批处理大小(一批独立输入的长度)。

  • l年代是序列长度(长度的输入序列在时间维度)递归神经网络。如果fcnAppx不使用递归神经网络(环境函数近似者,因为他们不支持递归神经网络),然后呢金宝appl年代= 1。

请注意

如果fcnAppx是一个批评家,那么评估行为相同,getValue除了它返回的结果在一个单细胞阵列。如果fcnAppx是一个rlContinuousDeterministicActor演员,然后评估行为相同,getAction。如果fcnAppx是一个随机的演员如rlDiscreteCategoricalActorrlContinuousGaussianActor,然后评估返回操作的概率分布,而getAction返回一个样本的行动。具体地说,对于一个rlDiscreteCategoricalActor演员对象,评估返回每个可能的行动的可能性。对于一个rlContinuousGaussianActor演员对象,评估返回高斯分布的平均值和标准偏差。对于这些类型的演员,看到同样的注意getAction关于约束的执行设定的行动规范。

请注意

如果fcnAppx是一个rlContinuousDeterministicRewardFunction对象,然后评估行为相同,预测除了它返回的结果在一个单细胞阵列。如果fcnAppx是一个rlContinuousDeterministicTransitionFunction对象,然后评估行为相同,预测。如果fcnAppx是一个rlContinuousGaussianTransitionFunction对象,然后评估返回均值和标准偏差的观察概率分布,预测返回一个观察抽样分布。类似地,对于一个rlContinuousGaussianRewardFunction对象,评估返回均值和标准偏差的奖赏的概率分布预测返回一个奖励抽样分布。最后,如果fcnAppx是一个rlIsDoneFunction对象,然后评估返回的终止状态的概率或真或假,分别预测返回一个预测终止状态与这些概率抽样。

下一个状态函数的近似者对象,作为细胞数组返回。如果fcnAppx不使用递归神经网络(环境函数近似者)的理由,然后呢状态是一个空单元数组。

你可以设置的状态表示状态使用设置状态函数。例如:

评论家=设置状态(评论家,状态);

版本历史

介绍了R2022a