主要内容

setActor

设置强化学习主体的主体表示

描述

例子

newAgent= setActor (oldAgent演员返回一个新的强化学习代理,newAgent,使用指定的参与者表示形式。除了参与者表示之外,新代理具有与指定的原始代理相同的配置,oldAgent

例子

全部折叠

假设您有一个现有的经过训练的强化学习代理。对于本例,从下面加载经过训练的代理培训DDPG Agent控制双积分系统

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

从代理获取参与者表示。

演员= getActor(代理);

从参与者那里获得可学习的参数。

params = getLearnableParameters(演员);

修改参数值。对于本例,只需将所有参数乘以2

@(x) x*2,“UniformOutput”、假);

将参与者的参数值设置为新的修改值。

演员= setLearnableParameters(演员,modifiedParams);

将代理中的参与者设置为新修改的参与者。

代理= setActor(代理、演员);

创造一个具有连续动作空间的环境,并获得其观察和动作规范。对于本示例,请加载示例中使用的环境培训DDPG Agent控制双积分系统

加载预定义的环境。

env = rlPredefinedEnv (“DoubleIntegrator-Continuous”
env = DoubleIntegratorContinuousAction with properties: Gain: 1 Ts: 0.1000 MaxDistance: 5 GoalThreshold: 0.0100 Q: [2x2 double] R: 0.0100 MaxForce: Inf State: [2x1 double]

获得观察和行动规范。

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

根据环境观察和行动规范创建PPO代理。

代理= rlPPOAgent (obsInfo actInfo);

为了修改强化学习代理内部的深度神经网络,你必须首先提取行动者和批评者的表征。

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

从演员和评论家的表征中提取深度神经网络。

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

网络是dlnetwork对象。来查看它们情节函数时,必须将它们转换为layerGraph对象。

例如,查看参与者网络。

情节(layerGraph (actorNet))

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

要验证网络,请使用analyzeNetwork.例如,验证批评家网络。

analyzeNetwork (criticNet)

您可以修改演员和评论家网络,并将它们保存回代理。如果要修改网络,可以使用深层网络设计师要打开每个网络的应用程序,使用以下命令。

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

深层网络设计师,修改网络。例如,您可以向网络添加额外的层。修改网络时,不要改变返回网络的输入和输出层getModel.有关构建网络的更多信息,请参见用深度网络设计器构建网络

来验证修改后的网络深层网络设计师,你必须点击分析了dlnetwork下,分析部分。要将修改后的网络结构导出到MATLAB®工作空间,请生成用于创建新网络的代码,并从命令行运行此代码。不使用导出选项深层网络设计师.有关如何生成和运行代码的示例,请参见使用深度网络设计器创建代理和使用图像观察训练

对于本例,创建修改过的参与者和批评者网络的代码在createModifiedNetworks.m

createModifiedNetworks

每个修改过的网络都有一个附加的fullyConnectedLayerreluLayer在输出路径中。查看修改后的角色网络。

情节(modifiedActorNet)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

导出网络后,将网络插入到演员和评论家表示中。

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

最后,将修改过的参与者和批评者表示插入到参与者和批评者对象中。

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

输入参数

全部折叠

强化学习代理,包含一个参与者表示,指定为下列之一:

Actor表示对象,指定为下列对象之一:

指定表示的输入和输出层必须与原始代理的观察和操作规范相匹配。

要创建策略或值函数表示,请使用以下方法之一:

  • 使用相应的表示对象创建表示。

  • 使用。从代理获取现有策略表示getActor

输出参数

全部折叠

更新的强化学习代理,作为使用指定的参与者表示的代理对象返回。除了参与者表示之外,新代理具有与oldAgent

介绍了R2019a