主要内容

getMaxQValue

获得最大估计价值在所有可能的行动从核反应能量函数评论家与离散的行动空间,鉴于环境观测

描述

例子

(maxQ,maxActionIndex)= getMaxQValue (qValueFcnObj,奥林匹克广播服务公司)评估discrete-action-space核反应能量函数评论家qValueFcnObj并返回的最大估计价值在所有可能的行动maxQ指数,与相应的行动maxActionIndex,因为环境的观察奥林匹克广播服务公司

(maxQ,maxActionIndex,状态)= getMaxQValue (___)还返回更新后的状态qValueFcnObj当它包含一个递归神经网络。

例子

全部折叠

创建一个观察和操作规范对象(或者使用getObservationInfogetActionInfo提取规范对象从一个环境。对于本例,观察空间定义为一个连续的三维空间,和行动空间作为一个有限集组成的三种可能的值(命名为1,0,1)。

obsInfo = rlNumericSpec (1 [3]);actInfo = rlFiniteSetSpec ([1 0 1]);

创建一个定制的基函数近似评论家中的核反应能量函数,并定义一个初始参数向量。

myBasisFcn = @ (myobs myact) ((4,1);myobs (:);myact;myobs (:)。^ 2;myact。^ 2;sin (myobs (:));罪(myact);cos (myobs (:));因为(myact)];W0 =兰德(20日1);

创建一个评论家。

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

使用getMaxQValue返回的最大价值,在可能的行动中,给定一个随机观察。还返回相对应的索引的作用最大化价值。

[v,我]= getMaxQValue(评论家,{兰德(3,1)})
v = 9.0719
我= 3

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

batchobs =兰德(3,64,1);

获得最大值的观察。

bv = getMaxQValue(评论家,{batchobs});大小(bv)
ans =1×21 64

选择相对应的最大价值第44任观察。

bv (44)
ans = 10.4138

输入参数

全部折叠

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

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

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

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

  • lB批量大小。指定一个单一的观察,集lB= 1。指定一批观察,指定lB> 1。如果qValueFcnObj有多个观察输入通道呢lB所有元素必须相同的吗奥林匹克广播服务公司

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

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

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

输出参数

全部折叠

最大核反应能量估计在所有可能的离散动作,作为1 -返回lB——- - - - - -l年代数组,地点:

  • lB批量大小。

  • l年代指定递归神经网络的序列长度。如果qValueFcnObj不使用递归神经网络,然后呢l年代= 1。

行动指数对应最大Q值,返回1,lB——- - - - - -l年代数组,地点:

  • lB批量大小。

  • l年代指定递归神经网络的序列长度。如果qValueFcnObj不使用递归神经网络,然后呢l年代= 1。

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

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

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

版本历史

介绍了R2020a