我目前正在Matlab R2019a中测试强化学习工具箱。到目前为止,一切工作都很好,但是我偶然发现了一个文档无法令人满意地回答的问题:
代理何时学习?
文档中介绍了最小批量大小
在每次训练中,特工在计算用于更新演员和评论家属性的梯度时,会从经验缓冲区中随机抽取经验。
问题在于,“训练情节”的确切含义没有得到澄清。
RL工具箱的训练功能是否在情节结束时或在情节期间步长超过最小批量大小时对代理进行训练(像基线算法中一样)?
我对代理有以下设置
agentOptions = rlDQNAgentOptions('SampleTime',Ts,...
'UseDoubleDQN',true,...
'TargetSmoothFactor',1e-3,...
'DiscountFactor',0.99,...
'NumStepsToLookAhead',4,...
'ExperienceBufferLength',1e6,...
'MiniBatchSize',120,...
'ResetExperienceBufferBeforeTraining', false,...
'SaveExperienceBufferWithAgent',true);
Ts = 0.25的。 一集的长度设置为2000步,因为代理在那儿学习一个长期运行的行为。不可能使情节更短,因为否则代理将无法满足所有有趣的状态。
也许有人能启发我或给我一些提示,我可以进行仔细检查吗?
我本来想监视epsilon衰减(每次训练后都会发生),但是我不知道如何在封闭的快速重启循环中执行此操作(这已经使我无法打开另一个.m文件) )。