В настоящее время я тестирую набор инструментов для обучения усилению в Matlab R2019a.Пока все работает хорошо, но я наткнулся на вопрос, на который документация не может ответить удовлетворительно:
Когда агент учится?
В документации говорится о размере мини-пакета
Во время каждого обучающего эпизода агент случайным образом выбирает опыт из буфера опыта при вычислении градиентов для обновления свойств актера и критика.
Проблема заключается в том, что нигде не выяснено, что именноподразумевается под «обучающим эпизодом».
Функция поезда 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-файла).