rlTrainingOptions

训练强化学习代理的选项

描述

使用一个rlTrainingOptions对象指定代理的训练选项。要训练特工,请使用火车

有关代理培训和模拟的更多信息,请参见训练强化学习代理

创建

描述

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

例子

选择= rlTrainingOptions (名称,值创建具有指定的训练选项集特性使用一个或多个名称-值对参数。

特性

展开全部

训练代理的最大剧集数,指定为逗号分隔对组成'maxepisodes'一个正整数。无论终止的其他标准如何,培训在这一剧集后终止。

例子:'maxepisodes',1000

每集运行的最大步骤数,指定为逗号分隔的对,由“MaxStepsPerEpisode”一个正整数。通常,您可以在环境中定义集终止条件。此值是在不满足终止条件时在情节中运行的最大步骤数。

例子:“MaxStepsPerEpisode”,1000年

平均分数、奖励和步数的窗口长度,由逗号分隔的对组成“ScoreAveragingWindowLength”一个正整数。对于以平均值表示的选项,这是平均值中包含的剧集数。例如假设stoptrinatreaincriteria.“AverageReward”,StopTrainingValue是500。当奖励平均超过这个参数指定的剧集数量时,训练终止。

例子:“ScoreAveragingWindowLength”,10

训练终止条件,指定为逗号分隔对组成“StopTrainingCriteria”和下面的字符串之一:

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

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

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

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

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

例子:“StopTrainingCriteria”、“AverageReward”

训练终止条件的临界值,指定为逗号分隔对,由“StopTrainingValue”和一个标量。训练终止当由此指定的终止条件终止stoptrinatreaincriteria.选项等于或超过此值。例如,如果stoptrinatreaincriteria.“AverageReward”,StopTrainingValue是100,那么训练结束时,平均奖励超过特定的情节数量“ScoreAveragingWindowLength”等于或超过100。

例子:“StopTrainingValue”,100年

在培训期间保存代理的条件,指定为逗号分隔对'SaveAgentCriteria'和下面的字符串之一:

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

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

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

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

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

  • “episodecount”—当训练集数等于或超过临界值时保存agent。

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

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

例子:'SaveAgentCriteria',“EpisodeReward”

保存代理的条件临界值,指定为逗号分隔对“SaveAgentValue”“没有”或数字标量。

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

例子:“SaveAgentValue”,100年

保存代理的文件夹,指定为逗号分隔的配对组成“SaveAgentDirectory”和一个字符串或字符向量。文件夹名称可以包含完整路径或相对路径。当事件发生时,满足条件SaveAgentCriteriaSaveAgentValue.选项时,该软件将代理保存在此文件夹中的mat文件中。如果该文件夹不存在,火车创造它。什么时候SaveAgentCriteria“没有”,此选项忽略了火车不创建文件夹。

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

使用并行训练的标志,指定为逗号分隔的对,由“UseParallel”和任何一种真正的.将此选项设置为真正的配置使用并行计算的培训。要指定并行训练的选项,请使用ParallelizationOptions财产。

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

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

例子:“UseParallel”,真的

并行化选项来控制并行培训,指定为逗号分隔对组成'并行化选项'和一个平行训练对象。有关使用并行计算进行培训的更多信息,请参见训练强化学习代理

平行训练对象具有以下属性,您可以在创建rlTrainingOptions对象。

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

  • “同步”- 采用parpool对可用的工作人员进行同步培训。在这种情况下,workers暂停执行,直到所有workers完成。主机根据所有worker的结果更新actor和critic参数,并将更新后的参数发送给所有worker。

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

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

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

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

请注意

AC和PG代理只接受DataToSendFromWorkers = "渐变".DQN和DDPG代理只接受DataToSendFromworkers =“经验”

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

请注意

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

  • PG代理只接受StepUntilDataIsSent = 1

随机化初始化工人,指定为一个如下:

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

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

  • 矢量 - 手动指定每项工作的随机种子。矢量中的元素数必须与工人数量相匹配。

将模型和工作区变量发送给并行工作人员,指定为“在”“关闭”.当选择是“在”,主机发送模型中使用的变量并在基础MATLAB中定义®工作空间。

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

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

在训练结束后运行的函数,指定为没有输入参数的函数的句柄。您可以编写此函数来清理工作空间或在培训结束后执行其他处理。

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

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

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

对象的功能

火车 在指定的环境中列车钢筋学习代理

例子

全部折叠

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

trainOpts = rlTrainingOptions (...'maxepisodes',1000,...“MaxStepsPerEpisode”,1000,...“StopTrainingCriteria”“AverageReward”...“StopTrainingValue”,480,...'verbose',真的,...“阴谋”“训练进步”
trainOpts = rlTrainingOptions with properties: MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria: "AverageReward" StopTrainingValue: 480 SaveAgentCriteria: "none" SaveAgentValue: "none" UseParallel: 0 ParallelizationOptions: [1×1 rl.option. value .]SaveAgentDirectory: "savedAgents" StopOnError: "on" Verbose: 1 plot: "training-progress"

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

训练= rltringOptions;训练.maxepisodes = 1000;训练.maxstepperepisode = 1000;训练.StoptrainingCriteria =“AverageReward”;trainOpts。StopTrainingValue = 480;trainOpts。详细的= true; trainOpts.Plots =“训练进步”;训练
trainOpts = rlTrainingOptions with properties: MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria: "AverageReward" StopTrainingValue: 480 SaveAgentCriteria: "none" SaveAgentValue: "none" UseParallel: 0 ParallelizationOptions: [1×1 rl.option. value .]SaveAgentDirectory: "savedAgents" StopOnError: "on" Verbose: 1 plot: "training-progress"

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

另请参阅

介绍了R2019a