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