主要内容

训练强化学习代理

创建了环境和强化学习代理之后,可以在环境中使用火车函数。若要配置培训,请使用rlTrainingOptions函数。例如,创建一个训练选项集选择,以及列车员代理在环境env

选择= rlTrainingOptions(...“MaxEpisodes”, 1000,...“MaxStepsPerEpisode”, 1000,...“StopTrainingCriteria”“AverageReward”...“StopTrainingValue”, 480);trainResults = train(agent,env,opt);

有关创建代理的详细信息,请参见强化学习代理.有关创建环境的更多信息,请参见创建MATLAB强化学习环境而且创建Simul金宝appink强化学习环境

请注意

火车随着训练的进行更新代理。这是可能的因为代理句柄对象。为了保留原始的代理参数供以后使用,请将代理保存到mat文件中。有关句柄对象的详细信息,请参见处理对象行为

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

类中指定的条件时,训练将自动终止StopTrainingCriteria而且StopTrainingValue你的选择rlTrainingOptions对象被满足。您也可以在达到任何终止条件之前通过单击终止训练停止训练在强化学习事件管理器中。

训练结束时,训练统计数据和结果存储在trainResults对象。

因为火车在每集结束时更新代理,因为trainResults存储最后的训练结果,以及正确地重新创建训练场景和更新训练集管理器的数据,您以后可以从它停止的确切位置恢复训练。为此,在命令行输入:

trainResults = train(agent,env,trainResults);
这将从之前获得的代理参数和训练结果对象的最后一个值开始训练火车调用。

trainResults对象的属性之一是rlTrainingOptions对象选择指定训练选项集。因此,要使用更新的训练选项重新启动训练,首先将训练选项更改为trainResults使用点表示法。如果在上一个训练会话中已经达到最大集数,则必须增加最大集数。

例如,禁用在“事件管理器”中显示培训进度,启用详细的选项,在命令行上显示训练进度,将最大集数更改为2000,然后重新启动训练,返回一个新的trainResults对象作为输出。

trainResults.TrainingOptions.MaxEpisodes = 2000;trainResults.TrainingOptions.Plots =“没有”;trainResults.TrainingOptions.Verbose = 1;trainResultsNew = train(agent,env,trainResults);

训练算法

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

  1. 初始化代理。

  2. 每集:

    1. 重置环境。

    2. 获得初步观察结果年代0来自环境。

    3. 计算初始动作一个0μ年代0),μ年代)是现行政策。

    4. 将当前操作设置为初始操作(一个一个0),并将当前观测值设置为初始观测值(年代年代0).

    5. 在情节尚未结束或终止时,执行以下步骤。

      1. 应用操作一个对环境和获得下一个观察年代和报酬r

      2. 从经验集(年代一个r年代).

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

      4. 使用下一个操作更新当前操作(一个一个“),用下一个观测值(年代年代).

      5. 如果满足环境中定义的终止条件,则终止插曲。

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

软件如何执行这些步骤的细节取决于代理和环境的配置。例如,在每集开始时重置环境可以包括随机初始状态值,如果您将环境配置为这样做的话。有关智能体及其训练算法的更多信息,请参见强化学习代理.若要使用并行处理和gpu加速训练,请参见使用并行计算和图形处理器训练代理

事件管理器

默认情况下,调用火车功能打开强化学习插曲管理器,让您可视化的训练进度。

情节管理器图显示了每个情节的奖励(EpisodeReward)和持续的平均奖励值(AverageReward).

对于有评论家的特工来说集Q0是在每个情节开始时,根据对环境的初始观察,对折现的长期奖励的估计。随着训练的进行,如果评论家设计得很好并且学习成功,集Q0在平均的方法中,真正的折现长期回报,这可能会抵消EpisodeReward价值是因为折扣。对于一个设计良好的评论家使用未折扣的奖励(DiscountFactor等于1),然后是平均集Q0接近真实情节奖励,如上图所示。

插曲管理器还显示各种插曲和训练统计数据。你也可以使用火车函数返回插曲和训练信息。若要关闭强化学习插曲管理器,请设置情节选择rlTrainingOptions“没有”

保存候选代理

类中指定的条件,可以保存符合条件的候选代理SaveAgentCriteria而且SaveAgentValue你的选择rlTrainingOptions对象。例如,您可以保存任何集奖励超过一定值的agent,即使总体上还不满足终止训练的条件。例如,当情节奖励大于One hundred.

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

火车属性指定的文件夹中的mat文件中存储已保存的代理SaveAgentDirectory选择rlTrainingOptions.保存的代理可能很有用,例如,用于测试在长时间运行的培训过程中生成的候选代理。保存条件和保存位置请参见rlTrainingOptions

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

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

缺省情况下,保存DDPG和DQN座席时,不保存经验缓冲区数据。如果你计划进一步训练你保存的代理,你可以从之前的经验缓冲开始训练。在本例中,设置SaveExperienceBufferWithAgent选项真正的.对于一些智能体,例如具有较大经验缓冲区和基于图像的观察的智能体,保存经验缓冲区所需的内存很大。在这些情况下,必须确保有足够的内存供保存的代理使用。

验证培训策略

方法在训练环境中模拟该代理,以验证已训练的代理sim卡函数。若要配置模拟,请使用rlSimulationOptions

在验证您的代理时,请考虑检查您的代理如何处理以下内容:

与并行训练一样,如果您拥有并行计算工具箱™软件,则可以在多核计算机上运行多个并行模拟。如果你有MATLAB并行服务器软件方面,您可以在计算机集群或云资源上运行多个并行模拟。有关将模拟配置为使用并行计算的详细信息,请参见UseParallel而且ParallelizationOptionsrlSimulationOptions

环境可视化

如果您的训练环境实现情节方法,可以在训练和仿真过程中可视化环境行为。如果你打电话情节(env)在训练或模拟之前,其中env是您的环境对象,则在训练期间进行可视化更新,以允许您可视化每个集或模拟的进度。

在使用并行计算训练或模拟代理时,不支持环境可视化。金宝app

对于自定义环境,必须实现自己的环境情节方法。类创建自定义环境的详细信息情节功能,请参阅从模板创建自定义MATLAB环境

另请参阅

相关的话题