Обучите агента обучения с подкреплением в заданной среде
обучает агента обучения с подкреплением с заданной средой. После каждого эпизода тренировки, trainStats
= train(agent
,env
,trainOpts
)train
обновляет параметры agent
максимизировать ожидаемое долгосрочное вознаграждение среды. Когда обучение завершает работу, агент отражает состояние обучения при завершении.
Используйте опции обучения 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
выполняет эти расчеты, зависит от вашей настройки агента и среды. Например, сброс среды в начале каждого эпизода может включать значения начального состояния рандомизации, если вы конфигурируете свою среду, чтобы сделать так.