rlDQNAgentOptions
DQN代理的选项
描述
使用一个rlDQNAgentOptions
对象指定深度Q-network (DQN)代理的选项。要创建DQN代理,请使用rlDQNAgent
.
有关详细信息,请参见深Q-Network代理.
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
创建
属性
UseDoubleDQN
- - - - - -使用双DQN的标志
真正的(默认)|假
使用双DQN更新值函数目标的标志,指定为一个逻辑值。对于大多数应用程序集UseDoubleDQN
来“上”
.有关详细信息,请参见深Q-Network代理.
EpsilonGreedyExploration
- - - - - -贪婪探索选项
EpsilonGreedyExploration
对象
贪婪搜索选项,指定为EpsilonGreedyExploration
对象,具有以下属性。
财产 | 描述 | 默认值 |
---|---|---|
ε |
概率阈值可以随机选择一个动作,也可以选择使状态-动作值函数最大化的动作。的较大值ε 意味着代理以更高的速率随机探索动作空间。 |
1 |
EpsilonMin |
最小值的ε |
0.01 |
EpsilonDecay |
衰减率 | 0.0050 |
在每个训练时间步的末尾,如果ε
大于EpsilonMin
,然后使用以下公式更新它。
ε=ε* (1-EpsilonDecay)
如果你的代理过于快速地收敛于局部最优,你可以通过增加代理来促进探索ε
.
控件创建后,请使用点符号指定搜索选项rlDQNAgentOptions
对象选择
.例如,将值设置为0.9
.
opt.EpsilonGreedyExploration.Epsilon = 0.9;
SequenceLength
- - - - - -使用RNN时的最大批训练轨迹长度
1
(默认)|正整数
使用递归神经网络对批评家进行批处理时的最大批训练轨迹长度,指定为正整数。该值必须大于1
当使用循环神经网络的批评家和1
否则。
TargetSmoothFactor
- - - - - -目标批评家更新的平滑因子
1 e - 3
(默认)|小于等于1的正标量
目标批评家更新的平滑因子,指定为小于或等于1的正标量。有关详细信息,请参见目标更新方法.
TargetUpdateFrequency
- - - - - -目标批评家更新之间的步骤数
1
(默认)|正整数
目标批评家更新之间的步骤数,指定为正整数。有关详细信息,请参见目标更新方法.
ResetExperienceBufferBeforeTraining
- - - - - -清除经验缓冲区的选项
真正的
(默认)|假
用于在训练前清除经验缓冲区的选项,指定为一个逻辑值。
SaveExperienceBufferWithAgent
- - - - - -保存经验缓冲区的选项
假
(默认)|真正的
保存代理时保存体验缓冲区数据的选项,指定为逻辑值。方法保存候选代理时和保存代理时,此选项都适用保存
函数。
对于某些代理来说,比如那些拥有大量经验缓冲区和基于图像的观察的代理,保存它们的经验缓冲区所需的内存很大。在这种情况下,不保存经验缓冲区的数据,设置SaveExperienceBufferWithAgent
来假
.
如果你计划进一步训练你保存的代理人,你可以从之前的经验缓冲开始训练。在本例中,setSaveExperienceBufferWithAgent
来真正的
.
MiniBatchSize
- - - - - -随机经验小批量的大小
64
(默认)|正整数
随机经验小批量的大小,指定为正整数。在每次训练过程中,agent在计算梯度更新批评家属性时,从经验缓冲区中随机抽取经验。当计算梯度时,大的小批量减少了方差,但增加了计算工作量。
当对批评家使用循环神经网络时,MiniBatchSize
在批次中经历轨迹的数量,其中每个轨迹的长度等于SequenceLength
.
NumStepsToLookAhead
- - - - - -用于估计保单价值的未来奖励数
1
(默认)|正整数
用于估计策略值的未来奖励数,指定为正整数。有关更多信息,请参见[1]的第7章。
N-step Q学习不支持使用循环神经网络的批评家万博1manbetx。在这种情况下,NumStepsToLookAhead
必须1
.
ExperienceBufferLength
- - - - - -经验的缓冲区大小
10000
(默认)|正整数
体验缓冲区大小,指定为正整数。在训练期间,代理使用从缓冲区随机取样的小批量经验来计算更新。
DiscountFactor
- - - - - -折现系数
0.99
(默认)|小于等于1的正标量
在培训期间应用于未来奖励的折扣因子,指定为小于或等于1的正标量。
对象的功能
rlDQNAgent |
深度q -网络强化学习agent |
例子
创建DQN代理选项对象
这个示例展示了如何创建DQN代理选项对象。
创建一个rlDQNAgentOptions
对象,该对象指定代理小批量大小。
选择= rlDQNAgentOptions (“MiniBatchSize”48)
EpsilonGreedyExploration: [1x1 rl.option.]EpsilonGreedyExploration] TargetSmoothFactor: 1.0000e-03 TargetUpdateFrequency: 1 ResetExperienceBufferBeforeTraining: 1 SaveExperienceBufferWithAgent: 0 SequenceLength: 1 MiniBatchSize: 48 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9900
您可以使用点表示法修改选项。例如,设置座席采样时间为0.5
.
opt.SampleTime = 0.5;
兼容性的考虑
DQN代理的目标更新方法设置已更改
R2020a中行为改变
DQN代理的目标更新方法设置已更改。以下更改需要更新你的代码:
的
TargetUpdateMethod
选项已被移除。现在,DQN代理根据TargetUpdateFrequency
和TargetSmoothFactor
选项值。的默认值
TargetUpdateFrequency
已经从4
来1
.
要使用下列目标更新方法之一,请设置TargetUpdateFrequency
和TargetSmoothFactor
属性显示。
更新方法 | TargetUpdateFrequency |
TargetSmoothFactor |
---|---|---|
平滑 | 1 |
不到1 |
周期 | 大于1 |
1 |
周期性平滑(R2020a中的新方法) | 大于1 |
不到1 |
默认的目标更新配置,它是一个平滑更新,带有TargetSmoothFactor
的价值0.001
,不变。
这个表格显示了一些典型的用法rlDQNAgentOptions
以及如何更新代码以使用新的选项配置。
不推荐 | 推荐 |
---|---|
选择= rlDQNAgentOptions(“TargetUpdateMethod”、“平滑”); |
选择= rlDQNAgentOptions; |
选择= rlDQNAgentOptions(“TargetUpdateMethod”、“周期”); |
选择= rlDQNAgentOptions;opt.TargetUpdateFrequency = 4;opt.TargetSmoothFactor = 1; |
选择= rlDQNAgentOptions;opt.TargetUpdateMethod =“周期性”;opt.TargetUpdateFrequency = 5; |
选择= rlDQNAgentOptions;opt.TargetUpdateFrequency = 5;opt.TargetSmoothFactor = 1; |
参考文献
[1] Sutton, Richard S.和Andrew G. Barto。强化学习:导论.第二版。自适应计算和机器学习。马萨诸塞州剑桥:麻省理工学院出版社,2018。
另请参阅
主题
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
请选择中国网站(中文或英文),以获得最佳网站性能。MathWorks的其他国家站点并没有针对您所在位置的访问进行优化。