主要内容

强化学习培训代理

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

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

创建代理的更多信息,见强化学习代理。创建环境的更多信息,请参阅为强化学习创建MATLAB环境中为强化学习创建金宝app仿真软件环境

火车更新代理培训的进展。保留原来的代理参数供以后使用,节省MAT-file代理。

保存(“initialAgent.mat”,“代理”)

培训您指定的条件时自动终止StopTrainingCriteriaStopTrainingValue选择你的rlTrainingOptions对象感到满意。手动终止培训进展,类型Ctrl + C或者,在强化学习事件管理器中,单击停止训练。因为火车在每一集更新代理,你可以通过调用恢复训练火车(代理,env, trainOpts)再一次,没有失去训练参数学习在第一次调用火车

训练算法

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

  1. 初始化代理。

  2. 每集:

    1. 重置环境。

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

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

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

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

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

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

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

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

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

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

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

事件管理器

默认情况下,调用火车函数打开强化学习事件管理器,它允许您可视化培训进展。这一事件管理器情节展示了每一集的奖励(EpisodeReward)和一个运行平均奖励值(AverageReward)。也为代理商,有批评,情节展示了打折的评论家的估计长期奖励在每集的开始(EpisodeQ0)。事件管理器还显示各种集和训练数据。您还可以使用火车函数返回的信息集和训练。

代理的评论家,集Q0的估计是贴现长期奖励在每集的开始,考虑到环境的初步观察。随着培训的发展,如果批评是精心设计的。集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选项真正的。对于某些因素,如那些有大量经验的缓冲区和基于图像的观察,保存所需的内存缓冲很大的经验。在这些情况下,您必须确保足够的内存用于保存的代理。

并行计算

你可以加快代理培训通过运行并行模拟。如果你有并行计算工具箱™软件,您可以运行并行多核计算机上的模拟。如果你有MATLAB并行服务器™软件,你可以在计算机上运行并行模拟集群或云资源。

当你训练特工使用并行计算,主机代理的客户端发送副本和环境并行工作。每个工人模拟环境中的代理并将其模拟数据发送回主机。主机代理可以从工人和发送的数据发送更新后的政策参数回工人。

创建一个平行的N工人,使用以下语法。

池= parpool (N);

如果你没有创建一个平行池使用parpool(并行计算工具箱),火车函数自动使用默认创建一个平行池的偏好。这些首选项指定的更多信息,请参阅指定您的平行的偏好(并行计算工具箱)

off-policy代理,如DDPG DQN代理,不使用你所有的核心并行训练。例如,如果您的CPU有六个核心,火车有四个工人。这样做提供了更多的资源为主机端根据经验来计算梯度发回的工人。限制政策所需的工人数量不是代理,比如PG和AC代理,梯度计算的工人。

有关配置的更多信息培训使用并行计算,看到UseParallelParallelizationOptions选项rlTrainingOptions

受益于并行计算,模拟环境必须的计算成本相对昂贵相比,参数的优化在发送经验回主机。如果环境的模拟不够贵,工人空闲等待主机学习和返回更新后的参数。

在发送经验的工人,可以提高样本时效率比(R)环境的步骤学习复杂性很大的复杂性。如果环境是快速模拟(R小),你不可能得到任何受益于经验并行。如果环境是昂贵的模拟也是昂贵的学习(例如,如果mini-batch大小很大),那么你也不可能提高抽样效率。然而,在这种情况下,对于off-policy代理,可以减少mini-batch大小R大,提高抽样效率。

例如,火车一个代理在MATLAB使用并行计算,看看列车空调代理使用并行计算平衡Cart-Pole系统。例如,火车一个代理在仿真软件中使用并行计算金宝app®,请参阅火车DQN代理车道保持辅助使用并行计算

GPU加速

当使用深层神经网络函数近似者你的演员或评论家表示,您可以加快训练通过GPU执行表示操作而不是CPU。为此,设置UseDevice选项“图形”

选择= rlRepresentationOptions (“UseDevice”,“图形”);

任何性能改进的大小取决于您的特定应用程序和网络配置。

验证培训政策

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

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

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

环境可视化

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

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

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

另请参阅

相关的话题