rlDDPGAgentOptions
DDPG代理选项
描述
使用一个rlDDPGAgentOptions
对象指定深度确定性策略梯度(DDPG)代理的选项。要创建DDPG代理,请使用rlDDPGAgent
.
有关更多信息,请参见深度确定性策略梯度(DDPG)代理.
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
创建
属性
NoiseOptions
- - - - - -噪声模型的选择
OrnsteinUhlenbeckActionNoise
对象
噪声模型选项,指定为OrnsteinUhlenbeckActionNoise
对象。有关噪声模型的更多信息,请参见噪声模型.
对于具有多个动作的智能体,如果动作的范围和单位不同,很可能每个动作需要不同的噪声模型参数。如果动作的范围和单位相似,可以将所有动作的噪声参数设置为相同的值。
例如,对于具有两个动作的代理,将每个动作的标准差设置为不同的值,同时对两个标准差使用相同的衰减率。
选择= rlDDPGAgentOptions;opt.NoiseOptions.StandardDeviation = [0.1 0.2];opt.NoiseOptions.StandardDeviationDecayRate = 1的军医;
ActorOptimizerOptions
- - - - - -演员优化器选择
rlOptimizerOptions
对象
参与者优化器选项,指定为rlOptimizerOptions
对象。它允许您指定actor近似器的训练参数,如学习率,梯度阈值,以及优化器算法及其参数。有关更多信息,请参见rlOptimizerOptions
而且rlOptimizer
.
CriticOptimizerOptions
- - - - - -评论家优化器选择
rlOptimizerOptions
对象
批评家优化器选项,指定为rlOptimizerOptions
对象。它允许您指定临界逼近器的训练参数,如学习率,梯度阈值,以及优化器算法及其参数。有关更多信息,请参见rlOptimizerOptions
而且rlOptimizer
.
TargetSmoothFactor
- - - - - -目标参与者和评论家更新的平滑因子
1 e - 3
(默认)|小于等于1的正标量
用于目标参与者和批评家更新的平滑因子,指定为小于或等于1的正标量。有关更多信息,请参见目标更新方法.
TargetUpdateFrequency
- - - - - -目标参与者和批评家更新之间的步骤数
1
(默认)|正整数
目标参与者和批评家更新之间的步骤数,指定为正整数。有关更多信息,请参见目标更新方法.
ResetExperienceBufferBeforeTraining
- - - - - -选项用于清除经验缓冲区
真正的
(默认)|假
用于在训练前清除经验缓冲区的选项,指定为一个逻辑值。
SequenceLength
- - - - - -使用RNN时的最大批量训练轨迹长度
1
(默认)|正整数
使用循环神经网络时的最大批训练轨迹长度,指定为正整数。该值必须大于1
当使用循环神经网络和1
否则。
MiniBatchSize
- - - - - -随机经验小批量的大小
64
(默认)|正整数
随机经验小批量的大小,指定为正整数。在每一个训练集中,agent在计算更新评价属性的梯度时,从经验缓冲区中随机抽样经验。在计算梯度时,大的小批量减少了方差,但增加了计算工作量。
NumStepsToLookAhead
- - - - - -用于估计保单价值的未来奖励数目
1
(默认)|正整数
用于估计策略值的未来奖励数,指定为正整数。有关更多信息,请参见[1],第7章。
注意,如果启用了并行训练(即如果一个rlTrainingOptions
选项对象中的UseParallel
属性设置为真正的
传递给火车
),那么NumStepsToLookAhead
必须设置为1
,否则将提示错误。这保证了经验是连续存储的。
.
ExperienceBufferLength
- - - - - -经验的缓冲区大小
10000
(默认)|正整数
经验缓冲区大小,指定为正整数。在训练期间,代理使用从缓冲区随机抽样的小批经验计算更新。
DiscountFactor
- - - - - -折现系数
0.99
(默认)|小于等于1的正标量
折扣因子应用于训练期间的未来奖励,指定为小于或等于1的正标量。
对象的功能
rlDDPGAgent |
深度确定性策略梯度(DDPG)强化学习代理 |
例子
创建DDPG Agent Options对象
这个例子展示了如何创建DDPG代理选项对象。
创建一个rlDDPGAgentOptions
对象,该对象指定小批处理大小。
选择= rlDDPGAgentOptions (“MiniBatchSize”48)
NoiseOptions: [1x1 rl.option. properties]OrnsteinUhlenbeckActionNoise] ActorOptimizerOptions: [1x1 rl.option.]rlotimizeroptions: [1x1 rl.option.]rlOptimizerOptions] TargetSmoothFactor: 1.0000e-03 TargetUpdateFrequency: 1 ResetExperienceBufferBeforeTraining: 1 SequenceLength: 1 MiniBatchSize: 48 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9900 InfoToSave: [1x1 struct]
可以使用点表示法修改选项。例如,将代理采样时间设置为0.5
.
opt.SampleTime = 0.5;
算法
噪声模型
DDPG代理使用Ornstein-Uhlenbeck作用噪声模型进行探测。
一个OrnsteinUhlenbeckActionNoise
对象具有以下数值属性。
财产 | 描述 | 默认值 |
---|---|---|
InitialAction |
动作初始值 | 0 |
的意思是 |
噪声平均值 | 0 |
MeanAttractionConstant |
常数,指定噪声模型输出吸引到平均值的速度 | 0.15 |
StandardDeviationDecayRate |
标准差的衰减率 | 0 |
StandardDeviation |
噪声标准差的初始值 | 0.3 |
StandardDeviationMin |
最低标准偏差 | 0 |
在每个采样时间步上k
,噪声值v (k)
使用以下公式更新,在哪里Ts
是代理采样时间,而初始值v(1)由InitialAction
参数。
v(k+1) = v(k) + MeanAttractionConstant。*(意思是- v (k))。* Ts + StandardDeviation (k)。* randn(大小(意味着))。* sqrt (Ts)
在每个采样时间步中,标准差衰减如下代码所示。
decayedStandardDeviation = StandardDeviation (k)。* (1 - StandardDeviationDecayRate);StandardDeviation (k + 1) = max (decayedStandardDeviation StandardDeviationMin);
你可以用这个简单的公式计算需要多少样本才能使标准差减半。
半衰期=日志(0.5)/日志(1-StandardDeviationDecayRate);
对于连续的动作信号,适当设置噪声标准差以鼓励探测是很重要的。这是很常见的StandardDeviation * sqrt (Ts)
到行动范围的1%到10%之间的值。
如果你的代理在局部最优点上收敛得太快,那就通过增加噪声量来促进代理探索;也就是说,增加标准差。此外,为了增加探索,你可以减少StandardDeviationDecayRate
.
参考文献
[1]萨顿,理查德S.和安德鲁G.巴托。强化学习:导论.第二版。自适应计算与机器学习。马萨诸塞州剑桥:麻省理工学院出版社,2018。
版本历史
介绍了R2019aR2021a:属性中定义噪声概率分布的属性名称OrnsteinUhlenbeckActionNoise
对象已经发生了变化
定义Ornstein-Uhlenbeck (OU)噪声模型概率分布的属性已被重新命名。DDPG代理使用OU噪声进行探测。
的
方差
物业已重命名StandardDeviation
.的
VarianceDecayRate
物业已重命名StandardDeviationDecayRate
.的
VarianceMin
物业已重命名StandardDeviationMin
.
这些属性的默认值保持不变。当一个OrnsteinUhlenbeckActionNoise
从以前的MATLAB版本中保存的noise对象被加载,的值方差
,VarianceDecayRate
,VarianceMin
复制在StandardDeviation
,StandardDeviationDecayRate
,StandardDeviationMin
,分别。
的方差
,VarianceDecayRate
,VarianceMin
属性仍然可以工作,但不推荐使用。要定义OU噪声模型的概率分布,请使用新的属性名称。
此表显示如何更新代码以使用新的属性名rlDDPGAgentOptions
对象ddpgopt
.
不推荐 | 推荐 |
---|---|
ddpgopt.NoiseOptions.Variance = 0.5; |
ddpgopt.NoiseOptions.StandardDeviation = 0.5; |
ddpgopt.NoiseOptions.VarianceDecayRate = 0.1; |
ddpgopt.NoiseOptions.StandardDeviationDecayRate = 0.1; |
ddpgopt.NoiseOptions.VarianceMin = 0; |
ddpgopt.NoiseOptions.StandardDeviationMin = 0; |
R2020a:DDPG代理的目标更新方法设置已更改
DDPG代理的目标更新方法设置已更改。以下更改需要更新您的代码:
的
TargetUpdateMethod
选项已被删除。现在,DDPG代理基于TargetUpdateFrequency
而且TargetSmoothFactor
选项值。的默认值。
TargetUpdateFrequency
已经从4
来1
.
若要使用下列目标更新方法之一,请将TargetUpdateFrequency
而且TargetSmoothFactor
属性显示。
更新方法 | TargetUpdateFrequency |
TargetSmoothFactor |
---|---|---|
平滑 | 1 |
不到1 |
周期 | 大于1 |
1 |
周期平滑(R2020a的新方法) | 大于1 |
不到1 |
默认的目标更新配置,这是一个平滑更新TargetSmoothFactor
的价值0.001
,保持不变。
的一些典型用法rlDDPGAgentOptions
以及如何更新代码以使用新的选项配置。
不推荐 | 推荐 |
---|---|
选择= rlDDPGAgentOptions(“TargetUpdateMethod”、“平滑”); |
选择= rlDDPGAgentOptions; |
选择= rlDDPGAgentOptions(“TargetUpdateMethod”、“周期”); |
选择= rlDDPGAgentOptions;opt.TargetUpdateFrequency = 4;opt.TargetSmoothFactor = 1; |
选择= rlDDPGAgentOptions;opt.TargetUpdateMethod =“周期性”;opt.TargetUpdateFrequency = 5; |
选择= rlDDPGAgentOptions;opt.TargetUpdateFrequency = 5;opt.TargetSmoothFactor = 1; |
另请参阅
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。