评估
描述
例子
评估一个函数近似者对象
这个例子向您展示了如何评估一个函数近似者对象(即,一个演员或批评)。在这个例子中,函数近似者对象是一个离散分类演员和评价它给你一些观测数据,获得的回报行动概率分布和更新网络状态。
负载相同的环境中使用火车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
- - - - - -函数近似者对象
函数近似者对象
函数近似者对象,指定为:
inData
- - - - - -输入数据的函数近似者
单元阵列
输入数据的函数近似者,与尽可能多的元素指定为一个单元阵列的输入通道的数量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
从评价函数近似者对象——输出数据
单元阵列
输出数据的评价函数近似者对象,作为细胞数组返回。的大小和内容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
是一个随机的演员如rlDiscreteCategoricalActor
或rlContinuousGaussianActor
,然后评估
返回操作的概率分布,而getAction
返回一个样本的行动。具体地说,对于一个rlDiscreteCategoricalActor
演员对象,评估
返回每个可能的行动的可能性。对于一个rlContinuousGaussianActor
演员对象,评估
返回高斯分布的平均值和标准偏差。对于这些类型的演员,看到同样的注意getAction
关于约束的执行设定的行动规范。
请注意
如果fcnAppx
是一个rlContinuousDeterministicRewardFunction
对象,然后评估
行为相同,预测
除了它返回的结果在一个单细胞阵列。如果fcnAppx
是一个rlContinuousDeterministicTransitionFunction
对象,然后评估
行为相同,预测
。如果fcnAppx
是一个rlContinuousGaussianTransitionFunction
对象,然后评估
返回均值和标准偏差的观察概率分布,预测
返回一个观察抽样分布。类似地,对于一个rlContinuousGaussianRewardFunction
对象,评估
返回均值和标准偏差的奖赏的概率分布预测
返回一个奖励抽样分布。最后,如果fcnAppx
是一个rlIsDoneFunction
对象,然后评估
返回的终止状态的概率或真或假,分别预测
返回一个预测终止状态与这些概率抽样。
状态
——更新函数近似者对象的状态
单元阵列
下一个状态函数的近似者对象,作为细胞数组返回。如果fcnAppx
不使用递归神经网络(环境函数近似者)的理由,然后呢状态
是一个空单元数组。
你可以设置的状态表示状态
使用设置状态
函数。例如:
评论家=设置状态(评论家,状态);
版本历史
介绍了R2022a
另请参阅
功能
对象
rlValueFunction
|rlQValueFunction
|rlVectorQValueFunction
|rlContinuousDeterministicActor
|rlDiscreteCategoricalActor
|rlContinuousGaussianActor
|rlContinuousDeterministicTransitionFunction
|rlContinuousGaussianTransitionFunction
|rlContinuousDeterministicRewardFunction
|rlContinuousGaussianRewardFunction
|rlIsDoneFunction
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。