setCritic

设置增强学习代理的批评家表示

描述

例子

newAgent= setActor (oldAgent,评论家)返回一个新的强化学习代理,newAgent,它使用指定的批评家表示。除了批评家表示之外,新的代理具有与指定的原始代理相同的配置,oldAgent

例子

全部折叠

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

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

从代理处获得评论家代表。

评论家= getCritic(代理);

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

params = getLearnableParameters(批评);

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

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

将批评家的参数值设置为新的修改后的值。

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

将代理中的批评家设置为新修改的批评家。

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

假设你有一个现有的强化学习代理,代理。对于本例,从训练交流代理商平衡吊柱系统:

负载(“MATLABCartpoleAC.mat”)

进一步,假设该agent具有一个包含以下两层浅神经网络结构的批评家表示:

oldCriticNetwork = [imageInputLayer([4 1 1]),“归一化”,“没有”,“名字”,“状态”)fullyConnectedLayer (1,“名字”,“CriticFC”));

创建一个新的网络与额外的5个神经元完全连接的隐藏层:

newCriticNetwork = [oldCriticNetwork(1)全连接层(5,“名字”,“隐藏”);oldCriticNetwork (2)];

使用带有附加全连接层的新网络创建评论。

评论家= rlValueRepresentation (newCriticNetwork getObservationInfo(代理),“观察”,{“状态”});

将代理的评论家表示设置为新的评论家。

newAgent = setCritic(代理、批评);

输入参数

全部折叠

原始的增强学习代理,包含一个批评家表示,指定为下列之一:

批评家表示对象,具体如下:

  • rlValueRepresentation对象——在代理是一个rlACAgent,rlPGAgent,或rlPPOAgent对象

  • rlQValueRepresentation对象——在代理是一个rlQAgent,rlSARSAAgent,rlDQNAgent,rlDDPGAgent,或rlTD3Agent只有一个评论家反对

  • 的两元行向量rlQValueRepresentation对象——在代理是一个rlTD3Agent持两种批评意见

输出参数

全部折叠

更新的强化学习代理,作为使用指定的批评表示的代理对象返回。除了批评家表示之外,新代理具有与之相同的配置oldAgent

介绍了R2019a