主要内容

RL培训选项

培训加固学习代理的选项

描述

使用一个RL培训选项对象为代理商指定培训选项。培训代理人,使用火车

有关培训代理的更多信息,请参阅火车加固学习代理

创建

描述

trainOpts= rlTrainingOptions返回用于训练强化学习代理的默认选项。使用培训选项为培训会话指定参数,例如要培训的最大章节数、停止培训的条件、保存代理的条件和使用并行计算的选项。配置选项后,使用trainOpts的输入参数火车

例子

选择=rlTrainingOptions(名称,价值创建一个训练选项集和集合对象属性使用一个或多个名称值对参数。

属性

全部展开

训练代理的最大集数,指定为正整数。无论其他终止条件如何,训练将在最大集

例子:“MaxEpisodes”,1000年

每集运行的最大步骤数,指定为正整数。通常,您可以在环境中定义集终止条件。此值是在不满足其他终止条件时在情节中运行的最大步骤数。

例子:'maxstepperepisode',1000

平均每个代理的分数、奖励和步骤数的窗口长度,指定为标量或向量。

如果培训环境包含单个代理,请指定ScoreAveragingWindowLength作为标量。

如果培训环境是一个多代理模拟金宝app®环境中,指定标量以将相同的窗口长度应用于所有代理。

要为每个代理使用不同的窗口长度,请指定ScoreAveragingWindowLength作为一个向量。在本例中,向量中元素的顺序与环境创建期间使用的代理的顺序相对应。

对于以平均值表示的期权,ScoreAveragingWindowLength是包含在平均值中的剧集数量。例如,如果StopTrainingCriteria“平均向上”StopTrainingValue500.对于一个给定的代理,那么对于那个代理,当平均奖励超过了在ScoreAveragingWindowLength等于或超过500..对于其他代理人,继续培训,直至:

  • 所有代理都达到其停止标准。

  • 集数达到最大集

  • 点击时停止培训停止训练Episode Manager或按下的按钮Ctrl-C在MATLAB®命令行。

例子:'scoreaveragingwindowlength',10

训练终止条件,指定为以下字符串之一:

  • “AverageSteps”-当每集的运行平均步数等于或超过选项指定的临界值时,停止训练StopTrainingValue.使用窗口计算平均值'scoreaveragingwindowlength'

  • “平均向上”-当跑步平均奖励等于或超过临界值时停止训练。

  • “EpisodeReward”-当当前情节中的奖励等于或超过临界值时停止训练。

  • “全局步数”—当所有剧集的总步数(调用代理的总次数)等于或超过临界值时停止训练。

  • “EpisodeCount”—当训练集数达到或超过临界值时,停止训练。

例子:“StopTrainingCriteria”、“AverageReward”

训练终止条件的临界值,指定为标量或向量。

如果培训环境包含单个代理,请指定StopTrainingValue作为标量。

如果训练环境是多智能体Simulink环境,则指定一个标量对所有智能体应用相同的终止准则。金宝app若要为每个代理使用不同的终止条件,请指定StopTrainingValue作为向量。在这种情况下,向量中元素的顺序对应于环境创建期间使用的代理的顺序。

对于给定的代理,培训将在StopTrainingCriteria选项等于或超过此值。对于其他代理人,培训继续进行,直到:

  • 所有代理都达到其停止标准。

  • 集数达到maxepisodes.

  • 点击时停止培训停止训练Episode Manager或按下的按钮Ctrl-C在MATLAB命令行。

例如,如果StopTrainingCriteria“平均向上”StopTrainingValue100对于一个给定的代理,那么对于那个代理,当平均奖励超过了在ScoreAveragingWindowLength等于或超过100

例子:'stoptriningvalue',100

条件,指定为以下字符串之一:

  • “没有”-不要在训练中拯救任何特工。

  • “EpisodeReward”-当当前情节中的奖励等于或超过临界值时,保存代理。

  • “AverageSteps”-当每集运行的平均步数等于或超过选项指定的临界值时,保存代理StopTrainingValue.使用窗口计算平均值'scoreaveragingwindowlength'

  • “平均向上”- 当所有剧集的运行平均奖励等于或超过临界值时,保存代理。

  • “全局步数”-当所有事件中的步骤总数(调用代理的总次数)等于或超过临界值时,保存代理。

  • “EpisodeCount”- 当培训剧集的数量等于或超过临界值时保存代理。

设置此选项可存储根据您指定的标准执行良好的候选代理。将此选项设置为以外的值“没有”,软件设置SaveAgentValue选择500。您可以更改该值以指定保存代理的条件。

例如,假设您希望存储任何生成集奖励等于或超过100的代理,以供进一步测试。为此,设置SaveAgentCriteria“EpisodeReward”并设置了SaveAgentValue选择100。当一集奖励等于或超过100时,火车将对应的代理保存到指定文件夹中的MAT文件中SaveAgentDirectory.选择。MAT文件被调用AgentK.mat,在那里K.为对应插曲的个数。代理存储在MAT文件中为saved_agent.

例子:“SaveAgentCriteria”、“EpisodeReward”

保存代理的条件的临界值,指定为标量或向量。

如果培训环境包含单个代理,请指定SaveAgentValue作为标量。

如果训练环境是多智能体Simulink环境,则指定一个标量对每个智能体应用相同的保存准则。金宝app要在满足特定条件时保存代理,请指定SaveAgentValue作为一个向量。在本例中,向量中元素的顺序与创建环境时使用的代理的顺序相对应。当满足保存代理的条件时,所有代理将保存在同一个MAT文件中。

使用指定保存候选代理的条件时SaveAgentCriteria时,软件将此值设置为500。更改该值以指定保存代理的条件。看到SaveAgentCriteria选项以获取更多详细信息。

例子:'SaveagentValue',100

保存的代理程序的文件夹,指定为字符串或字符向量。文件夹名称可以包含完整路径或相对路径。当事件发生时,满足条件SaveAgentCriteriaSaveAgentValue选项时,该软件将代理保存在此文件夹中的MAT文件中。如果该文件夹不存在,火车创建它。当SaveAgentCriteria“没有”,此选项将被忽略火车不创建文件夹。

例子:'SaveAgentDirectory', pwd + "\run1\Agents"

用于使用并行训练的标志,指定为逻辑.将此选项设置为符合事实的将培训配置为使用并行处理来模拟环境,从而允许使用多核、处理器、计算机集群或云资源来加速培训。要指定并行训练的选项,请使用并行化选项财产。

使用指α.符合事实的然后用于DQN,DDPG,TD3和SACNumStepsToLookAhead属性或相应的代理选项对象必须设置为1,否则生成错误。这保证了常见的验证。当AC代理程序并行培训时,如果存在警告StepsUntilDataIsSent财产的并行化选项对象设置为不同的值numsteptolookahead.属性。

请注意,如果要使用本地GPU加速深层神经网络计算(如梯度计算、参数更新和预测),则无需设置使用指α.为真。相反,在创建演员或批评者表示时,使用rlrepresentationOptions.对象,其中UseDevice选项设置为“图形”.使用并行计算或GPU需要并行计算工具箱™软件。另外需要使用计算机集群或云资源MATLAB并行服务器™.有关使用多核处理器和GPU的培训的更多信息,请参阅使用并行计算和GPU训练代理

例子:“UseParallel”,对

用于控制并行训练的并行化选项,指定为ParallelTraining有关使用并行计算进行培训的更多信息,请参阅火车加固学习代理

ParallelTraining对象具有以下属性,您可以在创建后使用点表示法修改RL培训选项对象

并行计算模式,指定为以下方式之一:

  • “同步”——使用parpool.对可用的工作人员进行同步培训。在这种情况下,workers暂停执行,直到所有workers完成。主机根据所有worker的结果更新actor和critic参数,并将更新后的参数发送给所有worker。注意,同步训练对于基于梯度的并行化是必需的DataToSendFromWorkers被设置为“梯度”然后模式必须设置为“同步”

  • “异步”——使用parpool.对可用的工作人员进行异步培训。在这种情况下,工作人员一旦完成并从主机接收到更新的参数,就将数据发送回主机。然后工人们继续他们的工作。

工作人员发送到主机的数据类型,指定为以下字符串之一:

  • “经验”-模拟由工作人员执行,学习由主机执行。具体而言,工作人员针对环境模拟agent,并发送经验数据(观察、行动、奖励、下一次观察,以及指示是否达到终端条件的标志)对于具有梯度的代理,主机根据经验计算梯度,更新网络参数,并将更新后的参数发送回工作人员,以便他们可以针对环境执行新的模拟。

  • “梯度”-模拟和学习都由工人完成。具体来说,工作人员根据环境模拟代理,根据经验计算梯度,并将梯度发送给主机。主机对梯度进行平均,更新网络参数,并将更新后的参数发送给工作人员,以便他们能够针对环境执行新的模拟。这个选项需要同步训练模式设置为“同步”

笔记

对于AC和PG代理,必须指定DataToSendFromWorkers作为“梯度”

对于DQN,DDPG,PPO,TD3和SAC代理,您必须指定DataToSendFromWorkers作为“经验”

工作人员向主机发送数据并接收更新参数的步骤数,指定为1或者一个正整数。当这个选项是1,工人等待直到剧集的末尾,然后向主机发送所有步骤数据。否则,工作人员在发送数据之前等待指定的步骤数。

笔记

  • AC代理不接受stpeptuntildataissent = -1.适用于AC培训,套装StepsUntilDataIsSent等于numsteptolookahead.AC代理选项。

  • 对于PG代理,必须指定stpeptuntildataissent = -1

Workor初始化的工人,指定为以下内容之一:

  • 1-给每个工人分配一个唯一的随机种子。种子的值是worker ID。

  • 2- 请勿将随机种子分配给工人。

  • 向量-手动指定每个工人的随机种子。vector中的元素数量必须与worker的数量匹配。

将模型和工作空间变量发送给并行工作程序的选项,指定为“上”“关”.When the option is“上”,主机将在模型中使用的变量并在基础MATLAB工作区中定义为工人。

附加到并行池的其他文件,指定为字符串或字符串数​​组。

在训练开始前运行的函数,指定为没有输入参数的函数的句柄。该函数在培训开始前对每个工人运行一次。编写这个函数来执行训练之前需要的任何处理。

训练结束后运行的函数,指定为函数的句柄,该函数没有输入参数。您可以在训练终止后写入此功能以清理工作区或执行其他处理。

在命令行上显示训练进度,指定为逻辑值错误的(0)或符合事实的(1)。设置符合事实的在训练期间将每个训练集的信息写入MATLAB命令行。

选项停止训练时,错误发生在一集,指定为“上”“关”.当这个选项是“关”中捕获并返回错误模拟信息输出火车,培训将继续进行到下一集。

使用指定为的Episode Manager显示培训进度的选项“训练进步”“没有”。默认情况下,调用火车打开Reinforcement Learning Episode Manager,它以图形化和数字化的方式显示关于训练进度的信息,例如每个章节的奖励、平均奖励、章节数量和总步骤数。(有关更多信息,请参见火车)要关闭此显示,请将此选项设置为“没有”

对象功能

火车 在指定环境中列车加固学习代理

例子

全部收缩

创建用于训练强化学习代理的选项集。设置最大集数和每集的最大步数为1000。配置选项,当平均奖励等于或超过480时停止训练,并打开命令行显示和Reinforcement Learning Episode Manager来显示训练结果。在创建选项集时,可以使用名称-值对参数设置选项。您未明确设置的任何选项都具有其默认值。

训练= rltrainingOptions(...“MaxEpisodes”, 1000,...“MaxStepsPerEpisode”, 1000,...'stoptrinaincriteria'“平均向上”...“停止训练值”, 480,...“详细”,真的,...'plots'“训练进步”
trainOpts=rlTrainingOptions with properties:MaxSpices:1000 MaxStepRepisode:1000 Score AveragingWindowLength:5 StopTrainingCriteria:“AverageWard”StopTrainingValue:480 SaveAgentCriteria:“none”SaveAgentValue:“none”SaveAgentDirectory:“savedAgents”Verbose:1绘图:“培训进度”StopOner:“开”UseParallel:0并行化选项:[1x1 rl.option.ParallelTraining]

或者,创建一个默认选项集,并使用点符号更改某些值。

trainOpts = rlTrainingOptions;trainOpts。MaxEpisodes = 1000;trainOpts。MaxStepsPerEpisode = 1000;trainOpts。StopTrainingCriteria =“平均向上”;训练.StoptrainingValue = 480;训练。鼠标=真;训练.Plots =.“训练进步”;trainOpts
trainOpts=rlTrainingOptions with properties:MaxSpices:1000 MaxStepRepisode:1000 Score AveragingWindowLength:5 StopTrainingCriteria:“AverageWard”StopTrainingValue:480 SaveAgentCriteria:“none”SaveAgentValue:“none”SaveAgentDirectory:“savedAgents”Verbose:1绘图:“培训进度”StopOner:“开”UseParallel:0并行化选项:[1x1 rl.option.ParallelTraining]

您现在可以使用trainOpts的输入参数火车命令。

创建一个选项对象,用于在同一环境中同时培训三个代理。

设置最大剧集数和每集的最大步骤1000.配置选项,当第一个代理的平均奖励超过5集或超过400时停止训练,当第二个代理的平均奖励超过400时停止训练10每集等于或超过500集,第三个是平均奖励超过15集等于或超过600集。代理的顺序是环境创建期间使用的顺序。

当当前情节中第一个代理的奖励超过100时,或者当第二个代理的奖励超过120时,第三个代理的奖励等于或超过140时,保存代理。

打开命令行显示和强化学习剧集管理器,以显示培训结果。在创建选项集时,可以使用名称-值对参数设置选项。您未明确设置的任何选项都具有其默认值。

训练= rltrainingOptions(...“MaxEpisodes”, 1000,...“MaxStepsPerEpisode”, 1000,...'scoreaveragingwindowlength'(5 10 15),...'stoptrinaincriteria'“平均向上”...“停止训练值”(400 500 600),...“SaveAgentCriteria”“EpisodeReward”...'SaveagentValue'(100 120 140),...“详细”,真的,...'plots'“训练进步”
trainOpts = rlTrainingOptions属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: [5 10 15] StopTrainingCriteria:“AverageReward”StopTrainingValue: [400 500 600] SaveAgentCriteria:“EpisodeReward”SaveAgentValue: [100 120 140] SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”StopOnError:"on" UseParallel: 0 parallelationoptions: [1x1 rl.option.ParallelTraining]

或者,创建一个默认选项集,并使用点符号更改某些值。

trainOpts = rlTrainingOptions;trainOpts。MaxEpisodes = 1000;trainOpts。MaxStepsPerEpisode = 1000;trainOpts。ScoreAveragingWindowLength = [5 10 15];trainOpts。StopTrainingCriteria =“平均向上”;trainOpts。StopTrainingValue = [400 500 600];trainOpts。SaveAgentCriteria =“EpisodeReward”;trainOpts。SaveAgentValue = [100 120 140];训练。鼠标=真;训练.Plots =.“训练进步”;trainOpts
trainOpts = rlTrainingOptions属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: [5 10 15] StopTrainingCriteria:“AverageReward”StopTrainingValue: [400 500 600] SaveAgentCriteria:“EpisodeReward”SaveAgentValue: [100 120 140] SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”StopOnError:"on" UseParallel: 0 parallelationoptions: [1x1 rl.option.ParallelTraining]

您可以指定标量以向所有代理应用相同的标准。例如,使用窗口长度10三个探员都有。

trainOpts。ScoreAveragingWindowLength = 10
trainOpts=rlTrainingOptions with properties:MaxSections:1000 MaxStepRepisode:1000 Score AveragingWindowLength:10 StopTraining标准:“AverageWard”StopTraining值:[400 500 600]SaveAgentCriteria:“EpiodeReward”SaveAgentValue:[100 120 140]SaveAgentDirectory:“savedAgents”详细描述:1绘图:“培训进度”StopOner:“开”UseParallel:0并行化选项:[1x1 rl.option.ParallelTraining]

您现在可以使用trainOpts的输入参数火车命令。

也可以看看

在R2019A介绍