Обучите агентов обучения с подкреплением в заданном окружении
обучает одного или нескольких агентов обучения с подкреплением в заданном окружении, используя опции обучения по умолчанию. Хотя 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 выполняет эти расчеты в зависимости от вашего строения агента и окружения. Например, сброс окружения в начале каждого эпизода может включать рандомизацию начальных значений состояния, если вы конфигурируете своё окружение, чтобы сделать это.