主要内容

预测

下观察,预测下一个奖励,或事件终止给定的输入数据观察和行动

自从R2022a

    描述

    例子

    predNextObs=预测(tsnFcnAppx,奥林匹克广播服务公司,行为)评估环境转换函数近似者对象tsnFcnAppx并返回预测下一个观察nextObs,鉴于当前的观测奥林匹克广播服务公司和行动行为

    例子

    predReward=预测(rwdFcnAppx,奥林匹克广播服务公司,行为,nextObs)评估环境奖励函数近似者对象rwdFcnAppx并返回预测奖励predReward,鉴于当前的观测奥林匹克广播服务公司,操作行为,下观察nextObs

    例子

    predIsDone=预测(idnFcnAppx,奥林匹克广播服务公司,行为)评估环境完成函数近似者对象idnFcnAppx并返回预测完成状态predIsDone,鉴于当前的观测奥林匹克广播服务公司,操作行为,下观察nextObs

    例子

    全部折叠

    创建的观察和操作规范对象(或者使用getObservationInfogetActionInfo从环境中提取规范对象)。在这个例子中,两个观察频道进行四次和二维空间向量,分别。行动是一个连续的三维向量。

    obsInfo = [rlNumericSpec ((4 - 1), UpperLimit = 10 * 1 (4,1));rlNumericSpec ([1 - 2], UpperLimit = 20 * 1 (1、2)));actInfo = rlNumericSpec (1 [3]);

    创建一个深层神经网络作为近似模型的转换函数估计值。连续高斯转换函数近似者,网络必须有两个输出层为每个观察(一个平均值的标准偏差的其他值)。

    定义每个网络路径层对象数组。得到的尺寸从环境中观察和行动空间规范对象,并指定一个输入层的名称,所以您稍后可以显式地将它们与适当的信道环境。

    %从第一层观测通道输入路径inPath1 = [featureInputLayer (刺激(obsInfo (1) .Dimension),Name =“netObsIn1”)fullyConnectedLayer (Name =“infc1”));%输入路径层从第二观察通道inPath2 = [featureInputLayer (刺激(obsInfo (2) .Dimension),Name =“netObsIn2”)fullyConnectedLayer (Name =“infc2”));%输入路径层从行动通道inPath3 = [featureInputLayer (刺激(actInfo (1) .Dimension),Name =“netActIn”)fullyConnectedLayer (Name =“infc3”));%联合路径层,连接3输入第一个维度jointPath = = [concatenationLayer(1、3、名称“concat”)tanhLayer (Name =“tanhJnt”);fullyConnectedLayer (Name =“jntfc”));%路径层首先预测突发的平均值%利用scalingLayer规模从(1)到(-10年,10)%注意尺度向量必须是列向量meanPath1 = [tanhLayer (Name =“tanhMean1”);fullyConnectedLayer (prod (obsInfo (1) .Dimension));scalingLayer (Name =“scale1”,规模= obsInfo (1) .UpperLimit)];%路径层预测标准差第一观察%使用softplus层使其非负的sdevPath1 = [tanhLayer (Name =“tanhStdv1”);fullyConnectedLayer (prod (obsInfo (1) .Dimension));softplusLayer (Name =“splus1”));%路径层的第二个预测平均值的观察%利用scalingLayer规模从(1)到(-20年,20)%注意尺度向量必须是列向量meanPath2 = [tanhLayer (Name =“tanhMean2”);fullyConnectedLayer (prod (obsInfo (2) .Dimension));scalingLayer (Name =“scale2”,规模= obsInfo (2) .UpperLimit (:)));%路径层标准差第二预测奥林匹克广播服务公司%使用softplus层使其非负的sdevPath2 = [tanhLayer (Name =“tanhStdv2”);fullyConnectedLayer (prod (obsInfo (2) .Dimension));softplusLayer (Name =“splus2”));%添加层网络对象网= layerGraph;网= addLayers(净,inPath1);网= addLayers(净,inPath2);网= addLayers(净,inPath3);网= addLayers(净,jointPath);网= addLayers(净,meanPath1);网= addLayers(净,sdevPath1);网= addLayers(净,meanPath2);网= addLayers(净,sdevPath2);%连接层网= connectLayers(网络,“infc1”,“concat /三机一体”);网= connectLayers(网络,“infc2”,“concat / in2”);网= connectLayers(网络,“infc3”,“concat / in3”);网= connectLayers(网络,“jntfc”,“tanhMean1 /”);网= connectLayers(网络,“jntfc”,“tanhStdv1 /”);网= connectLayers(网络,“jntfc”,“tanhMean2 /”);网= connectLayers(网络,“jntfc”,“tanhStdv2 /”);%的阴谋网络情节(净)

    图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

    %转换为dlnetwork网= dlnetwork(净);%显示权重的数量总结(净)
    初始化:可学的真正的数字:352输入:1“netObsIn1”4功能2“netObsIn2”功能3“netActIn”特性

    创建一个连续高斯转换函数近似者对象,指定输入和输出层的名字。

    tsnFcnAppx = rlContinuousGaussianTransitionFunction (净,obsInfo actInfo,ObservationInputNames = [“netObsIn1”,“netObsIn2”),ActionInputNames =“netActIn”,NextObservationMeanOutputNames = [“scale1”,“scale2”),NextObservationStandardDeviationOutputNames = [“splus1”,“splus2”]);

    预测下一个观察随机观察和行动。

    predObs =预测(tsnFcnAppx,{兰特(obsInfo (1) .Dimension),兰德(obsInfo (2) .Dimension)},{兰特(actInfo (1) .Dimension)})
    predObs =1×2单元阵列{4 x1单}{[-24.9934 - 0.9501]}

    产生的细胞数组的每个元素代表了预测相应的观测通道。

    显示的平均值和标准差的高斯概率分布预测观察,使用评估

    predDst =评估(tsnFcnAppx,{兰特(obsInfo (1) .Dimension),兰德(obsInfo (2) .Dimension),兰特(actInfo (1) .Dimension)})
    predDst =1×4单元阵列{4 x1单}{2 x1单}{4 x1单}{2 x1单}

    结果是一个单元阵列的第一和第二元素代表平均预测观测值在第一和第二通道,分别。第三和第四个元素代表的标准差预测观察在第一和第二通道,分别。

    创建一个环境接口和提取观测和操作规范。或者,您可以创建规范使用rlNumericSpecrlFiniteSetSpec

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

    近似奖励功能,创建一个深层神经网络。对于这个示例,网络输入层有两个,一个为当前的行动,一个用于下一个观察。单一输出层包含一个标量,它表示预测的价值回报。

    定义每个网络路径层对象数组。得到的尺寸从环境中观察和行动空间规范,和指定的名称输入层,所以您稍后可以显式地将它们与适当的信道环境。

    actionPath = featureInputLayer (actInfo.Dimension (1),Name =“行动”);nextStatePath = featureInputLayer (obsInfo.Dimension (1),Name =“nextState”);commonPath = = [concatenationLayer(1、2、名称“concat”)fullyConnectedLayer (64) reluLayer fullyConnectedLayer (64) reluLayer fullyConnectedLayer (64) reluLayer fullyConnectedLayer (1)];网= layerGraph (nextStatePath);网= addLayers(净,actionPath);网= addLayers(净,commonPath);网= connectLayers(网络,“nextState”,“concat /三机一体”);网= connectLayers(网络,“行动”,“concat / in2”);情节(净)

    图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

    创建一个dlnetwork对象和显示权重的数量。

    网= dlnetwork(净);总结(净);
    初始化:真很多可学的:8.7 k输入:1“nextState”4 2 '行动' 1功能特性

    创建一个确定性转换函数对象。

    rwdFcnAppx = rlContinuousDeterministicRewardFunction (净,obsInfo actInfo,ActionInputNames =“行动”,NextObservationInputNames =“nextState”);

    使用此奖励函数对象,您可以预测下一个奖励值基于当前行动和接下来观察。例如,预测接下来奖励随机操作和观察。以来,在这个例子中,只有行动和接下来观察影响奖励,使用一个空单元数组当前观察。

    行动=兰德(actInfo.Dimension);nxtobs =兰德(obsInfo.Dimension);奖励=预测(rwdFcnAppx, {}, {}, {nxtobs})
    奖励=0.1034

    预测奖励,你也可以使用评估

    reward_ev =评估(rwdFcnAppx{法案,nxtobs})
    reward_ev =1 x1单元阵列{[0.1034]}

    创建一个环境接口和提取观测和操作规范。或者,您可以创建规范使用rlNumericSpecrlFiniteSetSpec

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

    近似是函数,使用深层神经网络。网络有一个输入通道观测。预测的单一输出通道是终止信号。

    创建层神经网络作为一个向量的对象。

    commonPath = [featureInputLayer (obsInfo.Dimension (1),Name =“nextState”)fullyConnectedLayer (64) reluLayer fullyConnectedLayer (64) reluLayer fullyConnectedLayer (2) softmaxLayer (Name =“结束”));网= layerGraph (commonPath);情节(净)

    图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

    秘密的网络dlnetwork对象和显示权重的数量。

    网= dlnetwork(净);总结(净);
    初始化:真很多可学的:4.6 k输入:1“nextState”4特性

    创建一个完成函数近似者对象。

    isDoneFcnAppx = rlIsDoneFunction (净,obsInfo actInfo,NextObservationInputNames =“nextState”);

    使用此完成函数近似者对象,您可以预测基于未来观察终止信号。例如,预测接下来的终止信号随机观察。因为对于这个示例终止信号只取决于下一个观察,使用空单元数组当前操作和观察输入。

    nxtobs =兰德(obsInfo.Dimension);predIsDone =预测(isDoneFcnAppx, {}, {}, {nxtobs})
    predIsDone = 0

    您可以获得使用终止概率评估

    predIsDoneProb =评估(isDoneFcnAppx {nxtobs})
    predIsDoneProb =1 x1单元阵列{2 x1单}
    predIsDoneProb {1}
    ans =2 x1单一列向量0.5405 - 0.4595

    第一个数字是获得的概率0(没有终止预测),第二个是获得的概率1(终止预测)。

    输入参数

    全部折叠

    环境转换函数近似者对象,指定为以下之一:

    环境奖励函数近似者对象,指定为以下之一:

    环境完成函数近似者对象,指定为一个rlIsDoneFunction对象。

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

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

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

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

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

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

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

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

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

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

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

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

    下观察,观察后行动行为从观察奥林匹克广播服务公司指定为一个单元阵列的尺寸一样奥林匹克广播服务公司

    输出参数

    全部折叠

    预测下一个观察,观察预测的转换函数估计值tsnFcnAppx鉴于目前的观察奥林匹克广播服务公司和行动行为,让哑的单元阵列尺寸一样奥林匹克广播服务公司

    预测奖励,奖励预测的奖励函数估计值rwdFcnAppx鉴于目前的观察奥林匹克广播服务公司,操作行为和下面的观察nextObs,哑音

    预计完成事件状态,这一事件终止状态预测的完成函数近似者rwdFcnAppx鉴于目前的观察奥林匹克广播服务公司,操作行为和下面的观察nextObs,返回

    请注意

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

    版本历史

    介绍了R2022a