我目前正在 Matlab R2019a 中测试强化学习工具箱。到目前为止一切都运行良好,但我偶然发现了一个文档无法令人满意地回答的问题:
代理什么时候学习?
文档说明了 minibatch-size
在每个训练集期间,代理在计算梯度以更新演员和评论家属性时从经验缓冲区中随机采样经验。
问题在于,“训练集”究竟是什么意思没有得到澄清。
RL-Toolbox 的训练功能是在一个情节结束时还是在情节中当步数超过小批量大小时(如基线算法中)训练代理?
我有以下代理设置
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-decay 的想法(每次训练后都会发生),但我不知道如何在封闭的快速重启循环中执行此操作(这已经阻止我打开另一个 .m 文件)。