Обучите агентов обучения с подкреплением в заданной среде
обучает одного или несколько агентов обучения с подкреплением в заданной среде, с помощью опций обучения по умолчанию. Несмотря на то, что trainStats
= train(env
,agents
)agents
входной параметр, после каждого эпизода тренировки, train
обновляет параметры каждого свойства агента, заданного в agents
максимизировать их ожидаемое долгосрочное вознаграждение средой. Когда обучение завершает работу, agents
отражает состояние каждого агента в конце итогового эпизода тренировки.
выполняет то же обучение как предыдущий синтаксис.trainStats
= train(agents
,env
)
обучает env
= train(___,trainOpts
)agents
в env
, использование объекта trainOpts
опций обучения. Используйте опции обучения, чтобы задать учебные параметры, такие как критерии завершения обучения, когда сохранить агентов, максимальное количество эпизодов, чтобы обучаться, и максимальное количество шагов на эпизод. Используйте этот синтаксис после любого из входных параметров в предыдущих синтаксисах.
train
обновляет агентов, в то время как обучение прогрессирует. Чтобы сохранить исходные параметры агента для дальнейшего использования, сохраните агентов в MAT-файл.
По умолчанию, вызов train
открывает менеджера по Эпизоду Обучения с подкреплением, который позволяет вам визуализировать прогресс обучения. Менеджер по Эпизоду, которого график показывает вознаграждению за каждый эпизод, рабочее среднее премиальное значение и критика, оценивает Q 0 (для агентов, которые имеют критиков). Менеджер по Эпизоду также отображает различный эпизод и учебную статистику. Чтобы выключить менеджера по Эпизоду Обучения с подкреплением, установите Plots
опция trainOpts
к "none"
.
Если вы используете предопределенную среду, для которой существует визуализация, можно использовать plot(env)
визуализировать среду. Если вы вызываете plot(env)
перед обучением затем визуализация обновляется во время обучения позволить вам визуализировать прогресс каждого эпизода. (Для пользовательских сред необходимо реализовать собственное plot
метод.)
Обучение завершает работу, когда условия задали в trainOpts
удовлетворены. Чтобы отключить происходящее обучение, в менеджере по Эпизоду Обучения с подкреплением, нажимают Stop Training. Поскольку train
обновляет агента в каждом эпизоде, можно возобновить обучение путем вызова train(agent,env,trainOpts)
снова, не теряя обученные параметры, изученные во время первого вызова train
.
Во время обучения можно сохранить агентов кандидата, которые удовлетворяют условиям, которые вы задаете с trainOpts
. Например, можно сохранить любого агента, вознаграждение эпизода которого превышает определенное значение, даже если полному условию для завершения обучения еще не удовлетворяют. train
хранит сохраненных агентов в MAT-файле в папке, которую вы задаете с trainOpts
. Сохраненные агенты могут быть полезными, например, чтобы позволить вам тестировать агентов кандидата, сгенерированных во время продолжительного учебного процесса. Для получения дополнительной информации о сохранении критериев и сохранении местоположения, смотрите rlTrainingOptions
.
В общем случае train
выполняет выполняющие итеративные шаги:
Инициализируйте agent
.
Для каждого эпизода:
Сбросьте среду.
Получите начальное наблюдение s 0 средой.
Вычислите начальное действие a 0 = μ (s 0).
Установите текущее действие на начальное действие (a a0) и установите текущее наблюдение на начальное наблюдение (s s0).
В то время как эпизод не закончен или закончен:
Шаг среда с действием a, чтобы получить следующее наблюдение s' и вознаграждение r.
Извлеките уроки из набора опыта (s, a, r, s').
Вычислите следующее действие a' = μ (s').
Обновите текущее действие со следующим действием (a ←a') и обновите текущее наблюдение со следующим наблюдением (s ←s').
Повредитесь, если условия завершения эпизода, заданные в среде, соблюдают.
Если учебное условие завершения задано trainOpts
соответствуется, оконечное обучение. В противном случае начните следующий эпизод.
Специфические особенности как train
выполняет эти расчеты, зависит от вашей настройки агента и среды. Например, сброс среды в начале каждого эпизода может включать значения начального состояния рандомизации, если вы конфигурируете свою среду, чтобы сделать так.