文件帮助中心文件
从代理商或演员代表获取行动给定环境观察
Agentaction = Getaction(代理,OB)
Actoraction = Getaction(accorp,Obs)
[Actoraction,NextState] = Getaction(accorp,Obs)
示例
植物= GetAction(代理人那obs.)返回源自加强学习代理的策略的动作给出了环境观察。
植物= GetAction(代理人那obs.)
植物
代理人
obs.
act= GetAction(责任那obs.)返回策略表示派生的操作责任给定环境观察obs.。
act= GetAction(责任那obs.)
act
责任
[act那德斯特泰特] = GetAction(责任那obs.)当Actor使用经常性神经网络作为函数近似器时返回演员表示的更新状态。
[act那德斯特泰特] = GetAction(责任那obs.)
德斯特泰特
崩溃
创建环境界面并获取其观察和操作规范。对于此环境,请加载用于离散推车系统的预定义环境。
Env = Rlpredefinedenv(“cartpole - 离散”);ObsInfo = GetobservationInfo(ENV);Actinfo = GetActionInfo(ENV);
创造批评者代表。
equentpath = [featureduputlayer(4,'正常化'那'无'那'名字'那“州”)全康校长(24,'名字'那'批评福尔福克')剥离('名字'那'rictrelu1')全康校长(24,'名字'那'批评福尔2')];ActionPath = [FeatureInputLayer(1,'正常化'那'无'那'名字'那'行动')全康校长(24,'名字'那'批评FC1')];commonpath = [附加层(2,'名字'那'添加')剥离('名字'那'批判杂志')全康连接层(1,'名字'那'输出')];批判性=图表图(州路);批评网络= addlayers(批判性,ActionPath);批评网络= addlayers(批判性,commonpath);批评网络= ConnectLayers(批评者,'批评福尔2'那'添加/ in1');批评网络= ConnectLayers(批评者,'批评FC1'那'添加/ in2');
为评论家创造一个代表。
批评= rlrepresentationOptions('学习',0.01,'gradientthreshold',1);评论家= rlqvalueerepresentation(批评,undernfo,Actinfo,......'观察',{“州”},'行动',{'行动'},批评);
指定代理选项,并使用环境和批评创建DQN代理。
Agentopts = RLDQNAGENTOPTIONS(......'unmorblebledqn',假,......'targetupdatemethod'那“定期”那......'targetupdatefrquency',4,......'经验BufferLength',100000,......'贴花因子',0.99,......'minibatchsize',256);代理= rldqnagent(批评者,代理商);
从代理获得单一观察的离散动作。对于此示例,请使用随机观察阵列。
ACT = GetAction(代理,{rand(4,1)})
ACT = 10.
您还可以获得批次观察的行动。例如,获得10个观察批次的动作。
Actbatch = GetAction(代理,{rand(4,1,10)});大小(Actbatch)
ans =.1×21 10.
actbatch.包含批量中的每个观察的一个动作,每个动作是可能的离散动作之一。
actbatch.
创建观察和行动信息。您还可以从环境中获取这些规范。
Obsinfo = rlnumericspec([4 1]);Actinfo = rlnumericspec([2 1]);numobs = obsinfo.dimension(1);Numact = Actinfo.dimension(1);
为演员创建一个经常性的深神经网络。
net = [featureinputlayer(4,'正常化'那'无'那'名字'那“州”)全连接层(10,'名字'那'fc1')剥离('名字'那'relu1')全连接列(20,'名字'那'批评福尔2')全连接层(数量,'名字'那'行动')Tanhlayer('名字'那'tanh1')];
为网络创建一个确定性演员表示。
ACTOROPTIONS = RLREPRESENTATIONOPTIONS('学习',1e-3,'gradientthreshold',1);Actor = RLDETerminyActorRepresentation(Net,Obsinfo,Actinfo,......'观察',{“州”},'行动',{'tanh1'});
从该actor获取动作,以获得一批20个观察结果。
Act = GetAction(演员,{rand(4,1,10)})
行动=1x1细胞阵列{2x1x10单}
act包含批次中所有10个观察的两个计算操作。
rlqagent.
rlsarsaagent.
rldqnagent.
rlpgagent.
rlddpgagent.
rltd3agent.
rlacagent.
rlppoagent.
强化学习代理,指定为以下对象之一:
RLDETerminyActorRepresentation
rlstochastorrepresentation
演员表示,指定为一个RLDETerminyActorRepresentation或者rlstochastorrepresentation对象。
环境观测,指定为具有多个元素的单元阵列,因为存在观察输入通道。每个元素obs.包含单个观察输入通道的观察数组。
每个元素的尺寸obs.是mO.-L.B.-L.S.,其中:
mO.对应于相关观察输入通道的尺寸。
L.B.是批量大小。指定单个观察,设置L.B.= 1.要指定一批观察,请指定L.B.> 1.如果valuerep.或者qvaluerep.有多个观察输入通道,然后L.B.对所有元素必须相同obs.。
valuerep.
qvaluerep.
L.S.指定经常性神经网络的序列长度。如果valuerep.或者qvaluerep.那时不使用经常性神经网络L.S.= 1.如果valuerep.或者qvaluerep.有多个观察输入通道,然后L.S.对所有元素必须相同obs.。
L.B.和L.S.两者都必须相同act和obs.。
来自代理的操作值,作为具有尺寸的数组返回mA.-L.B.-L.S.,其中:
mA.对应于相关动作规范的尺寸。
L.B.是批量大小。
L.S.是经常性神经网络的序列长度。如果是演员和批评者代理人然后不要使用反复性神经网络L.S.= 1。
注意
当代理人如rlacagent.那rlpgagent.或者rlppoagent.用A.rlstochastorrepresentation带有连续动作空间的演员,代理不强制执行由操作规范设置的约束。在这些情况下,您必须在环境中强制执行操作空间约束。
来自演员表示的操作值,作为一个单元素单元数组,包含尺寸数组mA.-L.B.-L.S.,其中:
mA.对应于动作规范的尺寸。
L.S.是经常性神经网络的序列长度。如果责任那时不使用经常性神经网络L.S.= 1。
rlstochastorrepresentation具有连续动作空间的演员不强制执行操作规范设置的约束。在这些情况下,您必须在环境中强制执行操作空间约束。
演员表示更新状态,作为单元格数组返回。如果责任那时不使用经常性神经网络州是一个空的单元格阵列。
州
您可以将表示状态设置为州使用setstate.功能。例如:
setstate.
valuerep = setstate(责任,州);
getmaxqvalue.|GetValue.
getmaxqvalue.
GetValue.
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室