主要内容

getAction

根据环境观察,从行为者或行动者的表现中获得行动

描述

代理

例子

agentAction= getAction (代理奥林匹克广播服务公司返回从给定环境观察的强化学习代理的策略中得到的动作。

演员表示

例子

actorAction= getAction (actorRep奥林匹克广播服务公司返回从策略表示派生的操作actorRep鉴于环境观测奥林匹克广播服务公司

actorActionnextState) = getAction (actorRep奥林匹克广播服务公司当参与者使用递归神经网络作为函数近似器时,返回参与者表示的更新状态。

例子

全部折叠

创建一个环境界面,并获取其观察和操作规范。对于这种环境,负载用于离散车杆系统的预定义环境。

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

创建一个评论家表示。

statePath = [featureInputLayer(4,“归一化”“没有”“名字”“状态”) fullyConnectedLayer(24日“名字”“CriticStateFC1”) reluLayer (“名字”“CriticRelu1”) fullyConnectedLayer(24日“名字”“CriticStateFC2”));actionPath = [featureInputLayer(1,“归一化”“没有”“名字”“行动”) fullyConnectedLayer(24日“名字”“CriticActionFC1”));commonPath =[附加路径]“名字”“添加”) reluLayer (“名字”“CriticCommonRelu”) fullyConnectedLayer (1,“名字”“输出”));criticNetwork = layerGraph (statePath);= addLayers(criticNetwork, actionPath);criticNetwork = addLayers(criticNetwork, commonPath);criticNetwork = connectLayers (criticNetwork,“CriticStateFC2”“添加/三机一体”);criticNetwork = connectLayers (criticNetwork,“CriticActionFC1”“添加/ in2”);

为评论家创造一个代表。

criticOpts = rlRepresentationOptions (“LearnRate”, 0.01,“GradientThreshold”1);评论家= rlQValueRepresentation (criticNetwork obsInfo actInfo,...“观察”,{“状态”},“行动”,{“行动”}, criticOpts);

指定代理选项,并使用环境和评论家创建DQN代理。

agentOpts = rlDQNAgentOptions (...“UseDoubleDQN”假的,...“TargetUpdateMethod”“周期”...“TargetUpdateFrequency”,4,...“ExperienceBufferLength”, 100000,...“DiscountFactor”, 0.99,...“MiniBatchSize”, 256);代理= rlDQNAgent(评论家,agentOpts);

从代理获取单个观察的离散动作。对于本例,使用随机观测阵列。

行动= getAction(代理,{兰德(4,1)})
行动= 10

您还可以获得对一批观察的操作。例如,获取一批10个观察的操作。

actBatch = getAction(代理,{兰德(4 1 10)});大小(actBatch)
ans =1×21 10

actBatch为批处理中的每个观察包含一个操作,每个操作都是可能的离散操作之一。

创建观察和行动信息。您还可以从环境中获取这些规范。

obsinfo = rlNumericSpec([4 1]);actinfo = rlNumericSpec([2 1]);numObs = obsinfo.Dimension (1);numAct = actinfo.Dimension (1);

为参与者创建一个循环深度神经网络。

网= [featureInputLayer (4“归一化”“没有”“名字”“状态”) fullyConnectedLayer (10“名字”“fc1”) reluLayer (“名字”“relu1”) fullyConnectedLayer (20“名字”“CriticStateFC2”) fullyConnectedLayer (numAct“名字”“行动”) tanhLayer (“名字”“tanh1”));

为网络创建一个确定的参与者表示。

actorOptions = rlRepresentationOptions (“LearnRate”1 e - 3,“GradientThreshold”1);演员= rlDeterministicActorRepresentation(净、obsinfo actinfo,...“观察”,{“状态”},“行动”,{“tanh1”});

从该actor获得一个操作,用于随机批20个观察结果。

行动= getAction(演员,{兰德(4 1 10)})
行动=1 x1单元阵列{2 x1x10单一}

行为包含批处理中所有10个观察的两个计算操作。

输入参数

全部折叠

强化学习agent,指定为以下对象之一:

环境观测,指定为单元阵列,其元素与观测输入通道相同。的每个元素奥林匹克广播服务公司包含单个观测输入通道的观测值数组。

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

  • MO对应于相关观测输入通道的尺寸。

  • lB为批大小。要指定单个观察,集合lB= 1。要指定一批观察数据,请指定lB> 1。如果valueRepqValueRep有多个观测输入通道,那么lB所有的元素都必须相同吗奥林匹克广播服务公司

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

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

输出参数

全部折叠

来自代理的操作值,作为带有维度的数组返回M一个——- - - - - -lB——- - - - - -l年代,地点:

  • M一个对应于相关操作规范的维度。

  • lB为批大小。

  • l年代为递归神经网络的序列长度。如果演员和评论家在代理不使用递归神经网络,那么l年代= 1。

请注意

当代理人如rlACAgentrlPGAgent,或rlPPOAgent使用一个rlStochasticActorRepresentation具有连续操作空间的参与者,由操作规范设置的约束不会由代理强制执行。在这些情况下,您必须在环境中强制操作空间约束。

参与者表示中的操作值,返回为包含维度数组的单元素单元格数组M一个——- - - - - -lB——- - - - - -l年代,地点:

  • M一个对应于操作规范的尺寸。

  • lB为批大小。

  • l年代为递归神经网络的序列长度。如果actorRep不使用递归神经网络,那么l年代= 1。

请注意

rlStochasticActorRepresentation具有连续操作空间的参与者不会强制操作规范设置的约束。在这些情况下,您必须在环境中强制操作空间约束。

参与者表示更新的状态,作为单元格数组返回。如果actorRep不使用递归神经网络,那么状态为空单元格数组。

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

valueRep =设置状态(actorRep状态);
介绍了R2020a