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