主要内容

getValue

获得估计价值从评论家给定环境的观察和行动

自从R2020a

描述

价值函数的评论家

例子

价值= getValue (valueFcnAppx,奥林匹克广播服务公司)评估价值函数的评论家valueFcnAppx并返回对应于观测值奥林匹克广播服务公司。在这种情况下,valueFcnAppx是一个rlValueFunction接近者对象。

核反应能量函数的批评者

例子

价值= getValue (vqValueFcnAppx,奥林匹克广播服务公司)评估discrete-action-space核反应能量函数评论家vqValueFcnAppx并返回向量价值中,每个元素代表了估计价值给予相对应的状态观察奥林匹克广播服务公司和相对应的动作元素的数量价值。在这种情况下,vqValueFcnAppx是一个rlVectorQValueFunction接近者对象。

例子

价值= getValue (qValueFcnAppx,奥林匹克广播服务公司,行为)评估评论家的核反应能量函数qValueFcnAppx并返回标量价值,考虑到观测值奥林匹克广播服务公司和行动行为。在这种情况下,qValueFcnAppx是一个rlQValueFunction接近者对象。

返回递归神经网络状态

(价值,状态]= getValue (___)评论家也返回更新状态的对象时,它包含一个递归神经网络。

例子

全部折叠

创建一个观察对象(或者使用规范getObservationInfo从环境中提取规范对象)。对于本例,观察空间定义为一个连续的四维空间,这样一个观察是一个列向量包含四个双打。

obsInfo = rlNumericSpec (1 [4]);

在评论家,近似函数的值创建一个神经网络。定义一个从网络路径输入(观察),其输出(价值),层对象数组。

网= [featureInputLayer (4)fullyConnectedLayer (1)];

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

网= dlnetwork(净);总结(净);
初始化:可学的真正的数字:5输入:1“输入”4特性

创建一个评论家使用网络和观测规范对象。当你使用这种语法与环境相关的网络输入层自动观测根据尺寸规格obsInfo

评论家= rlValueFunction(净,obsInfo);

获得一个随机观测值函数估计。使用观察数组相同的维度观察规范。

val = getValue(评论家,{兰德(4,1)})
val =0.7904

你也可以获得一批观测值函数估计。例如获得一批20观测值函数。

batchVal = getValue(评论家,{兰德(4 1 20)});大小(batchVal)
ans =1×21 20

valBatch包含一个值函数估计为每一批的观察。

创建的观察和操作规范对象(或者使用getObservationInfogetActionInfo从环境中提取规范对象)。对于本例,观察空间定义为一个连续的四维空间,这样一个包含四个双打的观察是一个列向量,和行动空间作为一个有限集组成的三种可能的值(命名7,5,3在这种情况下)。

obsInfo = rlNumericSpec (1 [4]);actInfo = rlFiniteSetSpec ([7 5 3]);

创建一个向量核反应能量函数的估计值作为一个评论家。一个向量核反应能量函数只需要观察作为输入并返回一个作为输出向量和尽可能多的元素的数量可能的行动。每个输出元素代表的价值预期的折扣累积长期奖励采取对应的行动从国家目前的观察,和之后的政策。

模型参数化向量核反应能量函数的评论家。网络必须具有一个输入层,接受一个研制出向量,定义的obsInfo。输出必须是一个单一的输出层有尽可能多的元素数量离散的动作(三个在这种情况下,所定义的actInfo)。

定义一个路径从网络输入层的输出作为数组对象。

网= [featureInputLayer (4) fullyConnectedLayer (3)];

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

网= dlnetwork(净);总结(净)
初始化:可学的真正的数量:15个输入:1“输入”4特性

创建一个评论家使用网络,以及观察和操作规范对象的名称。网络的输入层会自动与观察相关渠道,根据尺寸规格obsInfo

评论家= rlVectorQValueFunction(网,obsInfo, actInfo);

使用getValue返回一个随机的值观察,使用当前的网络权值。

v = getValue(评论家,{兰德(obsInfo.Dimension)})
v =3 x1单一列向量0.7232 0.8177 -0.2212

v包含三个价值函数的估计,每个可能的一个离散的行动。

你也可以获得一批观测值函数估计。例如,获得一批10观测值函数估计。

batchV = getValue(评论家,{兰德([obsInfo。维度10])});大小(batchV)
ans =1×23 10

batchV包含三个值函数估计为每个批处理观察。

