一旦您创建了一个环境和强化学习代理,您可以在环境中使用火车
函数。要配置培训,请使用rlTrainingOptions
函数。例如,创建训练选项集选择
,和培训代理人代理
在环境env
.
选择= rlTrainingOptions (...“MaxEpisodes”, 1000,...“MaxStepsPerEpisode”, 1000,...“StopTrainingCriteria”,“AverageReward”,...“StopTrainingValue”, 480);trainStats =火车(代理,env,选择);
有关创建代理的更多信息,请参见强化学习代理.有关创建环境的更多信息,请参见创建MATLAB强化学习环境和创建Simul万博1manbetxink强化学习环境.
火车
在培训过程中对代理进行更新。为了保留原始代理参数供以后使用,将代理保存到一个mat文件中。
保存(“initialAgent.mat”,“代理”)
中指定的条件时,培训自动终止StopTrainingCriteria
和StopTrainingValue
选择你的rlTrainingOptions
对象感到满意。要手动终止正在进行的培训,输入Ctrl + C或者,在强化学习章节管理器中,单击停止训练.因为火车
在每集更新代理,您可以通过电话恢复培训火车(代理,env, trainOpts)
同样,在不丢失第一次呼叫时学到的训练参数的情况下火车
.
一般来说,培训执行以下步骤。
初始化代理。
每集:
重置环境。
获得初步观察年代0从环境中。
计算初始动作一个0=μ(年代0),μ(年代)是当前的政策。
将当前操作设置为初始操作(一个←一个0),并将当前观察值设置为初始观察值(年代←年代0).
当插曲没有完成或终止时,执行以下步骤。
应用操作一个并获得下一个观察结果年代”和奖励r.
从经验中学习(年代,一个,r,年代).
计算下一个动作一个“=μ(年代).
用下一个操作更新当前操作(一个←一个“),并将当前的观察结果更新为下一个观察结果(年代←年代).
如果满足环境中定义的终止条件,则终止事件。
如果满足培训终止条件,则终止培训。否则,开始下一集。
软件如何执行这些步骤的细节取决于代理和环境的配置。例如,在每个事件开始时重置环境可以包括随机初始状态值,如果您将环境配置为这样做的话。有关代理及其训练算法的更多信息,请参见强化学习代理.要使用并行处理和gpu来加速训练,请参见使用并行计算和gpu训练代理.
默认情况下,调用火车
函数打开强化学习情节管理器,让您可视化培训进度。情节经理情节显示每一集的奖励(EpisodeReward)和平均奖励值(AverageReward).此外,对于有评论家的经纪人,情节显示了评论家在每一集开始时对折扣长期奖励的估计(EpisodeQ0).集管理器还显示各种集和培训统计数据。你也可以使用火车
功能返回插曲和培训信息。
对于有批评意见的探员来说集Q0是给定环境的初始观察,在每个事件开始时对贴现的长期奖励的估计。随着训练的进行,如果评论家设计得很好。集Q0接近真实的长期折扣奖励,如上图所示。
若要关闭强化学习情节管理器,请设置情节
选择rlTrainingOptions
来“没有”
.
在培训期间,您可以保存符合您在中指定条件的候选代理SaveAgentCriteria
和SaveAgentValue
选择你的rlTrainingOptions
对象。例如,您可以拯救任何情节奖励超过某个值的代理,即使终止训练的整体条件还不满足。例如,当情节奖励大于时,拯救代理One hundred.
.
选择= rlTrainingOptions (“SaveAgentCriteria”,“EpisodeReward”,“SaveAgentValue”, 100年);
火车
属性指定的文件夹中的mat文件中存储已保存的代理SaveAgentDirectory
选择rlTrainingOptions
.保存的代理可能很有用,例如,用于测试在长时间训练过程中生成的候选代理。有关保存条件和保存位置的详细信息,请参见rlTrainingOptions
.
训练完成后,可以从MATLAB中保存最终训练的agent®工作空间使用保存
函数。例如,保存代理myAgent
到文件finalAgent.mat
在当前工作目录中。
保存(选择。SaveAgentDirectory +“/ finalAgent.mat”,“代理”)
缺省情况下,保存DDPG和DQN代理时,不保存经验缓冲区数据。如果您计划进一步培训保存的代理,您可以从以前的经验缓冲区作为起点开始培训。在本例中,设置SaveExperienceBufferWithAgent
选项真正的
.对于某些代理,例如那些拥有大型经验缓冲区和基于映像的观察的代理,保存经验缓冲区所需的内存很大。在这些情况下,您必须确保有足够的内存可供保存的代理使用。
要验证经过培训的代理,可以在培训环境中使用sim卡
函数。要配置模拟,请使用rlSimulationOptions
.
当验证你的代理时,考虑检查你的代理如何处理以下问题:
改变模拟初始条件-要改变模型初始条件,修改环境的重置功能。例如reset函数,请参见使用自定义函数创建MATLAB环境,创建自定义MATLAB环境模板,创建Simul万博1manbetxink强化学习环境.
训练和模拟环境动态之间的不匹配——要检查这种不匹配,请按照创建训练环境的方式创建测试环境,修改环境行为。
与并行训练一样,如果您有并行计算工具箱™软件,您可以在多核计算机上运行多个并行模拟。如果你有MATLAB并行服务器™软件,您可以在计算机集群或云资源上运行多个并行模拟。有关配置模拟以使用并行计算的详细信息,请参见UseParallel
和ParallelizationOptions
在rlSimulationOptions
.
如果你的培训环境实现了情节
方法,您可以在训练和模拟过程中可视化环境行为。如果你叫情节(env)
在培训或模拟前,在哪里env
是您的环境对象,然后在培训期间更新可视化,使您能够可视化每个集或模拟的进展。
在使用并行计算训练或模拟代理时,不支持环境可视化。万博1manbetx
对于自定义环境,您必须实现自己的环境情节
方法。的创建自定义环境的详细信息情节
功能,请参阅创建自定义MATLAB环境模板.