rlTD3AgentOptions
描述
使用一个rlTD3AgentOptions
对象指定选项twin-delayed深决定性策略梯度(TD3)代理。创建一个TD3代理,使用rlTD3Agent
。
更多信息见Twin-Delayed深确定性(TD3)政策梯度代理。
更多信息在不同类型的强化学习代理,看看强化学习代理。
创建
属性
ExplorationModel
- - - - - -探索噪声模型的选择
GaussianActionNoise
对象(默认)|OrnsteinUhlenbeckActionNoise
对象
噪声模型选项,指定为一个GaussianActionNoise
对象或一个OrnsteinUhlenbeckActionNoise
对象。关于噪声模型的更多信息,请参阅噪声模型。
代理与多个操作,如果操作有不同的范围和单位,每个操作可能需要不同的噪声模型参数。如果有类似的行为范围和单位,你可以设置噪声参数为所有操作相同的值。
例如,代理的两个动作,每个动作到另一个值的标准偏差时使用相同的衰变率两个标准差。
选择= rlTD3AgentOptions;opt.ExplorationModel。StandardDeviation= [0.1 0.2]; opt.ExplorationModel.StandardDeviationDecayRate = 1e-4;
使用Ornstein-Uhlenbeck动作噪声,首先创建一个默认的OrnsteinUhlenbeckActionNoise
对象。然后,指定任何默认使用点符号模型属性。
选择= rlTD3AgentOptions;opt.ExplorationModel = rl.option.OrnsteinUhlenbeckActionNoise;opt.ExplorationModel。StandardDeviation= 0.05;
TargetPolicySmoothModel
- - - - - -目标平滑噪声模型的选择
GaussianActionNoise
对象
目标平滑噪声模型选项,指定为一个GaussianActionNoise
对象。这个模型可以帮助政策利用行动核反应能量高的估计。关于噪声模型的更多信息,请参阅噪声模型。
代理与多个操作,如果操作有不同的范围和单位,每个操作可能需要不同的平滑噪声模型参数。如果有类似的行为范围和单位,你可以设置噪声参数为所有操作相同的值。
例如,代理的两个动作,每个动作到另一个值的标准偏差时使用相同的衰变率两个标准差。
选择= rlTD3AgentOptions;opt.TargetPolicySmoothModel。StandardDeviation= [0.1 0.2]; opt.TargetPolicySmoothModel.StandardDeviationDecayRate = 1e-4;
PolicyUpdateFrequency
- - - - - -许多步骤之间的政策更新
2
(默认)|正整数
许多步骤之间政策更新,指定为一个正整数。
ActorOptimizerOptions
- - - - - -演员优化器选择
rlOptimizerOptions
对象
演员优化选项,指定为一个rlOptimizerOptions
对象。它允许您指定学习速率等演员的训练参数的估计值,梯度阈值,以及优化算法及其参数。有关更多信息,请参见rlOptimizerOptions
和rlOptimizer
。
CriticOptimizerOptions
- - - - - -评论家优化器选择
rlOptimizerOptions
对象
评论家优化选项,指定为一个rlOptimizerOptions
对象。它允许您指定训练参数的评论家接近者,如学习速率梯度阈值,以及优化算法及其参数。有关更多信息,请参见rlOptimizerOptions
和rlOptimizer
。
BatchDataRegularizerOptions
- - - - - -批量数据调整选项
[]
(默认)|rlBehaviorCloningRegularizerOptions
对象
批处理数据调整选项,指定为一个rlBehaviorCloningRegularizerOptions
对象。这些选项通常用于代理离线训练,从现有的数据。如果你离开这个选项空,使用不规范。
有关更多信息,请参见rlBehaviorCloningRegularizerOptions
。
例子:opt.BatchDataRegularizerOptions = rlBehaviorCloningRegularizerOptions (BehaviorCloningRegularizerWeight = 10)
TargetSmoothFactor
- - - - - -平滑系数为目标的演员和评论家更新
0.005
(默认)|积极的标量小于或等于1
平滑系数为目标的演员和评论家更新,指定为一个积极的标量小于或等于1。有关更多信息,请参见目标更新方法。
TargetUpdateFrequency
- - - - - -许多步骤之间目标的演员和评论家更新
2
(默认)|正整数
许多步骤之间目标的演员和评论家更新,指定为一个正整数。有关更多信息,请参见目标更新方法。
ResetExperienceBufferBeforeTraining
- - - - - -选择清除缓冲区的经验
假
(默认)|真正的
选择清除缓冲区之前培训经验,指定为一个逻辑值。
SequenceLength
- - - - - -使用RNN时最大batch-training轨迹长度
1
(默认)|正整数
最大batch-training轨迹长度使用递归神经网络时,指定为一个正整数。这个值必须大于1
当使用递归神经网络1
否则。
MiniBatchSize
- - - - - -大小的随机mini-batch经验
64年
(默认)|正整数
大小的随机mini-batch经验,指定为一个正整数。在每次训练集,代理经验的随机样本经验缓冲区时计算梯度更新评论家属性。大型mini-batches减少方差计算梯度但增加计算工作量。
NumStepsToLookAhead
- - - - - -使用未来的奖励数量估计价值的政策
1
(默认)|正整数
使用未来的奖励数量估计的值政策,指定为一个正整数。有关更多信息,请参见[1],第7章。
ExperienceBufferLength
- - - - - -经验的缓冲区大小
10000年
(默认)|正整数
体验缓冲区大小,指定为一个正整数。在培训期间,代理计算更新使用mini-batch经历随机取样的缓冲区。
DiscountFactor
- - - - - -折现系数
0.99
(默认)|积极的标量小于或等于1
折现系数应用于未来的回报在训练,指定为一个积极的标量小于或等于1。
对象的功能
rlTD3Agent |
Twin-delayed深确定性(TD3)政策梯度强化学习代理 |
例子
创建TD3代理的选择对象
创建一个rlTD3AgentOptions
对象,该对象指定mini-batch大小。
选择= rlTD3AgentOptions (MiniBatchSize = 48)
选择= rlTD3AgentOptions属性:ExplorationModel: [1 x1 rl.option。GaussianActionNoise] TargetPolicySmoothModel: [1 x1 rl.option。GaussianActionNoise] PolicyUpdateFrequency: 2 ActorOptimizerOptions: [1x1 rl.option.rlOptimizerOptions] CriticOptimizerOptions: [1x2 rl.option.rlOptimizerOptions] BatchDataRegularizerOptions: [] TargetSmoothFactor: 0.0050 TargetUpdateFrequency: 2 ResetExperienceBufferBeforeTraining: 0 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 =意味着+ randn (ActionSize)。* StandardDeviation (k);v (k + 1) =最小(最大(w, LowerLimit) UpperLimit);
初始值v(1)在哪里定义的InitialAction
参数。在每个时间步样本,标准差衰变,如以下代码所示。
decayedStandardDeviation = StandardDeviation (k)。* (1 - StandardDeviationDecayRate);StandardDeviation (k + 1) = max (decayedStandardDeviation StandardDeviationMin);
请注意,StandardDeviation
之间是守恒的一集的结束和下一个的开始。因此,它一直在均匀减少多个事件,直到它到达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) = (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
之间是守恒的一集的结束和下一个的开始。因此,它一直在均匀减少多个事件,直到它到达StandardDeviationMin
。
连续动作信号,设置适当的噪声标准偏差是很重要的,鼓励探索。是很常见的StandardDeviation * sqrt (Ts)
一个值在1%和10%之间的行动范围。
如果你的代理在当地最适条件收敛过快,促进剂探索通过增加噪声的数量;也就是说,通过增加标准差。同时,增加勘探,可以减少StandardDeviationDecayRate
。
引用
[1]萨顿,理查德·S。,安德鲁·g·Barto。强化学习:介绍。第二版。自适应计算和机器学习。剑桥:麻省理工学院出版社,2018年。
版本历史
介绍了R2020aR2022a:默认值的ResetExperienceBufferBeforeTraining
属性改变了
默认值的ResetExperienceBufferBeforeTraining
已经从真正的
来假
。
当创建一个新的TD3代理,如果你想清除缓冲区之前培训经验,您必须指定ResetExperienceBufferBeforeTraining
作为真正的
。例如,在训练之前,设置属性使用点符号。
agent.AgentOptions。ResetExperienceBufferBeforeTraining = true;
此外,您可以设置的属性真正的
在一个rlTD3AgentOptions
对象,并使用这个对象创建TD3代理。
R2021a:属性定义噪声的概率分布GaussianActionNoise
对象已经发生了变化
属性定义高斯行动噪声的概率分布模型已经改变了。这个噪声模型TD3代理用于勘探和平滑的目标政策。
的
方差
财产已被取代StandardDeviation
财产。的
VarianceDecayRate
财产已被取代StandardDeviationDecayRate
财产。的
VarianceMin
财产已被取代StandardDeviationMin
财产。
当一个GaussianActionNoise
噪声加载对象保存从先前的MATLAB版本,的价值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代理使用或者噪声进行探索。
的
方差
财产已经更名为StandardDeviation
。的
VarianceDecayRate
财产已经更名为StandardDeviationDecayRate
。的
VarianceMin
财产已经更名为StandardDeviationMin
。
这些属性的默认值是相同的。当一个OrnsteinUhlenbeckActionNoise
噪声加载对象保存从先前的MATLAB版本,的值方差
,VarianceDecayRate
,VarianceMin
被复制的StandardDeviation
,StandardDeviationDecayRate
,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); |
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命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。