Обучите агентов обучения с подкреплением в заданном окружении
обучает одного или нескольких агентов обучения с подкреплением в заданном окружении, используя опции обучения по умолчанию. Хотя trainStats
= train(env
,agents
)agents
является входной параметр, после каждого эпизода тренировки, train
обновляет параметры каждого агента, указанного в agents
максимизировать их ожидаемое долгосрочное вознаграждение от окружения. Когда обучение прекращается, agents
отражает состояние каждого агента в конце заключительного эпизода тренировки.
выполняет то же обучение, что и предыдущий синтаксис.trainStats
= train(agents
,env
)
обучает env
= train(___,trainOpts
)agents
в пределах env
, с использованием объекта опций обучения trainOpts
. Используйте опции обучения, чтобы задать параметры обучения, такие как критерии завершения обучения, время сохранения агентов, максимальное количество эпизодов для обучения и максимальное количество шагов в каждом эпизоде. Используйте этот синтаксис после любого из входных параметров в предыдущих синтаксисах.
train
обновляет агентов по мере процессов обучения. Чтобы сохранить параметры исходного агента для дальнейшего использования, сохраните агенты в MAT-файле.
По умолчанию вызов train
открывает Диспетчер эпизодов обучения с подкреплением, который позволяет вам визуализировать прогресс обучения. В график Episode Manager показано вознаграждение за каждый эпизод, текущее среднее значение вознаграждения и оценка критиком 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 − a 0) и установите текущее наблюдение на начальное наблюдение (s − s 0).
Пока эпизод не закончен или не завершен:
Постройте окружение с помощью a действий, чтобы получить следующую s наблюдений 'и r вознаграждения.
Учитесь на наборе опыта (s, a, r, s ').
Вычислите следующее a действия '= μ (s').
Обновите текущее действие следующим действием (a − a ') и обновите текущее наблюдение следующим наблюдением (s − s').
Пропуск, если удовлетворены условия прекращения эпизода, определенные в окружении.
Если условие прекращения обучения задано как trainOpts
достигается, прекращает обучение. В противном случае начнем следующий эпизод.
Специфика того, как train
выполняет эти расчеты в зависимости от вашего строения агента и окружения. Например, сброс окружения в начале каждого эпизода может включать рандомизацию начальных значений состояния, если вы конфигурируете своё окружение, чтобы сделать это.