主要内容

getActor

获取钢筋学习代理人的演员代表

描述

例子

演员= getActor (代理)返回指定的强化学习代理的参与者表示对象。

例子

全部折叠

假设您有一个现有的经过训练的强化学习代理。对于本例,从中加载经过训练的代理训练DDPG代理控制双集成商系统

负载('doupleintegddpg.mat',“代理”)

从代理商中获取演员表示。

演员= getActor(代理);

从演员获取学习参数。

params = getLearnableParameters(演员);

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

modifiedParams = cellfun(@(x) x*2,params,“UniformOutput”,错误的);

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

演员= setLearnableParameters(演员,modifiedParams);

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

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

创建具有连续动作空间的环境,并获得其观察和操作规范。对于此示例,请加载示例中使用的环境训练DDPG代理控制双集成商系统

加载预定义环境。

env = rlPredefinedEnv (“双凝胶组连续”)
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(演员);批评= getModel(评论家);

若要查看网络信息,请使用情节函数。例如,查看actor网络。

情节(ACTORNET)

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

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

deepNetworkDesigner (criticNet) deepNetworkDesigner (actorNet)

深层网络设计师,修改网络。例如,您可以向网络添加额外的层。修改网络时,请不要修改返回网络的输入输出层GetModel.。有关建筑网络的更多信息,请参阅与深度网络设计师建立网络

要将修改后的网络结构导出到MATLAB®工作空间,请生成创建新网络的代码,并从命令行运行此代码。中不使用导出选项深层网络设计师。有关显示如何生成和运行代码的示例,请参见使用深度网络设计师和使用图像观察创建代理

对于本例,已经输入了创建修改后的演员和评论家网络的代码CreateModifiedNetWorks.m.

createModifiedNetworks

每个修改的网络都包括额外的网络fullyConnectedLayerreluLayer在输出路径中。查看修改后的actor网络。

绘图(ModifiedActornet)

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

导出网络后,将网络插入演员和批评者表示。

Actor = SetModel(演员,ModifiedActornet);评论家= setmodel(评论家,修改克里米特);

最后,在演员和批评者中插入修改的演员和批评者表示。

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

输入参数

全部折叠

包含演员表示的强化学习代理,指定为以下之一:

输出参数

全部折叠

参与者表示对象,指定为以下其中之一:

介绍了R2019a