主要内容

rlSACAgentOptions

SAC特工的选择

描述

使用一个rlSACAgentOptions对象指定软演员评论(SAC)代理的选项。要创建SAC特工,请使用rlSACAgent

有关更多信息,请参见软Actor-Critic代理

有关不同类型的强化学习代理的更多信息,请参见强化学习代理

创建

描述

选择= rlSACAgentOptions在使用所有默认选项创建SAC代理时,创建一个options对象作为参数。可以使用点表示法修改对象属性。

例子

选择= rlSACAgentOptions (名称,值设置选项属性使用名称-值对。例如,rlSACAgentOptions (DiscountFactor, 0.95)创建贴现因子为的选项集0.95.可以指定多个名称-值对。将每个属性名用引号括起来。

属性

全部展开

熵优化选项,指定为EntropyWeightOptions对象的以下属性。

初始熵分量权值,指定为一个正标量。

优化器学习率,指定为非负标量。如果LearnRate是零,EntropyWeight价值是固定的在培训和TargetEntropy值将被忽略。

用于调整熵权的目标熵值,指定为标量。更高的目标熵值鼓励玩家进行更多探索。

如果没有指定TargetEntropy,代理使用-一个为目标值,其中一个是行动的次数。

用于熵调优的优化器,指定为以下字符串之一。

  • “亚当”-使用亚当优化器。可以指定梯度和平方梯度移动平均的衰减率GradientDecayFactorSquaredGradientDecayFactor的字段OptimizerParameters选择。

  • “个”-使用随机梯度下降与动量(SGDM)优化器。可以使用。指定动量值动力场的OptimizerParameters选择。

  • “rmsprop”—使用RMSProp优化器。您可以指定衰减速率的平方梯度移动平均使用SquaredGradientDecayFactor的字段OptimizerParameters选择。

有关这些优化器的更多信息,请参见随机梯度下降法在深度学习工具箱™。

熵梯度的阈值,指定为或者一个正标量。如果渐变超过这个值,渐变将被裁剪。

可用于优化器的参数,指定为OptimizerParameters对象,其参数如下。默认参数值对于大多数问题都很有效。

参数 描述 默认的
动力

上一步的贡献,指定为从0到1的标量。值为0表示前一步没有贡献。值为1表示最大贡献。

该参数仅适用于以下情况优化器“个”

0.9
ε

分母偏移量,指定为正标量。优化器将这个偏移量加到网络参数更新中的分母上,以避免被零除掉。

该参数仅适用于以下情况优化器“亚当”“rmsprop”

1 e-8
GradientDecayFactor

梯度移动平均的衰减率,指定为从0到1的一个正标量。

该参数仅适用于以下情况优化器“亚当”

0.9
SquaredGradientDecayFactor

平方梯度移动平均的衰减率,指定为从0到1的一个正标量。

该参数仅适用于以下情况优化器“亚当”“rmsprop”

0.999

当一个特殊的性质OptimizerParameters的优化器类型不适用优化器选项时,该属性将被设置为“不适用”

要更改默认值,请访问OptimizerParameters使用点符号。

选择= rlSACAgentOptions;opt.EntropyWeightOptions.OptimizerParameters.GradientDecayFactor = 0.95;

参与者策略更新之间的步骤数,指定为正整数。有关更多信息,请参见训练算法

评论家更新之间的步骤数,指定为正整数。有关更多信息,请参见训练算法

目标批评者更新之间的步骤数,指定为正整数。有关更多信息,请参见目标更新方法

选项以模拟和策略生成的最大可能性返回动作,指定为逻辑值。当UseDeterministicExploitation被设置为真正的时,总是使用最大似然的动作sim卡generatePolicyFunction,这使得代理具有确定性的行为。

UseDeterministicExploitation被设置为时,代理从概率分布中抽样行为,使代理表现为随机行为。

目标批评家更新的平滑因子,指定为小于或等于1的正标量。有关更多信息,请参见目标更新方法

使用递归神经网络时的最大批量训练轨迹长度,指定为正整数。该值必须大于1当使用递归神经网络和1否则。

随机经验小批的大小,指定为一个正整数。在每个训练集中,agent在计算梯度更新actor和critics时,从经验缓冲区中随机抽取经验样本。大的小批量在计算梯度时减少了方差,但增加了计算工作量。

选项用于在训练前清除经验缓冲区,指定为逻辑值。

用于估计策略价值的未来奖励数量,指定为正整数。请参阅[1](第7章)了解更多细节。

用于估计策略价值的未来奖励数量,指定为正整数。有关更多信息,请参阅[1]的第7章。

体验缓冲区大小,指定为正整数。在训练过程中,代理使用从缓冲区中随机抽样的一小批经验计算更新。

试剂的采样时间,指定为正标量。

在一个模型金宝app®环境中,代理被执行SampleTime模拟时间的秒数。

在MATLAB®环境中,每当环境进步时,代理就会被执行。然而,SampleTime返回的输出经验中连续元素之间的时间间隔是多少sim卡火车

贴现因子应用于培训期间的未来奖励,指定为小于或等于1的正标量。

在保存代理时保存经验缓冲区数据的选项,指定为逻辑值。此选项适用于在培训期间保存候选代理以及使用保存函数。

对于一些代理,例如那些具有较大的经验缓冲区和基于图像的观察的代理,保存它们的经验缓冲区所需的内存很大。在这种情况下,为了不保存经验缓冲区数据,设置SaveExperienceBufferWithAgent

如果您计划进一步培训所保存的代理,可以从以前的经验缓冲区作为起点开始培训。在本例中,setSaveExperienceBufferWithAgent真正的

在更新参与者和批评者之前要采取的操作数,指定为正整数。默认情况下,NumWarmStartSteps值等于MiniBatchSize价值。

当更新参与者和批评者时要采取的梯度步骤数,指定为正整数。

对象的功能

rlSACAgent 软演员-评论家强化学习代理

例子

全部折叠

创建一个SAC代理选项对象,指定折扣因子。

选择= rlSACAgentOptions (“DiscountFactor”, 0.95)
[1x1 rl.option.] [1x1 rl.option.]EntropyWeightOptions] PolicyUpdateFrequency: 1 CriticUpdateFrequency: 1 NumWarmStartSteps: 64 NumGradientStepsPerUpdate: 1 UseDeterministicExploitation: 0 TargetSmoothFactor: 1.0000e-03 TargetUpdateFrequency: 1 ResetExperienceBufferBeforeTraining: 1 SaveExperienceBufferWithAgent: 0 SequenceLength: 1 MiniBatchSize: 64 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9500

您可以使用点符号修改选项。例如,将代理示例时间设置为0.5

opt.SampleTime = 0.5;

对于SAC代理,使用中的选项配置熵权优化器EntropyWeightOptions.例如,将目标熵值设置为5

opt.EntropyWeightOptions.TargetEntropy = 5;

参考文献

Richard S. Sutton和Andrew G. Barto。强化学习:简介.第二版。自适应计算和机器学习。麻省理工学院出版社,2018年。

另请参阅

介绍了R2020b