setActor
描述
例子
演员修改参数值
假设您有一个现有的训练强化学习代理。对于这个示例,加载训练有素的代理火车DDPG剂来控制双积分器系统。
负载(“DoubleIntegDDPG.mat”,“代理”)
从代理得到演员函数近似者。
演员= getActor(代理);
从演员获得可学的参数。
params = getLearnableParameters(演员)
params =2×1单元阵列{[-15.4601 - -7.2076]}{[0]}
修改参数值。对于这个示例,简单地将所有的参数乘以2
。
modifiedParams = cellfun (@ x * 2 (x),参数,“UniformOutput”、假);
设置参数值的演员新修改后的值。
演员= setLearnableParameters(演员,modifiedParams);
设置代理新修改的演员的演员。
setActor(代理、演员);
显示新的参数值。
getLearnableParameters (getActor(代理)
ans =2×1单元阵列{[-30.9201 - -14.4153]}{[0]}
在强化学习修改深层神经网络代理
创造一个环境,一个连续的操作空间和获得其观察和操作规范。对于这个示例,负载在示例中使用的环境火车DDPG剂来控制双积分器系统。
负载预定义的环境。
env = rlPredefinedEnv (“DoubleIntegrator-Continuous”);
获得观察和操作规范。
obsInfo = getObservationInfo (env);actInfo = getActionInfo (env);
创建PPO代理从环境中观察和操作规范。该代理使用默认深层神经网络的演员和评论家。
代理= rlPPOAgent (obsInfo actInfo);
修改强化学习中的深层神经网络代理,您必须首先提取演员和评论家函数近似者。
演员= getActor(代理);评论家= getCritic(代理);
从演员和提取深层神经网络评论家函数近似者。
actorNet = getModel(演员);criticNet = getModel(批评);
网络是dlnetwork
对象。查看使用情节
功能,您必须将它们转换为layerGraph
对象。
例如,查看演员网络。
情节(layerGraph (actorNet))
验证一个网络,使用analyzeNetwork
。例如,验证网络评论家。
analyzeNetwork (criticNet)
您可以修改演员和评论家网络和拯救他们回代理。修改网络,您可以使用深层网络设计师为每个网络应用。打开应用程序,使用下面的命令。
deepNetworkDesigner (layerGraph (criticNet) deepNetworkDesigner (layerGraph (actorNet))
在深层网络设计师,修改网络。例如,您可以添加额外的层网络。当你修改网络,不改变网络的输入和输出层返回的getModel
。建立网络的更多信息,见构建网络与深度网络设计师。
验证修改后的网络深层网络设计师,你必须点击分析了dlnetwork下,分析部分。出口MATLAB®工作区中修改后的网络结构,生成代码来创建新网络和从命令行运行这段代码。不使用导出选项深层网络设计师。为例,展示了如何生成并运行代码,看看创建DQN代理使用深层网络设计师和训练使用图像的观察。
对于这个示例,创建的代码修改的演员和评论家网络createModifiedNetworks
辅助脚本。
createModifiedNetworks
每个网络包括一个额外的修改fullyConnectedLayer
和reluLayer
在他们的主要常见的路径。查看修改后的演员网络。
情节(layerGraph (modifiedActorNet))
出口网络后,网络插入演员和评论家函数近似者。
演员= setModel(演员,modifiedActorNet);评论家= setModel(评论家,modifiedCriticNet);
最后,将修改后的演员兼评论家函数近似者插入到演员和批评的对象。
代理= setActor(代理、演员);代理= setCritic(代理、批评);
输入参数
代理
- - - - - -强化学习代理
rlPGAgent
|rlDDPGAgent
|rlTD3Agent
|rlACAgent
|rlSACAgent
|rlPPOAgent
|rlTRPOAgent
强化学习代理包含一个演员,指定为以下之一:
请注意
代理
是一个处理对象。因此,更新了setActor
是否代理
作为一个输出参数返回。关于处理对象的更多信息,请参阅处理对象的行为。
请注意
如果代理
是一个rlMBPOAgent
对象,设置演员,使用setActor (agent.BaseAgent、演员)
。
演员
- - - - - -演员
rlContinuousDeterministicActor
对象|rlDiscreteCategoricalActor
对象|rlContinuousGaussianActor
对象
rlContinuousDeterministicActor
rlDiscreteCategoricalActor
rlContinuousGaussianActor
演员对象,指定为以下之一:
rlContinuousDeterministicActor
对象,指定当代理
是一个rlDDPGAgent
或rlTD3Agent
对象rlDiscreteCategoricalActor
对象,指定当代理
是一个rlACAgent
,rlPGAgent
,rlPPOAgent
,rlTRPOAgent
或rlSACAgent
对象的环境一个离散的行动空间。rlContinuousGaussianActor
对象,指定当代理
是一个rlACAgent
,rlPGAgent
,rlPPOAgent
,rlTRPOAgent
或rlSACAgent
空间对象的环境持续行动。
近似模型的输入和输出的演员(通常情况下,神经网络)的观察和行动规范必须匹配最初的代理。
创建一个演员,使用下列方法之一:
使用相应的函数近似者对象创建的演员。
从代理使用获取现有的演员
getActor
。
输出参数
版本历史
介绍了R2019a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。