rlTrainingOptions
训练强化学习代理的选项
创建
属性
MaxEpisodes
- - - - - -训练代理的最大集数
500
(默认)|正整数
训练代理的最大集数,指定为正整数。不论终止的其他标准如何,培训在MaxEpisodes
.
例子:“MaxEpisodes”,1000年
MaxStepsPerEpisode
- - - - - -每集运行的最大步数
500
(默认)|正整数
每集运行的最大步数,指定为正整数。通常,您可以在环境中定义插曲终止条件。此值是在不满足其他终止条件的情况下在该集中运行的最大步数。
例子:“MaxStepsPerEpisode”,1000年
ScoreAveragingWindowLength
- - - - - -求平均的窗口长度
5
(默认)|正整数标量|正整数向量
用于平均每个代理的分数、奖励和步数的窗口长度,指定为标量或向量。
如果培训环境包含单个代理,请指定ScoreAveragingWindowLength
作为一个标量。
如果训练环境是一个多agent的Simulink金宝app®环境中,指定一个标量将相同的窗口长度应用于所有代理。
若要为每个代理使用不同的窗口长度,请指定ScoreAveragingWindowLength
作为一个向量。在这种情况下,向量中元素的顺序对应于环境创建期间使用的代理的顺序。
对于以平均值表示的期权,ScoreAveragingWindowLength
是包含在平均值中的集数。例如,如果StopTrainingCriteria
是“AverageReward”
,StopTrainingValue
是500
对于给定的智能体,那么对于该智能体,当平均奖励超过中指定的集数时,训练结束ScoreAveragingWindowLength
等于或超过500
.对于其他特工,培训持续到:
所有代理都达到了停止标准。
集数达到
MaxEpisodes
.单击停止训练停止训练按钮或按下ctrl - c在MATLAB中®命令行。
例子:“ScoreAveragingWindowLength”,10
StopTrainingCriteria
- - - - - -培训终止条件
“AverageSteps”
(默认)|“AverageReward”
|“EpisodeCount”
|……
培训终止条件,指定为以下字符串之一:
“AverageSteps”
-当每集跑步平均步数等于或超过选项指定的临界值时停止训练StopTrainingValue
.平均值是通过窗口计算的“ScoreAveragingWindowLength”
.“AverageReward”
-当跑步平均奖励等于或超过临界值时停止训练。“EpisodeReward”
-当当前章节奖励等于或超过临界值时停止训练。“GlobalStepCount”
—当所有章节的总步数(代理调用的总次数)等于或超过临界值时,停止训练。“EpisodeCount”
—当训练次数大于或等于临界值时,停止训练。
例子:“StopTrainingCriteria”、“AverageReward”
StopTrainingValue
- - - - - -训练终止条件的临界值
500
(默认)|标量|向量
训练终止条件的临界值,指定为标量或向量。
如果培训环境包含单个代理,请指定StopTrainingValue
作为一个标量。
如果训练环境是一个多代理的Simulink环境,请指定一个标量,以便对所有代理应用相同的终金宝app止条件。若要为每个代理使用不同的终止条件,请指定StopTrainingValue
作为一个向量。在这种情况下,向量中元素的顺序对应于环境创建期间使用的代理的顺序。
类指定的终止条件时,训练结束StopTrainingCriteria
选项等于或超过此值。对于其他特工,培训将持续到:
所有代理都达到了停止标准。
集数达到
maxEpisodes
.单击停止训练停止训练按钮或按下ctrl - c在MATLAB命令行。
例如,如果StopTrainingCriteria
是“AverageReward”
,StopTrainingValue
是One hundred.
对于给定的智能体,那么对于该智能体,当平均奖励超过中指定的集数时,训练结束ScoreAveragingWindowLength
等于或超过One hundred.
.
例子:“StopTrainingValue”,100年
SaveAgentCriteria
- - - - - -培训时保存座席的条件
“没有”
(默认)|“EpisodeReward”
|“AverageReward”
|“EpisodeCount”
|……
培训期间保存代理的条件,指定为以下字符串之一:
“没有”
训练过程中不要保存任何特工。“EpisodeReward”
-当当前章节的奖励值等于或超过临界值时,保存代理。“AverageSteps”
—当每集运行的平均步数等于或超过该选项指定的临界值时,保存代理StopTrainingValue
.平均值是通过窗口计算的“ScoreAveragingWindowLength”
.“AverageReward”
-当所有章节的平均奖励等于或超过临界值时保存代理。“GlobalStepCount”
—当所有章节的总步数(调用代理的总次数)等于或超过临界值时,保存代理。“EpisodeCount”
—当训练集数大于或等于临界值时,保存座席。
设置此选项以存储根据您指定的标准表现良好的候选代理。当您将此选项设置为“没有”
,软件设置SaveAgentValue
选项为500。您可以更改该值以指定保存代理的条件。
例如,假设您希望存储产生等于或超过100的插曲奖励的任何代理以供进一步测试。为此,设置SaveAgentCriteria
来“EpisodeReward”
并设置SaveAgentValue
选项为100。当一个情节奖励等于或超过100时,火车
属性指定的文件夹中的MAT文件中保存相应的代理SaveAgentDirectory
选择。调用MAT文件AgentK.mat
,在那里K
对应的集数。代理存储在MAT文件中saved_agent
.
例子:“SaveAgentCriteria”、“EpisodeReward”
SaveAgentValue
- - - - - -保存代理的条件的临界值
“没有”
(默认)|500|标量|向量
保存代理的条件的临界值,指定为标量或向量。
如果培训环境包含单个代理,请指定SaveAgentValue
作为一个标量。
如果训练环境是一个多代理的Simulink环境,请指定一个标量,以便将相同的保存条件应用到金宝app每个代理。若要在满足特定条件时保存代理,请指定SaveAgentValue
作为一个向量。在这种情况下,向量中元素的顺序对应于创建环境时使用的代理的顺序。当满足保存代理的条件时,所有代理都保存在同一个MAT文件中。
指定保存候选代理的条件时使用SaveAgentCriteria
时,软件将该值设置为500。更改该值以指定保存代理的条件。看到SaveAgentCriteria
选项以获取更多详细信息。
例子:“SaveAgentValue”,100年
SaveAgentDirectory
- - - - - -保存代理的文件夹
“savedAgents”
(默认)|字符串|特征向量
保存代理的文件夹,指定为字符串或字符向量。文件夹名称可以包含完整路径或相对路径。类指定的条件下发生的事件SaveAgentCriteria
而且SaveAgentValue
选项,软件将代理保存在这个文件夹中的一个MAT文件中。如果文件夹不存在,火车
创建它。当SaveAgentCriteria
是“没有”
,该选项将被忽略火车
不创建文件夹。
例子:'SaveAgentDirectory', pwd + "\run1\Agents"
UseParallel
- - - - - -使用并行训练的标志
假
(默认)|真正的
使用并行训练的标志,指定为逻辑
.将此选项设置为真正的
将训练配置为使用并行处理来模拟环境,从而支持使用多核、处理器、计算机集群或云资源来加速训练。要指定并行训练的选项,请使用ParallelizationOptions
财产。
当UseParallel
是真正的
其次是DQN、DDPG、TD3和SACNumStepsToLookAhead
属性或相应的代理选项对象必须设置为1
,否则产生错误。这保证了体验是连续存储的。在并行训练AC代理时,如果StepsUntilDataIsSent
的属性ParallelizationOptions
对象设置为与NumStepToLookAhead
AC代理选项对象。
注意,如果你想用本地GPU加速深度神经网络计算(比如梯度计算、参数更新和预测),你不需要设置UseParallel
为true。相反,在创建参与者或评论家表示时,使用rlRepresentationOptions
对象,其中UseDevice
选项设置为“图形”
.使用并行计算或GPU需要并行计算工具箱™软件。另外还需要使用计算机集群或云资源MATLAB并行服务器.有关使用多核处理器和gpu进行训练的更多信息,请参见使用并行计算和图形处理器训练代理.
例子:“UseParallel”,真的
ParallelizationOptions
- - - - - -控制并行训练的选项
ParallelTraining
对象
控制并行训练的并行化选项,指定为ParallelTraining
对象。有关使用并行计算进行训练的更多信息,请参见训练强化学习代理.
的ParallelTraining
对象具有以下属性,可以在创建rlTrainingOptions
对象。
模式
—并行计算模式
“同步”
(默认)|“异步”
并行计算模式,指定为下列之一:
“同步”
——使用parpool
对现有员工进行同步培训。在这种情况下,工作线程暂停执行,直到所有工作线程都完成。主机根据来自所有工作者的结果更新参与者和评论家参数,并将更新后的参数发送给所有工作者。注意,基于梯度的并行化需要同步训练DataToSendFromWorkers
设置为“梯度”
然后模式
必须设置为“同步”
.“异步”
——使用parpool
对可用的工人进行异步培训。在这种情况下,工作线程在完成任务后立即将数据发送回主机,并从主机接收更新的参数。然后工人们继续他们的工作。
WorkerRandomSeeds
-工人的随机化初始化
1
(默认)|2
|向量
工人的随机化初始化,指定为以下之一:
1
-给每个worker分配一个唯一的随机种子。种子的值是工作者ID。2
-不要给工人分配随机的种子。矢量-手动指定每个工人的随机种子。vector中元素的数量必须与worker的数量相匹配。
TransferBaseWorkspaceVariables
-选项发送模型和工作空间变量到并行工作者
“上”
(默认)|“关闭”
选项,将模型和工作区变量发送给并行工作者,指定为“上”
或“关闭”
.当选项是“上”
,主机将在模型中使用并在基本MATLAB工作空间中定义的变量发送给工作者。
AttachedFiles
-附加到并行池的其他文件
[]
(默认)| string |字符串数组
附加到并行池的其他文件,指定为字符串或字符串数组。
SetupFcn
-训练开始前运行的功能
[]
(默认)|函数句柄
函数,指定为没有输入参数的函数的句柄。该函数在培训开始前为每个员工运行一次。编写这个函数来执行在训练之前需要的任何处理。
CleanupFcn
—训练结束后运行的功能
[]
(默认)|函数句柄
函数在训练结束后运行,指定为没有输入参数的函数的句柄。您可以编写此函数以在训练结束后清理工作区或执行其他处理。
详细的
- - - - - -在命令行上显示训练进度
假
(0)(默认)|真正的
(1)
在命令行上显示训练进度,指定为逻辑值假
(0)或真正的
(1).设置为真正的
在训练期间将每个训练集的信息写入MATLAB命令行。
StopOnError
- - - - - -发生错误时停止训练的选项
“上”
(默认)|“关闭”
选项,在一集期间发生错误时停止训练,指定为“上”
或“关闭”
.当这个选项是“关闭”
时,错误被捕获并返回SimulationInfo
的输出火车
,训练继续到下一集。
情节
- - - - - -选项显示训练进度与插曲管理器
“训练进步”
(默认)|“没有”
选项,使用事件管理器显示培训进度,指定为“训练进步”
或“没有”
.默认情况下,调用火车
打开强化学习插曲管理器,它以图形和数字的方式显示有关训练进度的信息,例如每集的奖励、平均奖励、插曲数和总步数。(有关更多信息,请参见火车
)。若要关闭此显示,请将此选项设置为“没有”
.
对象的功能
火车 |
在指定的环境中训练强化学习代理 |
例子
配置培训选项
创建一个用于训练强化学习代理的选项集。将最大集数和每集最大步数设置为1000。设置当平均奖励等于或超过480时停止训练的选项,并打开命令行显示和Reinforcement Learning Episode Manager以显示训练结果。在创建选项集时,可以使用名称-值对参数设置选项。没有显式设置的任何选项都有默认值。
trainOpts = rlTrainingOptions(...“MaxEpisodes”, 1000,...“MaxStepsPerEpisode”, 1000,...“StopTrainingCriteria”,“AverageReward”,...“StopTrainingValue”, 480,...“详细”,真的,...“阴谋”,“训练进步”)
trainOpts = rlTrainingOptions与属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria: "AverageReward" StopTrainingValue: 480 SaveAgentCriteria: "none" SaveAgentValue: "none" SaveAgentDirectory: "savedAgents" Verbose: 1情节:"training-progress" StopOnError: "on" UseParallel: 0 parallelationoptions: [1x1 rl.option.ParallelTraining]
或者,创建一个默认选项集,并使用点表示法更改一些值。
trainOpts = rlTrainingOptions;trainOpts。MaxEpisodes = 1000;trainOpts。MaxStepsPerEpisode = 1000;trainOpts。StopTrainingCriteria =“AverageReward”;trainOpts。StopTrainingValue = 480;trainOpts。详细的= true; trainOpts.Plots =“训练进步”;trainOpts
trainOpts = rlTrainingOptions与属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria: "AverageReward" StopTrainingValue: 480 SaveAgentCriteria: "none" SaveAgentValue: "none" SaveAgentDirectory: "savedAgents" Verbose: 1情节:"training-progress" StopOnError: "on" UseParallel: 0 parallelationoptions: [1x1 rl.option.ParallelTraining]
您现在可以使用trainOpts
类的输入参数火车
命令。
为培训配置并行计算选项
若要打开并行计算以训练强化学习代理,请设置UseParallel
培训选项真正的
.
trainOpts = rlTrainingOptions(UseParallel=true);
属性的字段,以配置并行训练trainOpts。ParallelizationOptions
.例如,指定异步训练模式:
trainOpts.ParallelizationOptions.Mode =“异步”;trainOpts。ParallelizationOptions
ans = ParallelTraining with properties: Mode: "async" WorkerRandomSeeds: -1 TransferBaseWorkspaceVariables: "on" AttachedFiles: [] SetupFcn: [] CleanupFcn: []
您现在可以使用trainOpts
类的输入参数火车
使用并行计算执行训练的命令。
配置A3C培训选项
要使用异步A3C (advantage actor-critic)方法训练代理,必须适当地设置代理和并行训练选项。
创建AC座席时,需要设置NumStepsToLookAhead
值大于1
.常见的价值观有64
而且128
.
agentOpts = rlACAgentOptions(NumStepsToLookAhead=64);
使用agentOpts
创建代理时。或者,首先创建代理,然后修改它的选项,包括稍后使用点表示法的actor和批评家选项。
配置训练算法以使用异步并行训练。
trainOpts = rlTrainingOptions(UseParallel=true);trainOpts.ParallelizationOptions.Mode =“异步”;
配置工作者将梯度数据返回给主机。此外,设置工作人员将数据发送回主机之前的步数,以匹配要提前查看的步数。
trainOpts.ParallelizationOptions.DataToSendFromWorkers =...“梯度”;trainOpts.ParallelizationOptions.StepsUntilDataIsSent =...agentOpts.NumStepsToLookAhead;
使用trainOpts
当训练你的特工时。
有关异步优势行动者-评论家代理训练的示例,请参见用并行计算训练交流代理平衡车杆系统.
版本历史
在R2019a中引入R2022a:训练并行化选项:DataToSendFromWorkers
而且StepsUntilDataIsSent
属性不再活动
房地产DataToSendFromWorkers
的ParallelizationOptions
对象不再活动,将在将来的版本中删除。从工人发送给学习者的数据现在根据代理类型自动确定。
房地产StepsUntilDataIsSent
的ParallelizationOptions
对象不再活动,将在将来的版本中删除。现在,每节课结束时,工作人员会将数据发送给学习者。
R2022a:rlTrainingOptions
不建议多代理培训
rlTrainingOptions
不建议在多代理环境中同时训练代理。使用rlMultiAgentTrainingOptions
代替。
rlMultiAgentTrainingOptions
是专门为多智能体强化学习而构建的,并允许您根据共同的学习策略对智能体进行分组,并指定它们的学习是集中的(即组中的所有智能体共享经验)还是分散的(智能体不共享经验),而rlTrainingOptions
只允许去中心化学习。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。