getActor
从强化学习代理中得到actor
描述
例子
修改Actor参数值
假设你有一个现有的训练有素的强化学习代理。对于本例,从训练DDPG Agent控制双积分系统.
负载(“DoubleIntegDDPG.mat”,“代理”)
从代理中获取角色函数逼近器。
actor = getActor(代理);
从参与者获得可学习的参数。
params = getLearnableParameters(actor)
params =2×1单元格数组{[-15.4622 -7.2252]} {[0]}
修改参数值。对于本例,只需将所有参数乘以2
.
modifiedParams = cellfun(@(x) x*2,params,“UniformOutput”、假);
将参与者的参数值设置为新修改的值。
actor = setLearnableParameters(actor,modifiedParams);
将代理中的参与者设置为新的修改过的参与者。
setActor(代理、演员);
显示新的参数值。
getLearnableParameters (getActor(代理)
ans =2×1单元格数组{[-30.9244 -14.4504]} {[0]}
改进深度神经网络在强化学习Agent中的应用
创造一个具有连续动作空间的环境,并获得其观察和动作规范。对于本例,加载示例中使用的环境训练DDPG Agent控制双积分系统.
加载预定义的环境。
环境= rlPredefinedEnv(“DoubleIntegrator-Continuous”);
获得观察和行动规范。
obsInfo = getObservationInfo(env);actInfo = getActionInfo(env);
根据环境观察和操作规范创建PPO代理。这个代理为它的演员和评论家使用默认的深度神经网络。
agent = rlPPOAgent(obsInfo,actInfo);
为了修改强化学习代理中的深度神经网络,必须首先提取行动者和批评函数逼近器。
actor = getActor(代理);批评家= get批评家(代理);
从行为函数逼近器和批评函数逼近器中提取深度神经网络。
actorNet = getModel(actor);criticNet = getModel(批评家);
网络是dlnetwork
对象。来查看它们情节
函数时,必须将它们转换为layerGraph
对象。
例如,查看角色网络。
情节(layerGraph (actorNet))
要验证网络,请使用analyzeNetwork
.例如,验证评论家网络。
analyzeNetwork (criticNet)
您可以修改演员和评论家网络,并将它们保存回代理。如果要修改网络,可以使用深度网络设计器要打开每个网络的应用程序,使用以下命令。
deepNetworkDesigner (layerGraph (criticNet) deepNetworkDesigner (layerGraph (actorNet))
在深度网络设计器,修改网络。例如,您可以向网络添加其他层。在修改网络时,不要改变返回的网络的输入和输出层getModel
.有关构建网络的更多信息,请参见用深度网络设计器构建网络.
验证修改后的网络深度网络设计器,你必须点击为dlnetwork分析,在分析部分。为了将修改后的网络结构导出到MATLAB®工作空间,生成用于创建新网络的代码,并从命令行运行此代码。中不使用导出选项深度网络设计器.有关显示如何生成和运行代码的示例,请参见使用深度网络设计器创建代理,并使用图像观察进行训练.
对于本例,用于创建修改后的演员和评论家网络的代码位于createModifiedNetworks
辅助脚本。
createModifiedNetworks
每个修改后的网络都包含一个额外的fullyConnectedLayer
而且reluLayer
在他们主要的共同道路上。查看修改后的角色网络。
情节(layerGraph (modifiedActorNet))
导出网络后,将网络插入到actor和批评家函数逼近器中。
actor = setModel(actor,modifiedActorNet);批评家= setModel(批评家,modifiedCriticNet);
最后,将修改后的actor和批评家函数近似器插入到actor和批评家对象中。
agent = setActor(代理,actor);agent = set批评家(代理,评论家);
输入参数
代理
- - - - - -强化学习剂
rlDDPGAgent
对象|rlTD3Agent
对象|rlPGAgent
对象|rlACAgent
对象|rlPPOAgent
对象|rlSACAgent
对象
包含参与者的强化学习代理,指定为以下之一:
输出参数
演员
——演员
rlContinuousDeterministicActor
对象|rlDiscreteCategoricalActor
对象|rlContinuousGaussianActor
对象
rlContinuousDeterministicActor
rlDiscreteCategoricalActor
rlContinuousGaussianActor
Actor对象,作为下列之一返回:
rlContinuousDeterministicActor
object -当返回时代理
是一个rlDDPGAgent
或rlTD3Agent
对象rlDiscreteCategoricalActor
object -当返回时代理
是一个rlACAgent
,rlPGAgent
,rlPPOAgent
,rlTRPOAgent
或rlSACAgent
对象用于具有离散操作空间的环境。rlContinuousGaussianActor
object -当返回时代理
是一个rlACAgent
,rlPGAgent
,rlPPOAgent
,rlTRPOAgent
或rlSACAgent
对象用于具有连续操作空间的环境。
版本历史
在R2019a中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。