主要内容

rlSACAgentOptions

SAC代理选项

描述

使用一个rlSACAgentOptions对象指定软actor-critic (SAC)代理的选项。要创建SAC代理,请使用rlSACAgent

有关更多信息,请参见软演员-评论家代理

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

创建

描述

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

例子

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

属性

全部展开

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

初始熵分量权重,指定为正标量。

优化器学习率,指定为非负标量。如果LearnRate等于0EntropyWeight值在训练期间是固定的TargetEntropyValue被忽略。

用于调优熵权重的目标熵值,指定为标量。更高的目标熵值鼓励更多的探索。

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

优化熵的算法,指定为以下字符串之一。

  • “亚当”-使用Adam优化器。函数指定梯度移动平均和平方梯度移动平均的衰减率GradientDecayFactor而且SquaredGradientDecayFactor字段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使用点表示法。

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

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

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

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

更新参与者和评论家时采用的渐变步骤数,指定为正整数。

对象优化器选项,指定为rlOptimizerOptions对象。它允许您指定角色逼近器的训练参数,如学习率、梯度阈值,以及优化器算法及其参数。有关更多信息,请参见rlOptimizerOptions而且rlOptimizer

评论家优化器选项,指定为rlOptimizerOptions对象。它允许您指定临界逼近器的训练参数,如学习率,梯度阈值,以及优化器算法及其参数。有关更多信息,请参见rlOptimizerOptions而且rlOptimizer

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

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

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

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

随机经验小批的大小,指定为正整数。在每一集训练中,智能体在计算梯度以更新演员和评论家时,从经验缓冲区中随机抽取经验。大的小批量在计算梯度时减少了方差,但增加了计算工作量。

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

注意,如果并行训练被启用(即如果一个rlTrainingOptions选项对象中的UseParallel属性设置为真正的传递给火车),那么NumStepsToLookAhead必须设置为1,否则产生错误。这保证了体验是连续存储的。

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

试剂的取样时间,指定为正标量或-1.将此参数设置为-1允许基于事件的模拟。

在Simulink金宝app中®环境中,RL代理块,在其中指定代理执行每个SampleTime秒模拟时间。如果SampleTime-1,块从它的父子系统继承采样时间。

在MATLAB中®环境时,每当环境前进时执行代理。在这种情况下,SampleTime输出经验中连续元素之间的时间间隔是否由返回sim卡火车.如果SampleTime-1,返回的输出体验中连续元素之间的时间间隔反映了触发代理执行的事件的时间。

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

对象的功能

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

例子

全部折叠

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

opt = rlSACAgentOptions(“DiscountFactor”, 0.95)
属性:EntropyWeightOptions: [1x1 rl.option. option.]EntropyWeightOptions] PolicyUpdateFrequency: 1 CriticUpdateFrequency: 1 NumWarmStartSteps: 64 NumGradientStepsPerUpdate: 1 ActorOptimizerOptions: [1x1 rl.option.rlOptimizerOptions] CriticOptimizerOptions: [1x2 rl.option.rlOptimizerOptions] TargetSmoothFactor: 1.0000e-03 TargetUpdateFrequency: 1 ResetExperienceBufferBeforeTraining: 1 SequenceLength: 1 MiniBatchSize: 64 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9500 InfoToSave: [1x1 struct]

可以使用点表示法修改选项。例如,设置代理采样时间为0.5

opt.SampleTime = 0.5;

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

opt.EntropyWeightOptions.TargetEntropy = -5;

参考文献

[1]萨顿,理查德S和安德鲁g巴托。强化学习:简介.第二版。自适应计算与机器学习。马萨诸塞州剑桥:麻省理工学院出版社,2018年。

版本历史

R2020b中介绍

全部展开