创建的观察和操作规范对象(或者使用getObservationInfogetObservationInfo从环境中提取规范对象)。对于本例,观察空间定义为有两个连续的通道,第一个载有8×3矩阵,和第二个连续四维向量。行为规范是一个持续的列向量包含2双打。

obsInfo = [rlNumericSpec (8 [3]), rlNumericSpec (1 [4])];2 actInfo = rlNumericSpec ([1]);

创建一个定制的基函数和初始权重矩阵。

myBasisFcn = @ (obsA obsB, act) (1(30日);obsA (:);obsB (:);行动(:);obsA (:)。^ 2;obsB (:)。^ 2;(:)。^ 2;sin (obsA (:));sin (obsB (:));罪(法案(:)); cos(obsA(:)); cos(obsB(:)); cos(act(:))]; W0 = rand(150,1);

评论家的输出是标量W * myBasisFcn(观察、行为),代表了核反应能量函数近似。

创建一个评论家。

评论家= rlQValueFunction ({myBasisFcn, W0},obsInfo actInfo);

使用getValue返回一个随机的值observation-action一对,使用当前的参数矩阵。

v = getValue(评论家,{兰德(8,3),(1:4)},{兰德(2,1)})
v = 68.8628

创建一个随机观察组批大小为每个通道64。第三个维度是批量大小,而第四序列长度所使用的递归神经网络对任何批评(在本例中没有使用)。

batchobs_ch1 =兰德(8,64,1);batchobs_ch2 =兰德(4,64,1);

创建一个随机操作组批大小64。

batchact =兰德(2,1,64,(1);

获得政府行动的价值函数估计批观察和行动。

bv = getValue(评论家,{batchobs_ch1, batchobs_ch2}, {batchact});大小(bv)
ans =1×21 64
bv (23)
ans = 46.6310

输入参数

全部折叠

价值函数的评论家,指定为一个rlValueFunction接近者对象。

向量核反应能量函数评论家,指定为一个rlVectorQValueFunction接近者对象。

评论家,核反应能量函数指定为一个rlQValueFunction对象。

观察,指定为一个单元阵列和尽可能多的元素有观察输入通道。的每个元素奥林匹克广播服务公司包含一个数组的观察一个观察输入通道。

每个元素的尺寸奥林匹克广播服务公司O——- - - - - -lB——- - - - - -l年代,地点:

  • O对应的尺寸相关的观察输入通道。

  • lB批量大小。指定一个单一的观察,集lB= 1。指定一批观察,指定lB> 1。如果批评对象作为第一个输入参数有多个观察输入通道,然后lB所有元素必须相同的吗奥林匹克广播服务公司

  • l年代指定递归神经网络的序列长度。如果批评对象作为第一个输入参数不使用递归神经网络,l年代= 1。如果批评对象有多个观察输入通道,然后l年代所有元素必须相同的吗奥林匹克广播服务公司

lBl年代必须是一样的吗行为奥林匹克广播服务公司

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

行动,指定为一个单元素单元阵列,其中包含一个数组的值。

这个数组的维度一个——- - - - - -lB——- - - - - -l年代,地点:

  • 一个对应的尺寸相关的行动规范。

  • lB批量大小。指定一个单一的观察,集lB= 1。指定一批观察,指定lB> 1。

  • l年代指定递归神经网络的序列长度。如果批评对象作为第一个输入参数不使用递归神经网络,l年代= 1。

lBl年代必须是一样的吗行为奥林匹克广播服务公司

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

输出参数

全部折叠

估计价值函数,与维度作为数组返回N——- - - - - -lB——- - - - - -l年代,地点:

  • N是批评网络的输出的数量。

    • 对于一个批评者状态值(valueFcnAppx),N= 1。

    • 对于一个政府行动价值函数的批评者(qValueFcnAppx),N= 1。

    • 对于一个多输出函数批评政府行动值(vqValueFcnAppx),N是离散的数量的行为。

  • lB批量大小。

  • l年代递归神经网络的序列长度。

更新状态的评论家,作为细胞数组返回。如果评论家不使用递归神经网络,状态是一个空单元数组。

你可以设置状态的评论家状态使用设置状态函数。例如:

valueFcnAppx =设置状态(valueFcnAppx状态);

提示

更一般的函数评估表现为批判对象,类似getValue除了评估返回结果在一个单细胞阵列。

帕拉

版本历史

介绍了R2020a