主要内容

rlTrainingOptions

选择培训强化学习代理

描述

使用一个rlTrainingOptions对象为代理指定培训选项。训练一个代理,使用火车

培训代理商的更多信息,请参阅强化学习培训代理

创建

描述

trainOpts= rlTrainingOptions返回默认选项为培训强化学习代理。使用训练训练选项来指定参数,如集训练的最大数量,标准停止训练,储蓄标准代理和选择使用并行计算。配置选项,后使用trainOpts作为一个输入参数火车

例子

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

属性

全部展开

集训练特工的最大数量,指定为一个正整数。无论终止的其他标准,培训后终止MaxEpisodes

例子:“MaxEpisodes”, 1000年

最大数量的步骤运行每集指定为一个正整数。一般来说,您定义事件终止条件环境。这个值是步骤运行的最大数量的事件如果其他终止条件不满足。

例子:“MaxStepsPerEpisode”, 1000年

窗口长度平均成绩、奖励和每个代理的一些步骤,指定为一个标量或矢量。

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

如果训练的环境是一个多代理仿真软件金宝app®环境,指定一个标量应用相同的窗口长度对所有代理。

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

选项表示平均而言,ScoreAveragingWindowLength是集的数量包括在平均水平。例如,如果StopTrainingCriteria“AverageReward”,StopTrainingValue500年对于一个给定的代理,然后代理,训练终止时平均奖励中指定事件的数量ScoreAveragingWindowLength等于或超过500年。其他代理、培训持续进行直到:

  • 所有代理达到停止条件。

  • 集到的数量MaxEpisodes

  • 通过单击你停止训练停止训练按钮事件经理或紧迫ctrl - c在MATLAB®命令行。

例子:“ScoreAveragingWindowLength”, 10

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

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

  • “AverageReward”——停止训练时正在运行的平均回报等于或超过临界值。

  • “EpisodeReward”——停止训练时,奖励在当前事件等于或超过临界值。

  • “GlobalStepCount”——停止训练步骤在所有事件的总数(的总数乘以代理调用)等于或超过临界值。

  • “EpisodeCount”——停止训练当训练集的数量等于或超过临界值。

例子:“StopTrainingCriteria”、“AverageReward”

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

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

如果训练的环境是一个多代理仿真软件环境,指定一个标量相同的终止准则适用于所有代理。金宝app为每个代理,使用不同的终止准则指定StopTrainingValue作为一个向量。在这种情况下,元素的顺序向量对应订单的代理期间使用环境的创建。

对于一个给定的代理、培训结束时,指定的终止条件StopTrainingCriteria选择等于或超过这个值。其他代理的培训持续进行直到:

  • 所有代理达到停止条件。

  • 集到的数量maxEpisodes

  • 通过单击你停止训练停止训练按钮事件经理或紧迫ctrl - c在MATLAB命令行。

例如,如果StopTrainingCriteria“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的数量相应的事件。代理是垫文件存储在saved_agent

例子:“SaveAgentCriteria”、“EpisodeReward”

临界值的条件保存代理、指定为一个标量或矢量。

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

如果训练的环境是一个多代理仿真软件环境,指定一个标量应用相同的储蓄标准每个代理。金宝app保存剂,当一个人满足一个特定的标准,指定SaveAgentValue作为一个向量。在这种情况下,元素的顺序向量对应订单的创建环境时使用的代理。保存标准代理时,所有代理都保存在相同的垫文件。

当你指定一个条件保存候选人代理使用SaveAgentCriteria,软件将这个值设置为500。改变指定条件的值保存剂。看到SaveAgentCriteria选择更多的细节。

例子:“SaveAgentValue”, 100年

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

例子:SaveAgentDirectory, pwd +“\ run1 \代理”

国旗使用并行训练、指定为一个逻辑。设置这个选项真正的配置培训使用并行处理来模拟环境,从而使使用多核处理器,计算机集群或云资源加快训练速度。指定选择并行训练,使用ParallelizationOptions财产。

UseParallel真正的然后DQN、DDPG TD3,囊NumStepsToLookAhead财产或相应的代理必须设置为选择对象1,否则会生成一个错误。这可以保证连续存储的经历。当并行交流特工训练,如果生成一个警告StepsUntilDataIsSent财产的ParallelizationOptions对象设置为不同的值NumStepToLookAheadAC代理选择对象的属性。

请注意,如果你想加快深层神经网络计算(如梯度计算,参数更新和预测)使用当地的GPU,你不需要设置UseParallel为true。相反,当创建你的演员或评论家表示,使用一个rlRepresentationOptions对象的UseDevice选项设置为“图形”。使用并行计算或GPU需要并行计算工具箱™软件。另外需要使用计算机集群或云资源MATLAB并行服务器™。关于培训的更多信息使用多核处理器和gpu,明白了培训代理商使用并行计算和gpu

例子:“UseParallel”,真的

并行化选项来控制并行训练,指定为一个ParallelTraining对象。培训使用并行计算的更多信息,请参阅强化学习培训代理

