主要内容

rlTrainingOptions

选择培训强化学习代理

自从R2019a

描述

使用一个rlTrainingOptions对象指定选项来训练一个代理在一个环境。培训选项包括集训练的最大数量,标准停止训练,储蓄标准代理和选择使用并行计算。在设置选项,使用这个对象作为输入参数火车

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

创建

描述

trainOpts= rlTrainingOptions返回默认选项为培训强化学习代理。

例子

trainOpts= rlTrainingOptions (名称=值)创建培训选项集trainOpts并设置它属性使用一个或多个名称参数。

属性

全部展开

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

例子:MaxEpisodes = 1000

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

例子:MaxStepsPerEpisode = 1000

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

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

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

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

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

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

  • 集到的数量MaxEpisodes

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

例子:ScoreAveragingWindowLength = 10

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

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

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

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

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

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

例子:StopTrainingCriteria = " AverageReward "

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

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

如果训练的环境是一个多代理仿真软件环境,指定一个标量相同的终止准则适用于所有代理。为每个代理,使用不同的终止准则指定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作为一个标量。

如果训练的环境是一个多代理仿真软件环境,指定一个标量应用相同的储蓄标准每个代理。保存剂,当一个人满足一个特定的标准,指定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 = true

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

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

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

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

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

例子:模式=“异步”

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

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

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

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

例子:WorkerRandomSeeds = (1 2 3 4)

选择发送模型和工作空间变量平行工人,指定为“上”“关闭”。当选择是“上”,客户端发送给工人基MATLAB工作区中定义的变量和用于近似模型。

例子:TransferBaseWorkspaceVariables =“关闭”

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

例子:AttachedFiles = " myInitFile.m "

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

例子:AttachedFiles = @mySetupFcn

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

例子:AttachedFiles = @myCleanupFcn

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

例子:Verbose = false

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

例子:StopOnError =“关闭”

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

例子:情节= "没有"

对象的功能

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

例子

全部折叠

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

trainOpts = rlTrainingOptions (MaxEpisodes = 1000,MaxStepsPerEpisode = 1000,StopTrainingCriteria =“AverageReward”,StopTrainingValue = 480,Verbose = true,情节=“训练进步”)
trainOpts = rlTrainingOptions属性:MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 StopOnError:”“ScoreAveragingWindowLength: 5 StopTrainingCriteria:“AverageReward”StopTrainingValue: 480 SaveAgentCriteria:“没有一个”SaveAgentValue:“没有一个”SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”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 StopOnError:”“ScoreAveragingWindowLength: 5 StopTrainingCriteria:“AverageReward”StopTrainingValue: 480 SaveAgentCriteria:“没有一个”SaveAgentValue:“没有一个”SaveAgentDirectory:“savedAgents”详细:1块:“训练进步”UseParallel: 0 ParallelizationOptions: [1 x1 rl.option.ParallelTraining]

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

打开培训强化学习代理并行计算,设置UseParallel培训选项真正的

trainOpts = rlTrainingOptions (UseParallel = true);

配置您的并行训练,配置的字段trainOpts.ParallelizationOptions。例如,指定异步的培训模式:

trainOpts.ParallelizationOptions。模式=“异步”;trainOpts.ParallelizationOptions
ans = ParallelTraining属性:模式:“异步”WorkerRandomSeeds: 1 TransferBaseWorkspaceVariables:”“AttachedFiles: [] SetupFcn: [] CleanupFcn: []

您现在可以使用trainOpts作为输入参数火车命令执行培训与并行计算。

训练使用异步代理优势actor-critic (A3C)方法,你必须适当地设置代理和并行训练选项。

当创建交流代理设置NumStepsToLookAhead值要大于1。共同的价值观是64年128年

agentOpts = rlACAgentOptions (NumStepsToLookAhead = 64);

使用agentOpts当创建你的代理。另外,创建您的代理,然后修改它的选项,包括演员和评论家选项后使用点符号。

配置培训使用异步并行算法。

trainOpts = rlTrainingOptions (UseParallel = true);trainOpts.ParallelizationOptions。模式=“异步”;

配置工人梯度数据返回给主机。同时,之前设置的步骤工人回到主机发送数据匹配步骤向前看的数量。

trainOpts.ParallelizationOptions。DataToSendFromWorkers =“梯度”;trainOpts.ParallelizationOptions。StepsUntilDataIsSent =agentOpts.NumStepsToLookAhead;

使用trainOpts当训练你的代理。

例如异步优势actor-critic代理培训,明白了列车空调代理使用并行计算平衡Cart-Pole系统

版本历史

介绍了R2019a

全部展开

Baidu
map