主要内容

rlTrainingOptions

培训强化学习代理选项

描述

使用一个rlTrainingOptions对象指定的培训选择了一个代理。要培养一个代理,使用火车

有关培训代理的更多信息,请参见火车强化学习代理

创造

描述

训练= rltringOptions.返回培训钢筋学习代理的默认选项。使用培训选项为培训会话指定参数,例如培训的最大剧集数,停止培训的标准,保存代理的标准以及使用并行计算的选项。配置选项后,使用训练作为输入参数火车

示例

选择= rlTrainingOptions(名称,值创建培训选项集并设置对象属性使用一个或多个名称 - 值对的参数。

属性

展开所有

训练代理的最大剧集数,指定为正整数。无论其他终止标准如何,培训在结束后终止MaxEpisodes

示例:'maxepisodes',1000

每次集中运行的最大步数为正整数。通常,您在环境中定义剧集终端条件。如果不满足这些终止条件,则该值是在集中运行的最大步骤数。

示例:'MaxStepsPerEpisode',1000

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

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

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

若要为每个代理使用不同的窗口长度,请指定ScoreAveragingWindowLength作为载体。在这种情况下,向量中的元素的顺序对应于环境创建期间使用的代理的顺序。

有关平均值表示的选项,ScoreAveragingWindowLength是平均值中包含的剧集数。举例来说,如果stoptrinatreaincriteria.“AverageReward”,StopTrainingValue500.对于给定的代理,那么对于该代理,训练终止当平均奖励超过所指定的集中的剧集数量时ScoreAveragingWindowLength等于或超过500..对于其他代理商来说,培训持续到:

  • 所有特工都达到了停止标准。

  • 集河段数MaxEpisodes

  • 可以停一下训练停止培训按钮集管理器或按按Ctrl-C在MATLAB®命令行。

示例:'ScoreAveragingWindowLength',10

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

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

  • “AverageReward”- 当运行平均奖励等于或超过临界值时停止培训。

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

  • “GlobalStepCount”- 当所有剧集中的步骤总数(调用代理程序的总次数)等于或超过临界值时,停止培训。

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

示例:'stoptriningcriteria',“AverageReward”

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

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

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

对于给定的agent,当指定的终止条件达到时,训练结束stoptrinatreaincriteria.选项等于或超过此值。对于其他代理商来说,培训持续到:

  • 所有特工都达到了停止标准。

  • 集河段数maxEpisodes

  • 可以停一下训练停止培训按钮集管理器或按按Ctrl-C在matlab命令行。

举例来说,如果stoptrinatreaincriteria.“AverageReward”,StopTrainingValueOne hundred.对于给定的代理,那么对于该代理,训练终止当平均奖励超过所指定的集中的剧集数量时ScoreAveragingWindowLength等于或超过One hundred.

示例:'StopTrainingValue',100

培训期间保存代理的条件,指定为以下字符串之一:

  • “无”- 在培训期间不要保存任何代理商。

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

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

  • “AverageReward”- 保存时对所有情节的运行平均报酬等于或超过临界值的代理。

  • “GlobalStepCount”—当所有剧集中的总步骤数(调用代理的总次数)等于或超过临界值时,保存代理。

  • “episodecount”- 保存在训练时发生的次数等于或超过临界值的代理。

将此选项设置为存储表现良好,根据您指定的条件的候选药物。当此选项设置为以外的值“无”,软件设置了SaveAgentValue.选项到500.您可以更改该值以指定保存代理的条件。

例如,假设您要存储进一步测试任何产生等于或超过100的剧集奖励的代理。要执行此操作SaveAgentCriteria到目前为止“EpisodeReward”并设置SaveAgentValue.申请100.当集奖励等于或超过100时,火车在由此指定的文件夹中保存遥控器中的相应代理SaveAgentDirectory选项。掩码文件被调用Agentk.mat,在哪里K.为对应插曲的个数。代理存储在MAT文件中为saved_agent

示例:'SaveAgentCriteria',“EpisodeReward”

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

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

如果培训环境是多代理Simulink环境,请指定标量以向每个代理应用相同的保存标准。金宝app在符合特定标准时保存代理,指定SaveAgentValue.作为载体。在这种情况下,向量中的元素的顺序对应于在创建环境时使用的代理的顺序。当满足用于保存代理的标准时,所有代理都保存在同一垫文件中。

当您指定保存候选代理的条件时SaveAgentCriteria,软件将此值设置为500.更改值以指定保存代理的条件。看看SaveAgentCriteria选择了解更多细节。

示例:'SaveAgentValue',100

保存代理的文件夹,指定为字符串或字符向量。文件夹名称可以包含完整或相对路径。当发生令人满意的情况时,满足所指定的条件SaveAgentCriteriaSaveAgentValue.选项,该软件将代理保存在此文件夹中的遥控器中。如果文件夹不存在,火车创造它。什么时候SaveAgentCriteria“无”,此选项忽略了火车不创建一个文件夹。

示例:'SaveAgentDirectory',PWD +“\ Run1 \代理”

使用平行训练的标志,指定为逻辑.将此选项设置为真正的提供配置训练使用并行计算。要指定并行培训选项,可使用ParallelizationOptions属性。

使用并行计算需要并行计算工具箱™软件。

有关使用并行计算进行培训的更多信息,请参见火车强化学习代理

示例:“UseParallel”,真的

控制并行训练的并行化选项,指定为平行训练对象。有关使用并行计算进行培训的更多信息,请参见火车强化学习代理

平行训练对象具有以下属性,您可以修改使用在创建后点符号rlTrainingOptions对象。

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

  • “同步”- 使用parpool运行可用工人的同步培训。在这种情况下,工人暂停执行,直到所有工人完成。主机根据所有工人的结果更新Actor和批评者参数,并将更新的参数发送给所有工人。

  • “异步”- 使用parpool在可用工人上运行异步培训。在这种情况下,工作人员一旦完成并接收来自主机的更新参数,就会将其数据发送回主头。然后工人继续他们的任务。

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

  • “经验”- 向主机发送经验数据(观察,行动,奖励,下次观察)。对于具有梯度的代理,主机计算梯度。

  • “渐变”—计算并发送梯度到主机。主机使用梯度更新网络参数。

注意

对于AC和PG代理,必须指定DataToSendFromWorkers.作为“渐变”。

对于DQN,DDPG,PPO,TD3,以及SAC代理,你必须指定DataToSendFromWorkers.作为“经验”。

工人将数据发送到主机并接收更新的参数后的步数,指定为-1或者一个正整数。当该选项为-1时,工作者将等待直到剧集结束,然后将所有步骤数据发送给主机。否则,worker在发送数据之前等待指定的步骤数。

注意

  • AC代理不接受StepsUntilDataIsSent = -1.对于A3C训练,设置stpeptuntildataissent.等于NumStepToLookAheadAC剂的选择。

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

随机函数发生器初始化工作人员,指定为下列之一:

  • -1- 为每个工人分配一个独特的随机种子。种子的价值是工人ID。

  • -2- 不分配随机种子工人。

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

选项将模型和工作区变量发送给并行工作人员,指定为“开”“关闭”.当选项“开”时,主机发送在模型中使用和定义在基座MATLAB工作区工人变量。

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

在培训开始之前运行的功能,指定为函数的句柄,该函数没有输入参数。在培训开始之前,每个工作函数运行一次。写入此功能以在培训之前执行您需要的任何处理。

函数来训练结束,指定为手柄不具有输入参数的函数之后运行。你可以写这个函数清理工作区或训练结束后,自动进行其他处理。

在命令行上显示训练进度,指定为逻辑值(0)或真正的(1)。设为真正的在培训期间将来自每个培训集中的信息写入MATLAB命令行。

选项停止训练时,错误发生在一集,指定为“开”“关闭”.当这个选项是“关闭”,错误被捕获并返回SimulationInfo输出火车而且培训继续到下一集。

选项显示训练进度与集管理,指定为“训练进步”“无”.默认情况下,调用火车打开钢筋学习剧集管理器,它以图形方式和数字显示有关培训进度的信息,例如对每一集的奖励,平均奖励,剧集数和总步数。(有关更多信息,请参阅火车)。要关闭此显示,请将此选项设置为“无”

对象函数

火车 火车加固规定的环境内学习代理商

例子

崩溃

创建一个用于培训钢筋学习代理的选项。设置剧集的最大数量和每集的最大步骤数为1000.配置当平均奖励等于或超过480时停止培训的选项,然后打开命令行显示和加强学习集管理管理器以显示培训结果.在创建选项组,您可以设置使用名称 - 值对参数的选项。任何选项,你不明确设置有其默认值。

trainOpts = rlTrainingOptions(......'maxepisodes',1000,......'maxstepperepisode',1000,......'StopTrainingCriteria'“AverageReward”......“StopTrainingValue”,480,......'verbose',真的,......“情节”“训练进步”
trainOpts = rlTrainingOptions属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria:“AverageReward”StopTrainingValue: 480 SaveAgentCriteria:“没有一个”SaveAgentValue:“没有”SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”StopOnError:”“UseParallel:0 parallelelizationoptions: [1x1 rl.option.ParallelTraining]

另外,创建一个默认选项设置和使用点记号改变一些价值观。

训练= rltringOptions;训练.maxepisodes = 1000;训练.maxstepperepisode = 1000;训练.StoptrainingCriteria =“AverageReward”;trainOpts.StopTrainingValue = 480;trainOpts.Verbose = TRUE;trainOpts.Plots =“训练进步”;训练
trainOpts = rlTrainingOptions属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria:“AverageReward”StopTrainingValue: 480 SaveAgentCriteria:“没有一个”SaveAgentValue:“没有”SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”StopOnError:”“UseParallel:0 parallelelizationoptions: [1x1 rl.option.ParallelTraining]

你现在可以使用训练的输入参数火车命令。

创建一个options对象,以便在同一环境中同时训练三个代理。

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

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

打开显示的训练结果的命令行显示和强化学习插曲经理都对。在创建选项组,您可以设置使用名称 - 值对参数的选项。任何选项,你不明确设置有其默认值。

trainOpts = rlTrainingOptions(......'maxepisodes',1000,......'maxstepperepisode',1000,......'ScoreAveragingWindowLength',[5 10 15],......'StopTrainingCriteria'“AverageReward”......“StopTrainingValue”,[400 500 600],......'SaveAgentCriteria'“EpisodeReward”......'SaveAgentValue',[100 120 140],......'verbose',真的,......“情节”“训练进步”
训练=带有物业的rltriningOptions:maxepisodes:1000 maxstepperepisode:1000 scoreaveragingwindowlength:[5 10 15] stoptrinatedcriteria:“averagereward”stoptrinaltvalue:[400 500 600] SaveagentCriteria:“EpisodeReward”SaveAgentValue:[100 120 140] SaveAgentDirectory:“Savedagents”vervose:1个绘图:“培训 - 进度”stoponError:“开启”使用平行:0并行化选项:[1x1 rl.option.parallytraining]

另外,创建一个默认选项设置和使用点记号改变一些价值观。

训练= rltringOptions;训练.maxepisodes = 1000;训练.maxstepperepisode = 1000;训练.coreaveragingwindowlength = [5 10 15];训练.StoptrainingCriteria =“AverageReward”;训练.StoptrainingValue = [400 500 600];训练.SaveAgentCriteria =“EpisodeReward”;训练.saveagentValue = [100 120 140];trainOpts.Verbose = TRUE;trainOpts.Plots =“训练进步”;训练
训练=带有物业的rltriningOptions:maxepisodes:1000 maxstepperepisode:1000 scoreaveragingwindowlength:[5 10 15] stoptrinatedcriteria:“averagereward”stoptrinaltvalue:[400 500 600] SaveagentCriteria:“EpisodeReward”SaveAgentValue:[100 120 140] SaveAgentDirectory:“Savedagents”vervose:1个绘图:“培训 - 进度”stoponError:“开启”使用平行:0并行化选项:[1x1 rl.option.parallytraining]

您可以指定一个标量,以同样的标准适用于所有代理。例如,使用的窗口长度10所有三个代理商。

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

你现在可以使用训练的输入参数火车命令。

另请参阅

在R2019A介绍