ParallelTraining对象具有以下属性,您可以修改后使用点符号创建rlTrainingOptions对象。

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

  • “同步”——使用parpool运行同步训练可用的工人。在这种情况下,工人暂停执行,直到所有的工人都完成了。主机更新演员和评论家参数基于结果从所有的工人和将更新后的参数发送给所有工人。注意,基于同步训练需要梯度并行,这是当DataToSendFromWorkers被设置为“梯度”然后模式必须设置为“同步”

  • “异步”——使用parpool运行异步培训可用的工人。在这种情况下,工人们把他们的数据返回到主机就完成从主机和接收更新参数。工人们继续他们的工作。

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

  • “经验”仿真是由工人执行,执行的学习是主机。具体地说,工人们模拟剂对环境和发送经验数据(观察、行动、奖励、下观察和标志指示是否一个终端条件已经达到)的主机。对于渐变的特工,主机计算梯度的经验,更新网络参数和返回更新后的参数工人他们可以执行一个新的仿真环境。

  • “梯度”——模拟和学习都是由工人。具体地说,工人们模拟剂对环境,从经验计算梯度,梯度发送到主机。主机平均梯度,更新网络参数和返回更新后的参数工人他们可以执行一个新的仿真环境。这个选项需要同步训练,这是它需要模式被设置为“同步”

请注意

交流和PG代理,您必须指定DataToSendFromWorkers作为“梯度”

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

许多步骤之后,工人将数据发送给主机和接收更新参数,指定为1或者一个正整数。当这个选项1工人一直在等待,直到最后一集,然后将所有步骤数据发送到主机。否则,工人等待发送数据之前的指定数量的步骤。

请注意

  • AC代理不接受StepsUntilDataIsSent = 1。交流培训,集StepsUntilDataIsSent等于NumStepToLookAheadAC剂的选择。

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

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

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

  • 2——不随机种子分配给员工。

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

选择发送模型和工作空间变量平行工人,指定为“上”“关闭”。当选择是“上”中使用,主机发送变量模型和基MATLAB中定义工作空间的工人。

附加文件附加到平行池,指定为一个字符串或字符串数组。

函数运行在培训开始前,指定为一个处理函数没有输入参数。这个函数是在培训开始前人均运行一次。编写这个函数来执行任何处理之前,你需要训练。

函数运行培训结束后,指定为一个处理函数没有输入参数。您可以编写这个函数清理工作区或执行其他处理训练后终止。

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

选择停止训练当一个错误发生在一集,指定为“上”“关闭”。当这个选项“关闭”、错误捕获和返回的SimulationInfo的输出火车和培训继续下一集。

选项来显示与事件经理培训进展,指定为“训练进步”“没有”。默认情况下,调用火车打开了强化学习集管理器,它以图形和数字显示培训进展的信息,如每集的奖励,平均回报,集,数量和总数量的步骤。(有关更多信息,请参见火车)。关掉这显示,设置这个选项“没有”

对象的功能

火车 强化学习培训代理在指定的环境中

例子

全部折叠

创建一个选项设置培训强化学习代理。设置事件的最大数量和步骤每集的最大数量为1000。配置选项停止训练时的平均回报等于或超过480年,打开命令行显示和强化学习集经理显示培训结果。您可以使用名称-值对参数设置选项当您创建选项集。任何选项,你不显式地设置默认值。

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: [1 x1 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:“没有一个”SaveAgentValue:“没有”SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”StopOnError:”“UseParallel: 0 ParallelizationOptions: [1 x1 rl.option.ParallelTraining]

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

创建一个选项对象同时培训三个特工在相同的环境中。

设置的最大数量集,每集最大的步骤1000年。配置选项停止训练第一代理其平均奖励5集等于或超过400,第二剂平均回报10集等于或超过500,第三当其平均奖励15集等于或超过600年。代理的顺序是在创造环境。

保存代理当奖励第一个代理在当前事件超过100,或者当第二代理超过120,奖励奖励第三代理等于或超过140年。

打开命令行显示和强化学习集经理显示培训结果。您可以使用名称-值对参数设置选项当您创建选项集。任何选项,你不显式地设置默认值。

trainOpts = rlTrainingOptions (“MaxEpisodes”,1000,“MaxStepsPerEpisode”,1000,“ScoreAveragingWindowLength”(5 10 15),“StopTrainingCriteria”,“AverageReward”,“StopTrainingValue”(400 500 600),“SaveAgentCriteria”,“EpisodeReward”,“SaveAgentValue”(100 120 140),“详细”,真的,“阴谋”,“训练进步”)
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:”“UseParallel: 0 ParallelizationOptions: [1 x1 rl.option.ParallelTraining]

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

trainOpts = rlTrainingOptions;trainOpts。MaxEpisodes = 1000;trainOpts。MaxStepsPerEpisode = 1000;trainOpts。ScoreAveragingWindowLength = (5 10 15);trainOpts。StopTrainingCriteria =“AverageReward”;trainOpts。StopTrainingValue = (400 500 600);trainOpts。SaveAgentCriteria =“EpisodeReward”;trainOpts。SaveAgentValue = (100 120 140);trainOpts。详细的= true; trainOpts.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:”“UseParallel: 0 ParallelizationOptions: [1 x1 rl.option.ParallelTraining]

您可以指定一个标量相同的标准适用于所有代理。例如,使用一个窗口的长度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:”“UseParallel: 0 ParallelizationOptions: [1 x1 rl.option.ParallelTraining]

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

另请参阅

介绍了R2019a