exponenta event banner

Обучение агентов по обучению усилению

После создания среды и усиления агента обучения можно обучить агента в среде с помощью train функция. Для настройки обучения используйте rlTrainingOptions функция. Например, создайте набор параметров обучения optи агент поезда agent в среде env.

opt = rlTrainingOptions(...
    'MaxEpisodes',1000,...
    'MaxStepsPerEpisode',1000,...
    'StopTrainingCriteria',"AverageReward",...
    'StopTrainingValue',480);
trainStats = train(agent,env,opt);

Дополнительные сведения о создании агентов см. в разделе Усиление агентов обучения. Дополнительные сведения о создании сред см. в разделах Создание учебных сред для усиления MATLAB и Создание учебных сред для усиления Simulink.

train обновляет агента по мере прохождения обучения. Чтобы сохранить исходные параметры агента для последующего использования, сохраните агент в MAT-файле.

save("initialAgent.mat","agent")

Обучение прекращается автоматически, когда условия, указанные в StopTrainingCriteria и StopTrainingValue варианты вашего rlTrainingOptions объект удовлетворен. Чтобы завершить выполняемое обучение вручную, введите Ctrl + C или в менеджере эпизодов обучения по усилению щелкните Остановить обучение. Посколькуtrain обновляет агента в каждом эпизоде, вы можете возобновить обучение, позвонив train(agent,env,trainOpts) опять же, без потери обученных параметров, полученных во время первого вызова train.

Алгоритм обучения

В целом обучение выполняет следующие шаги.

  1. Инициализируйте агент.

  2. Для каждого эпизода:

    1. Сбросьте среду.

    2. Получение исходного наблюдения s0 из среды.

    3. Вычислите начальное действие a0 = (s0), где λ (s) - текущая политика.

    4. Установите текущее действие в исходное действие (a←a0) и установите текущее наблюдение в исходное наблюдение (s←s0).

    5. Пока эпизод не завершен или не завершен, выполните следующие действия.

      1. Примените действие a к окружающей среде и получите следующее наблюдение s "и вознаграждение r.

      2. Извлеките уроки из набора опыта (s, a, r, s ').

      3. Вычислите следующее действие a «» = λ (s «»).

      4. Обновите текущее действие следующим действием (a←a ') и обновите текущее наблюдение следующим (s←s').

      5. Завершите эпизод, если условия завершения, определенные в среде, выполнены.

  3. Если условие завершения обучения выполнено, завершите обучение. В противном случае начните следующий эпизод.

Специфика выполнения этих шагов программным обеспечением зависит от конфигурации агента и среды. Например, сброс среды в начале каждого эпизода может включать рандомизацию начальных значений состояния, если вы настраиваете среду для этого. Дополнительные сведения об агентах и их алгоритмах обучения см. в разделе Усиление агентов обучения. Сведения об использовании параллельной обработки и графических процессоров для ускорения обучения см. в разделе Обучение агентов с использованием параллельных вычислений и графических процессоров.

Менеджер эпизодов

По умолчанию вызывает train функция открывает Менеджер обучающих эпизодов для усиления, который позволяет визуализировать ход обучения. Менеджер по Эпизоду сюжет показывает вознаграждение за каждый эпизод (EpisodeReward) и бегущую среднюю премиальную стоимость (AverageReward). Кроме того, для агентов, у которых есть критики, сюжет показывает оценку критика обесцененного долгосрочного вознаграждения в начале каждого эпизода (EpisodeQ0). Менеджер эпизодов также отображает различные статистические данные по эпизодам и тренировкам. Вы также можете использовать train функция для возврата информации об эпизоде и обучении.

Для агентов с критиком «Эпизод Q0» - оценка дисконтированного долгосрочного вознаграждения в начале каждого эпизода, учитывая первоначальное наблюдение за окружающей средой. По мере обучения, если критик хорошо устроен. Эпизод Q0 приближается к истинному дисконтированному долгосрочному вознаграждению, как показано на предыдущем рисунке.

Чтобы отключить Диспетчер обучающих эпизодов с усилением, установите Plots вариант rlTrainingOptions кому "none".

Сохранить агентов-кандидатов

Во время обучения можно сохранить агентов-кандидатов, которые соответствуют условиям, указанным в SaveAgentCriteria и SaveAgentValue варианты вашего rlTrainingOptions объект. Например, вы можете сохранить любого агента, чья награда за эпизод превышает определенное значение, даже если общее условие прекращения обучения еще не выполнено. Например, сохранять агентов, когда награда за эпизод больше 100.

opt = rlTrainingOptions('SaveAgentCriteria',"EpisodeReward",'SaveAgentValue',100');

train сохраняет сохраненные агенты в MAT-файле в папке, указанной с помощью SaveAgentDirectory вариант rlTrainingOptions. Сохраненные агенты могут быть полезны, например, для тестирования агентов-кандидатов, генерируемых в течение длительного процесса обучения. Дополнительные сведения о сохранении критериев и расположении см. в разделе rlTrainingOptions.

После завершения обучения можно сохранить последнего обученного агента из рабочей области MATLAB ® с помощью save функция. Например, сохраните агента myAgent в файл finalAgent.mat в текущей рабочей папке.

save(opt.SaveAgentDirectory + "/finalAgent.mat",'agent')

По умолчанию при сохранении агентов DDPG и DQN данные буфера опыта не сохраняются. Если планируется дальнейшее обучение сохраненного агента, можно начать обучение с использованием буфера предыдущего опыта в качестве отправной точки. В этом случае установите SaveExperienceBufferWithAgent опция для true. Для некоторых агентов, таких как агенты с буферами большого опыта и наблюдениями на основе изображений, память, необходимая для сохранения буфера опыта, велика. В этих случаях необходимо обеспечить достаточный объем памяти для сохраненных агентов.

Проверка обученной политики

Для проверки обучаемого агента можно смоделировать агента в среде обучения с помощью sim функция. Для настройки моделирования используйте rlSimulationOptions.

При проверке агента проверьте, как агент обрабатывает следующее:

Как и при параллельном обучении, при наличии программного обеспечения Parallel Computing Toolbox™ можно выполнять несколько параллельных симуляций на многоядерных компьютерах. При наличии программного обеспечения MATLAB Parallel Server™ можно выполнять несколько параллельных симуляций на компьютерных кластерах или облачных ресурсах. Дополнительные сведения о настройке моделирования для использования параллельных вычислений см. в разделе UseParallel и ParallelizationOptions в rlSimulationOptions.

Визуализация среды

Если ваша учебная среда реализует plot можно визуализировать поведение среды во время обучения и моделирования. При звонке plot(env) перед тренировкой или моделированием, где env является объектом среды, затем визуализация обновляется во время обучения, что позволяет визуализировать ход выполнения каждого эпизода или моделирования.

Визуализация среды не поддерживается при обучении или моделировании агента с помощью параллельных вычислений.

Для пользовательских сред необходимо внедрить собственные plot способ. Дополнительные сведения о создании пользовательских сред с помощью plot см. раздел Создание пользовательской среды MATLAB из шаблона.

См. также

Связанные темы