rlTD3AgentOptions
TD3代理选项
描述
使用一个rlTD3AgentOptions
对象指定双延迟深度确定性策略梯度(TD3)代理的选项。要创建TD3代理,请使用rlTD3Agent
有关更多信息,请参见双延迟深度确定性策略梯度代理.
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
创建
属性
ExplorationModel
- - - - - -探测噪声模型选项
GaussianActionNoise
对象(默认)|OrnsteinUhlenbeckActionNoise
对象
噪声模型选项,指定为GaussianActionNoise
对象或一个OrnsteinUhlenbeckActionNoise
对象。有关噪声模型的更多信息,请参见噪声模型.
对于具有多个动作的智能体,如果动作的范围和单位不同,很可能每个动作需要不同的噪声模型参数。如果动作的范围和单位相似,可以将所有动作的噪声参数设置为相同的值。
例如,对于具有两个动作的代理,将每个动作的标准差设置为不同的值,同时对两个标准差使用相同的衰减率。
选择= rlTD3AgentOptions;opt.ExplorationModel.StandardDeviation = [0.1 0.2];opt.ExplorationModel.StandardDeviationDecayRate = 1的军医;
要使用Ornstein-Uhlenbeck动作噪声,首先创建一个默认值OrnsteinUhlenbeckActionNoise
对象。然后,使用点表示法指定任何非默认模型属性。
选择= rlTD3AgentOptions;opt.ExplorationModel = rl.option.OrnsteinUhlenbeckActionNoise;opt.ExplorationModel.StandardDeviation = 0.05;
TargetPolicySmoothModel
- - - - - -目标平滑噪声模型选项
GaussianActionNoise
对象
目标平滑噪声模型选项,指定为GaussianActionNoise
对象。该模型帮助策略利用具有高q值估计的动作。有关噪声模型的更多信息,请参见噪声模型.
对于具有多个动作的agent,如果动作的范围和单位不同,很可能每个动作需要不同的平滑噪声模型参数。如果动作的范围和单位相似,可以将所有动作的噪声参数设置为相同的值。
例如,对于具有两个动作的代理,将每个动作的标准差设置为不同的值,同时对两个标准差使用相同的衰减率。
选择= rlTD3AgentOptions;opt. targetpolicyysmoothmodel . standard deviation = [0.1 0.2];opt.TargetPolicySmoothModel.StandardDeviationDecayRate = 1的军医;
PolicyUpdateFrequency
- - - - - -策略更新之间的步骤数
2
(默认)|正整数
策略更新之间的步骤数,指定为正整数。
ActorOptimizerOptions
- - - - - -演员优化器选择
rlOptimizerOptions
对象
参与者优化器选项,指定为rlOptimizerOptions
对象。它允许您指定actor近似器的训练参数,如学习率,梯度阈值,以及优化器算法及其参数。有关更多信息,请参见rlOptimizerOptions
而且rlOptimizer
.
CriticOptimizerOptions
- - - - - -评论家优化器选择
rlOptimizerOptions
对象
批评家优化器选项,指定为rlOptimizerOptions
对象。它允许您指定临界逼近器的训练参数,如学习率,梯度阈值,以及优化器算法及其参数。有关更多信息,请参见rlOptimizerOptions
而且rlOptimizer
.
TargetSmoothFactor
- - - - - -目标参与者和评论家更新的平滑因子
0.005
(默认)|小于等于1的正标量
用于目标参与者和批评家更新的平滑因子,指定为小于或等于1的正标量。有关更多信息,请参见目标更新方法.
TargetUpdateFrequency
- - - - - -目标参与者和批评家更新之间的步骤数
2
(默认)|正整数
目标参与者和批评家更新之间的步骤数,指定为正整数。有关更多信息,请参见目标更新方法.
ResetExperienceBufferBeforeTraining
- - - - - -选项用于清除经验缓冲区
真正的
(默认)|假
用于在训练前清除经验缓冲区的选项,指定为一个逻辑值。
SequenceLength
- - - - - -使用RNN时的最大批量训练轨迹长度
1
(默认)|正整数
使用循环神经网络时的最大批训练轨迹长度,指定为正整数。该值必须大于1
当使用循环神经网络和1
否则。
MiniBatchSize
- - - - - -随机经验小批量的大小
64
(默认)|正整数
随机经验小批量的大小,指定为正整数。在每一个训练集中,agent在计算更新评价属性的梯度时,从经验缓冲区中随机抽样经验。在计算梯度时,大的小批量减少了方差,但增加了计算工作量。
NumStepsToLookAhead
- - - - - -用于估计保单价值的未来奖励数目
1
(默认)|正整数
用于估计策略值的未来奖励数,指定为正整数。有关更多信息,请参见[1],第7章。
注意,如果启用了并行训练(即如果一个rlTrainingOptions
选项对象中的UseParallel
属性设置为真正的
传递给火车
),那么NumStepsToLookAhead
必须设置为1
,否则将提示错误。这保证了经验是连续存储的。
.
ExperienceBufferLength
- - - - - -经验的缓冲区大小
10000
(默认)|正整数
经验缓冲区大小,指定为正整数。在训练期间,代理使用从缓冲区随机抽样的小批经验计算更新。
DiscountFactor
- - - - - -折现系数
0.99
(默认)|小于等于1的正标量
折扣因子应用于训练期间的未来奖励,指定为小于或等于1的正标量。
对象的功能
rlTD3Agent |
双延迟深度确定性策略梯度强化学习代理 |
例子
创建TD3 Agent Options对象
这个例子展示了如何创建TD3代理选项对象。
创建一个rlTD3AgentOptions
对象,该对象指定小批处理大小。
选择= rlTD3AgentOptions (“MiniBatchSize”48)
ExplorationModel: [1x1 rl.option. properties]targetpolicyysmoothmodel: [1x1 rl.option.]GaussianActionNoise] PolicyUpdateFrequency: 2 ActorOptimizerOptions: [1x1 rl.option.rlOptimizerOptions] CriticOptimizerOptions: [1x2 rl.option.rlOptimizerOptions] TargetSmoothFactor: 0.0050 TargetUpdateFrequency: 2 ResetExperienceBufferBeforeTraining: 1 SequenceLength: 1 MiniBatchSize: 48 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9900 InfoToSave: [1x1 struct]
可以使用点表示法修改选项。例如,将代理采样时间设置为0.5
.
opt.SampleTime = 0.5;
算法
噪声模型
一个GaussianActionNoise
对象具有以下数值属性。
财产 | 描述 | 默认值(ExplorationModel ) |
默认值(TargetPolicySmoothModel ) |
---|---|---|---|
的意思是 |
噪声平均值 | 0 |
0 |
StandardDeviationDecayRate |
标准差的衰减率 | 0 |
0 |
StandardDeviation |
噪声标准差的初始值 | sqrt (0.1) |
sqrt (0.2) |
StandardDeviationMin |
最小标准差,必须小于StandardDeviation |
0.01 |
0.01 |
LowerLimit |
噪声样本下限 | 负 |
-0.5 |
UpperLimit |
噪声样本上限 | 正 |
0.5 |
在每一个时间步k
,高斯噪声v
如下面的代码所示进行采样。
w = Mean + randn(ActionSize).*标准差(k);v (k + 1) =最小(最大(w, LowerLimit) UpperLimit);
其中初始值v(1)由InitialAction
参数。在每个采样时间步中,标准差衰减如下代码所示。
decayedStandardDeviation = StandardDeviation (k)。* (1 - StandardDeviationDecayRate);StandardDeviation (k + 1) = max (decayedStandardDeviation StandardDeviationMin);
一个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。
版本历史
介绍了R2020aR2021a:中定义噪声概率分布的属性GaussianActionNoise
对象已经发生了变化
定义高斯作用噪声模型概率分布的属性发生了变化。该噪声模型被TD3代理用于探测和目标策略平滑。
的
方差
属性已被StandardDeviation
财产。的
VarianceDecayRate
属性已被StandardDeviationDecayRate
财产。的
VarianceMin
属性已被StandardDeviationMin
财产。
当一个GaussianActionNoise
从以前的MATLAB版本中保存的noise对象被加载,的值VarianceDecayRate
复制到StandardDeviationDecayRate
的平方根方差
而且VarianceMin
复制到StandardDeviation
而且StandardDeviationMin
,分别。
的方差
,VarianceDecayRate
,VarianceMin
属性仍然可以工作,但不推荐使用。要定义高斯作用噪声模型的概率分布,请使用新的属性名称。
此表显示如何更新代码以使用新的属性名rlTD3AgentOptions
对象td3opt
.
不推荐 | 推荐 |
---|---|
td3opt.ExplorationModel。方差= 0.5; |
td3opt.ExplorationModel。StandardDeviation= sqrt(0.5); |
td3opt.ExplorationModel。VarianceDecayRate = 0.1; |
td3opt.ExplorationModel。StandardDeviationDecayRate = 0.1; |
td3opt.ExplorationModel。VarianceMin = 0.1; |
td3opt.ExplorationModel。StandardDeviationMin= sqrt(0.1); |
R2021a:属性中定义噪声概率分布的属性名称OrnsteinUhlenbeckActionNoise
对象已经发生了变化
定义Ornstein-Uhlenbeck (OU)噪声模型概率分布的属性已被重新命名。TD3试剂使用OU噪声进行勘探。
的
方差
物业已重命名StandardDeviation
.的
VarianceDecayRate
物业已重命名StandardDeviationDecayRate
.的
VarianceMin
物业已重命名StandardDeviationMin
.
这些属性的默认值保持不变。当一个OrnsteinUhlenbeckActionNoise
从以前的MATLAB版本中保存的noise对象被加载,的值方差
,VarianceDecayRate
,VarianceMin
复制在StandardDeviation
,StandardDeviationDecayRate
,StandardDeviationMin
,分别。
的方差
,VarianceDecayRate
,VarianceMin
属性仍然可以工作,但不推荐使用。要定义OU噪声模型的概率分布,请使用新的属性名称。
此表显示如何更新代码以使用新的属性名rlTD3AgentOptions
对象td3opt
.
不推荐 | 推荐 |
---|---|
td3opt.ExplorationModel。方差= 0.5; |
td3opt.ExplorationModel。StandardDeviation= sqrt(0.5); |
td3opt.ExplorationModel。VarianceDecayRate = 0.1; |
td3opt.ExplorationModel。StandardDeviationDecayRate = 0.1; |
td3opt.ExplorationModel。VarianceMin = 0.1; |
td3opt.ExplorationModel。StandardDeviationMin= sqrt(0.1); |
td3opt.TargetPolicySmoothModel。方差= 0.5; |
td3opt.TargetPolicySmoothModel。StandardDeviation = sqrt (0.5); |
td3opt.TargetPolicySmoothModel。VarianceDecayRate = 0.1; |
td3opt.TargetPolicySmoothModel。StandardDeviationDecayRate= 0.1; |
td3opt.TargetPolicySmoothModel。VarianceMin = 0.1; |
td3opt.TargetPolicySmoothModel。StandardDeviationMin= sqrt(0.1); |
另请参阅
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。