主要内容

强化学习培训代理

一旦你创建了一个环境,强化学习代理,你可以训练代理环境中使用火车函数。配置您的培训,使用一个rlTrainingOptions对象。例如,创建一个训练选项集选择,和培训代理代理在环境env

选择= rlTrainingOptions (MaxEpisodes = 1000,MaxStepsPerEpisode = 1000,StopTrainingCriteria =“AverageReward”,StopTrainingValue = 480);trainResults =火车(代理,env,选择);

如果env是一个多代理环境创建rl金宝appSimulinkEnv,指定代理参数作为数组。数组中代理的顺序必须与代理命令用于创建env。多代理培训不支持MATLAB金宝app®环境。

创建代理的更多信息,见强化学习代理。创建环境的更多信息,请参阅创建MATLAB强化学习环境创建模型强化学金宝app习环境

请注意

火车更新代理培训的进展。这是可能的因为每个代理是一个处理对象。保留原来的代理参数供以后使用,节省MAT-file代理:

保存(“initialAgent.mat”,“代理”)
如果你代理复制到一个新的变量,新变量也将总是指向最近的代理版更新参数。关于处理对象的更多信息,请参阅处理对象的行为

培训您指定的条件时自动终止StopTrainingCriteriaStopTrainingValue选择你的rlTrainingOptions对象感到满意。你也可以终止培训达到终止条件通过点击之前停止训练在强化学习集管理器。

当训练终止训练数据并存储在结果trainResults对象。

因为火车更新代理在每集的最后,因为trainResults商店过去培训结果连同数据正确重现场景和更新事件管理器,您可以从具体点后恢复训练它停了下来。这样做,在命令行中,键入:

trainResults =火车(代理,env, trainResults);
这将启动培训从代理的最后值参数和训练后获得之前的结果对象火车调用。

trainResults对象包含,因为它的属性之一,rlTrainingOptions对象选择指定培训选项集。因此,重新启动培训与更新选项,首先改变训练选项trainResults使用点符号。如果事件的最大数量已经达到了在前面的训练,你必须增加事件的最大数量。

例如,禁用显示事件经理培训进展,启用详细的在命令行选项来显示培训进展,事件的最大数量更改为2000,然后重新启动培训,返回一个新的trainResults对象作为输出。

trainResults.TrainingOptions。MaxEpisodes = 2000;trainResults.TrainingOptions。情节=“没有”;trainResults.TrainingOptions。Verbose = 1;trainResultsNew =火车(代理,env, trainResults);

请注意

培训结束时,代理反映了每个代理的状态结束时最后的训练集。回报最终获得的代理不一定是最高的实现在培训过程中,由于持续的探索。期间保存代理培训,创建一个rlTrainingOptions对象指定SaveAgentCriteriaSaveAgentValue并将其传递给属性火车作为一个trainOpts论点。

训练算法

一般来说,培训执行以下步骤。

  1. 初始化代理。

  2. 每集:

    1. 重置环境。

    2. 获得最初的观察年代0从环境中。

    3. 计算初始行动一个0=μ(年代0),μ(年代)是当前的政策。

    4. 设置当前行动最初的行动(一个一个0),和设置当前观测最初的观察(年代年代0)。

    5. 虽然这一事件没有完成或终止,执行以下步骤。

      1. 应用操作一个环境和获得下一个观察年代”和奖励r

      2. 从经验中学习集(年代,一个,r,年代)。

      3. 计算下一个动作一个“=μ(年代)。

      4. 更新当前的行动和未来行动(一个一个“)和更新当前与未来观察(观察年代年代)。

      5. 终止事件如果环境中定义的终止条件。

  3. 如果培训是满足终止条件,终止培训。否则,开始下一个事件。

软件如何执行这些步骤的细节取决于代理的配置和环境。例如,重置环境在每集的开始可以包括随机的初始状态值,如果您配置您的环境。代理及其训练算法的更多信息,见强化学习代理。使用并行处理和gpu加速培训,明白了培训代理商使用并行计算和gpu

事件管理器

默认情况下,调用火车函数打开强化学习事件管理器,它允许您可视化培训进展。

事件管理器窗口中显示的完成训练DQN代理预定义的钟摆环境。

这一事件管理器情节展示了每一集的奖励(EpisodeReward)和一个运行平均奖励值(AverageReward)。

代理的评论家,集Q0的估计是贴现长期奖励在每集的开始,考虑到环境的初步观察。随着培训的发展,如果批评是精心设计和学习成功,集Q0方法平均真实折扣长期奖励,这可能抵消的EpisodeReward因为折现价值。对于一个设计良好的评论家使用一个尚未完全回报(DiscountFactor等于1),然后平均集Q0方法真正的奖励,如前图所示。

事件管理器还显示各种集和训练数据。您还可以使用火车函数返回的信息集和训练。关掉强化学习事件管理器,设置情节选择rlTrainingOptions“没有”

保存候选药物

在培训期间,您可以保存候选药物符合您指定的条件SaveAgentCriteriaSaveAgentValue选择你的rlTrainingOptions对象。例如,您可以保存任何代理的集奖励超过一定值,即使总体条件终止培训还不满意。例如,保存代理奖励大于集One hundred.

选择= rlTrainingOptions (SaveAgentCriteria =“EpisodeReward”SaveAgentValue = 100);

火车商店保存代理在MAT-file文件夹您指定使用SaveAgentDirectory选择rlTrainingOptions。保存代理可能是有用的,例如,测试候选人代理长期训练过程中生成的。关于保存条件和保存位置的详细信息,请参见rlTrainingOptions

培训完成后,您可以保存最后的训练从MATLAB工作区使用代理保存函数。例如,保存剂myAgent到文件finalAgent.mat在当前工作目录中。

保存(选择。SaveAgentDirectory +“/ finalAgent.mat”,“代理”)

默认情况下,当DDPG DQN代理保存,体验缓冲区数据没有保存。如果你计划进一步训练你的保存剂,你可以开始训练与经验缓冲区作为起点。在这种情况下,设置SaveExperienceBufferWithAgent选项真正的。对于某些因素,如那些有大量经验的缓冲区和基于图像的观察,保存所需的内存缓冲很大的经验。在这些情况下,您必须确保足够的内存用于保存的代理。

验证培训政策

验证你的训练有素的代理,你可以模拟代理培训环境中使用sim卡函数。配置模拟,使用rlSimulationOptions

当验证代理,考虑检查代理如何处理如下:

与并行训练一样,如果你有并行计算工具箱™软件,您可以运行多个并行多核计算机上模拟。如果你有MATLAB并行服务器™软件,您可以运行多个并行仿真计算机集群或云资源。有关配置的更多信息模拟使用并行计算,看看UseParallelParallelizationOptionsrlSimulationOptions

环境可视化

如果你的训练环境中实现了情节方法,您可以在训练和仿真可视化环境的行为。如果你叫情节(env)前培训或模拟,env更新您的环境对象,可视化培训期间允许您可视化每集或模拟的进展。

环境不支持可视化培训时使用并行计算或模拟你的代理人。金宝app

对于自定义环境,你必须实现自己的情节方法。更多信息,创建一个自定义环境情节功能,请参阅从模板创建定制的MATLAB环境

另请参阅

应用程序

功能

对象

相关的例子

更多关于