强化学习培训代理
一旦你创建了一个环境,强化学习代理,你可以训练代理环境中使用火车
函数。配置您的培训,使用一个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”,“代理”)
培训您指定的条件时自动终止StopTrainingCriteria
和StopTrainingValue
选择你的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
对象指定SaveAgentCriteria和SaveAgentValue并将其传递给属性火车
作为一个trainOpts
论点。
训练算法
一般来说,培训执行以下步骤。
初始化代理。
每集:
重置环境。
获得最初的观察年代0从环境中。
计算初始行动一个0=μ(年代0),μ(年代)是当前的政策。
设置当前行动最初的行动(一个←一个0),和设置当前观测最初的观察(年代←年代0)。
虽然这一事件没有完成或终止,执行以下步骤。
应用操作一个环境和获得下一个观察年代”和奖励r。
从经验中学习集(年代,一个,r,年代)。
计算下一个动作一个“=μ(年代)。
更新当前的行动和未来行动(一个←一个“)和更新当前与未来观察(观察年代←年代)。
终止事件如果环境中定义的终止条件。
如果培训是满足终止条件,终止培训。否则,开始下一个事件。
软件如何执行这些步骤的细节取决于代理的配置和环境。例如,重置环境在每集的开始可以包括随机的初始状态值,如果您配置您的环境。代理及其训练算法的更多信息,见强化学习代理。使用并行处理和gpu加速培训,明白了培训代理商使用并行计算和gpu。
事件管理器
默认情况下,调用火车
函数打开强化学习事件管理器,它允许您可视化培训进展。
这一事件管理器情节展示了每一集的奖励(EpisodeReward)和一个运行平均奖励值(AverageReward)。
代理的评论家,集Q0的估计是贴现长期奖励在每集的开始,考虑到环境的初步观察。随着培训的发展,如果批评是精心设计和学习成功,集Q0方法平均真实折扣长期奖励,这可能抵消的EpisodeReward因为折现价值。对于一个设计良好的评论家使用一个尚未完全回报(DiscountFactor
等于1
),然后平均集Q0方法真正的奖励,如前图所示。
事件管理器还显示各种集和训练数据。您还可以使用火车
函数返回的信息集和训练。关掉强化学习事件管理器,设置情节
选择rlTrainingOptions
来“没有”
。
保存候选药物
在培训期间,您可以保存候选药物符合您指定的条件SaveAgentCriteria
和SaveAgentValue
选择你的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环境中使用自定义函数,从模板创建定制的MATLAB环境,创建模型强化学金宝app习环境。
培训和模拟环境动力学之间的不匹配——检查这样的不匹配,创建测试环境以相同的方式创建的训练环境,修改环境行为。
与并行训练一样,如果你有并行计算工具箱™软件,您可以运行多个并行多核计算机上模拟。如果你有MATLAB并行服务器™软件,您可以运行多个并行仿真计算机集群或云资源。有关配置的更多信息模拟使用并行计算,看看UseParallel
和ParallelizationOptions
在rlSimulationOptions
。
环境可视化
如果你的训练环境中实现了情节
方法,您可以在训练和仿真可视化环境的行为。如果你叫情节(env)
前培训或模拟,env
更新您的环境对象,可视化培训期间允许您可视化每集或模拟的进展。
环境不支持可视化培训时使用并行计算或模拟你的代理人。金宝app
对于自定义环境,你必须实现自己的情节
方法。更多信息,创建一个自定义环境情节
功能,请参阅从模板创建定制的MATLAB环境。