主要内容

rlTrainingOptions

训练强化学习代理的选项

描述

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

有关培训代理的详细信息,请参阅训练强化学习代理

创造

描述

trainOpts=rlTrainingOptions返回培训强化学习代理的默认选项。使用培训选项指定培训课程的参数,例如要培训的最大事件数、停止培训的标准、保存代理的标准以及使用并行计算的选项。配置选项后,使用trainOpts作为的输入参数火车

例子

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

性质

全部展开

发作的最大数目来训练剂,指定为一个正整数。不管其他条件终止,终止训练后MaxEpisodes

例子:“MaxEpisodes”,1000年

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

例子:“MaxStepsPerEpisode”,1000年

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

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

如果培训环境是多智能体Simulink万博1manbetx®环境,指定一个标量相同的窗口长度适用于所有代理。

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

对于以平均值表示的期权,ScoreAveragingWindowLength是包含在平均值中的剧集数量。例如,如果停车训练标准“AverageReward”, 和停止训练值500对于给定的代理,那么对于该代理,训练终止当平均奖励超过所指定的集中的剧集数量时ScoreAveragingWindowLength等于或超过500.对于其他代理人,继续培训,直至:

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

  • 剧集的数量达到MaxEpisodes

  • 你可以通过点击停止训练按钮或按下按Ctrl-C在MATLAB®命令行。

例子:“ScoreAveragingWindowLength”,10

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

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

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

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

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

  • “EpisodeCount”-当训练次数等于或超过临界值时停止训练。

例子:'stoptriningcriteria',“AverageReward”

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

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

如果培训环境是多agent Simulink环境,请指定一个标量以将相同的终止条件应用于所万博1manbetx有agent。若要为每个agent使用不同的终止条件,请指定停止训练值作为一个向量。在本例中,向量中元素的顺序与环境创建期间使用的代理的顺序相对应。

对于给定的试剂,当终止条件中指定由训练端停车训练标准选项等于或超过此值。对于其他代理人,培训继续进行,直到:

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

  • 剧集的数量达到maxEpisodes

  • 你可以通过点击停止训练按钮或按下按Ctrl-C在MATLAB命令行中。

例如,如果停车训练标准“AverageReward”, 和停止训练值100.对于给定的代理,那么对于该代理,训练终止当平均奖励超过所指定的集中的剧集数量时ScoreAveragingWindowLength等于或超过100.

例子:“StopTrainingValue”,100年

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

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

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

  • “AverageSteps”- 保存当每集等号步骤运行平均值数或超过由选项指定的临界值的剂停止训练值.平均值使用窗口计算“ScoreAveragingWindowLength”

  • “AverageReward”-当所有章节的平均奖励等于或超过临界值时,保存代理。

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

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

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

例如,假设您希望存储任何生成集奖励等于或超过100的代理,以供进一步测试。为此,设置SaveAgentCriteria“情节奖励”并设置SaveAgentValue选择100。当一集奖励等于或超过100时,火车将对应的代理保存到指定文件夹中的MAT文件中SaveAgentDirectory选择。MAT文件被调用马蹄铁,在那里K是相应集的编号。代理存储在该MAT文件中,作为saved_agent

例子:“SaveAgentCriteria”、“EpisodeReward”

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

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

如果训练环境是多智能体Simulink环境,则指定一个标量对每个智能体应用相同的保存准则。万博1manbetx要在满足特定条件时保存代理,请指定SaveAgentValue作为向量。在这种情况下,向量中元素的顺序对应于创建环境时使用的代理的顺序。当满足保存代理的条件时,所有代理都保存在同一MAT文件中。

当您指定的条件使用节能候选药物SaveAgentCriteria,软件将此值设置为500。更改此值以指定保存代理的条件。请参阅SaveAgentCriteria选择更多的细节。

例子:“SaveAgentValue”,100年

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

例子:“SaveAgentDirectory”,pwd+“\run1\Agents”

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

需要注意的是,如果你想使用本地GPU来加速深层神经网络计算(如梯度计算,参数更新和预测),你并不需要一套UseParallel为true。相反,在创造你的演员或评论家形象时,使用rlRepresentationOptions对象,其中UseDevice选项设置为“gpu”

使用并行计算或GPU需要并行计算工具箱™软件。另外需要使用计算机集群或云资源MATLAB并行服务器™

有关使用多核处理器和GPU进行培训的更多信息,请参阅使用并行计算和gpu的列车代理

例子:'UseParallel',真

并行化选项来控制并行训练,指定为ParallelTraining目的。有关使用并行计算培训的详细信息,请参阅训练强化学习代理

ParallelTraining对象具有以下属性,您可以在创建rlTrainingOptions目的。

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

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

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

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

  • “经验”- 仿真是由工人进行的,而学习是由主机来执行。具体地,工人对模拟环境中的代理,并发送体验数据(观察,行动,报酬,观测下,以及标志指示终端条件是否已经到达)给主机。对于梯度代理,主机计算梯度从经验,更新网络参数,并发送回更新的参数的工人,他们可以执行对环境产生新的模拟。

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

