主要内容

setCritic

将强化学习的评论家表示代理

描述

例子

newAgent= setCritic (oldAgent,评论家)返回一个新的强化学习代理,newAgent,使用指定的评论家表示。除了评论家表示,新代理相同的配置为指定的原始的代理,oldAgent

例子

全部折叠

假设您有一个现有的训练强化学习代理。对于这个示例,加载训练有素的代理火车DDPG剂来控制双积分器系统

负载(“DoubleIntegDDPG.mat”,“代理”)

从代理获得评论家表示。

评论家= getCritic(代理);

获得评论家的可学的参数。

params = getLearnableParameters(批评);

修改参数值。对于这个示例,简单地将所有的参数乘以2

modifiedParams = cellfun (@ x * 2 (x),参数,“UniformOutput”、假);

评论家的参数值设置为新修改的值。

评论家= setLearnableParameters(评论家,modifiedParams);

设置代理新修改的评论家的批评。

代理= setCritic(代理、批评);

创造一个环境,一个连续的操作空间和获得其观察和操作规范。对于这个示例,负载在示例中使用的环境火车DDPG剂来控制双积分器系统

负载预定义的环境。

env = rlPredefinedEnv (“DoubleIntegrator-Continuous”)
env = DoubleIntegratorContinuousAction属性:增加:1 Ts: 0.1000 MaxDistance: 5 GoalThreshold: 0.0100问:[2 x2双]R: 0.0100 MaxForce:正状态:[2 x1双)

获得观察和操作规范。

obsInfo = getObservationInfo (env);actInfo = getActionInfo (env);

创建PPO代理从环境中观察和操作规范。

代理= rlPPOAgent (obsInfo actInfo);

在强化学习修改深层神经网络代理,您必须首先提取演员和评论家表示。

演员= getActor(代理);评论家= getCritic(代理);

从演员和提取深层神经网络评论家表示。

actorNet = getModel(演员);criticNet = getModel(批评);

网络是dlnetwork对象。查看使用情节功能,您必须将它们转换为layerGraph对象。

例如,查看演员网络。

情节(layerGraph (actorNet))

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

验证一个网络,使用analyzeNetwork。例如,验证网络评论家。

analyzeNetwork (criticNet)

您可以修改演员和评论家网络和拯救他们回代理。修改网络,您可以使用深层网络设计师为每个网络应用。打开应用程序,使用下面的命令。

deepNetworkDesigner (layerGraph (criticNet) deepNetworkDesigner (layerGraph (actorNet))

深层网络设计师,修改网络。例如,您可以添加额外的层网络。当你修改网络,不改变网络的输入和输出层返回的getModel。建立网络的更多信息,见构建网络与深度网络设计师

验证修改后的网络深层网络设计师,你必须点击分析了dlnetwork下,分析部分。出口MATLAB®工作区中修改后的网络结构,生成代码来创建新网络和从命令行运行这段代码。不使用导出选项深层网络设计师。为例,展示了如何生成并运行代码,看看使用深度网络设计师创建代理和培训使用图像的观察

对于这个示例,创建的代码修改后的演员兼评论家网络createModifiedNetworks.m

createModifiedNetworks

每个网络包括一个额外的修改fullyConnectedLayerreluLayer在他们的输出路径。查看修改后的演员网络。

情节(modifiedActorNet)

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

出口网络后,网络插入演员和评论家表示。

演员= setModel(演员,modifiedActorNet);评论家= setModel(评论家,modifiedCriticNet);

最后,插入修改演员的演员兼批评家和评论家表示对象。

代理= setActor(代理、演员);代理= setCritic(代理、批评);

输入参数

全部折叠

原始强化学习代理包含一个评论家表示,指定为以下之一:

评论家表示对象,指定为以下之一:

  • rlValueRepresentation对象——返回当代理是一个rlACAgent,rlPGAgent,或rlPPOAgent对象

  • rlQValueRepresentation对象——返回当代理是一个rlQAgent,rlSARSAAgent,rlDQNAgent,rlDDPGAgent,或rlTD3Agent对象用一个评论家

  • 双元素的行向量rlQValueRepresentation对象——返回当代理是一个rlTD3AgentrlSACAgent对象有两个批评家

输出参数

全部折叠

返回更新强化学习代理,代理对象使用指定的评论家表示。除了评论家表示,新代理相同的配置oldAgent

介绍了R2019a