请注意

对于交流和PG代理,你必须指定DataToSendFromWorkers.作为“梯度”

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

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

请注意

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

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

随机化器初始化工人,指定为以下之一:

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

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

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

选项发送模型和工作区变量并行的工人,被指定为“关于”或者“离开”.当选择是“关于”,主机将模型中使用的变量和MATLAB基本工作空间中定义的变量发送给工作人员。

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

要在培训开始前运行的函数,指定为无输入参数函数的句柄。在培训开始前,每个工作人员运行一次此函数。编写此函数可执行培训前所需的任何处理。

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

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

当一集中发生错误时停止训练的选项,指定为“关于”或者“离开”。当选择此选项时“离开”中捕获并返回错误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: “无” SaveAgentValue: “无” SaveAgentDirectory: “savedAgents” 详细:1个图: “训练进度” STOPONERROR:“接通” UseParallel:0 ParallelizationOptions:[1x1的rl.option.ParallelTraining]

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

trainOpts = rlTrainingOptions;trainOpts。MaxEpisodes = 1000;trainOpts。MaxStepsPerEpisode = 1000;trainOpts。StopTrainingCriteria =“AverageReward”;trainOpts。StopTrainingValue = 480;训练。鼠标=真;训练.Plots =.“培训进度”;trainOpts
trainOpts = rlTrainingOptions与属性:MaxEpisodes:1000 MaxStepsPerEpisode:1000 ScoreAveragingWindowLength:5个StopTrainingCriteria: “AverageReward” StopTrainingValue:480个SaveAgentCriteria: “无” SaveAgentValue: “无” SaveAgentDirectory: “savedAgents” 详细:1个图: “训练进度” STOPONERROR:“接通” UseParallel:0 ParallelizationOptions:[1x1的rl.option.ParallelTraining]

您现在可以使用trainOpts作为输入参数提供给火车命令

在相同环境下同时培养三个代理创建一个选择对象。

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

保存剂时在当前的剧集的奖励第一代理超过100,或当第二剂中的奖励超过120,对于第三剂中的奖励等于或超过140。

打开命令行显示和Reinforcement Learning Episode Manager以显示训练结果。在创建选项集时,可以使用名称-值对参数设置选项。没有显式设置的任何选项都有其默认值。

trainOpts = rlTrainingOptions (...“MaxEpisodes”,1000,...“MaxStepsPerEpisode”,1000,...“ScoreAveragingWindowLength”(5 10 15),...“StopTrainingCriteria”“AverageReward”...'StopTrainingValue',[400 500 600],...“SaveAgentCriteria”“情节奖励”...“SaveAgentValue”,[100 120 140],...“详细”符合事实的...“阴谋”“培训进度”
trainOpts=rlTrainingOptions with properties:MaxSections:1000 MaxStepRepisode:1000 Score AveragingWindowLength:[5 10 15]停止培训标准:“AverageWard”停止培训值:[400 500 600]保存代理标准:“EpisodeReward”保存代理值:[100 120 140]保存代理目录:“保存代理”详细信息:1个绘图:“培训进度”停止者错误:“开”UseParallel:0并行化选项:[1x1 rl.option.ParallelTraining]

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

trainOpts=RL培训选项;trainOpts.MAXSPECTIONS=1000;trainOpts.MAXSTEPSEPREPISODE=1000;trainOpts.ScoreAveragingWindowLength=[5 10 15];trainOpts.STOPTRAINING标准=“AverageReward”; trainOpts.StopTrainingValue=[400 500 600];trainOpts.SaveAgentCriteria=“情节奖励”;训练.saveagentValue = [100 120 140];训练。鼠标=真;训练.Plots =.“培训进度”;trainOpts
trainOpts=rlTrainingOptions with properties:MaxSections:1000 MaxStepRepisode:1000 Score AveragingWindowLength:[5 10 15]停止培训标准:“AverageWard”停止培训值:[400 500 600]保存代理标准:“EpisodeReward”保存代理值:[100 120 140]保存代理目录:“保存代理”详细信息:1个绘图:“培训进度”停止者错误:“开”UseParallel:0并行化选项:[1x1 rl.option.ParallelTraining]

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

trainOpts.Score平均间隔窗口长度=10
trainOpts = rlTrainingOptions与属性:MaxEpisodes:1000 MaxStepsPerEpisode:1000 ScoreAveragingWindowLength:10 StopTrainingCriteria: “AverageReward” StopTrainingValue:[400 500 600] SaveAgentCriteria: “EpisodeReward” SaveAgentValue:[100 120 140] SaveAgentDirectory: “savedAgents” 详细:1个图:“上的 “UseParallel:训练进度” STOPONERROR”:0 ParallelizationOptions:[1x1的rl.option.ParallelTraining]

您现在可以使用trainOpts作为输入参数提供给火车命令

另请参阅

介绍了R2019a