Опции для учебных агентов обучения с подкреплением
возвращает опции по умолчанию для обучения агент обучения с подкреплением. Вы используете опции обучения, чтобы задать параметры о сеансе обучения, такие как максимальное количество эпизодов, чтобы обучаться, критерии остановки обучения, критериев сохранения агентов, и как использовать параллельные вычисления. После того, как вы сконфигурируете опции, используйте trainOpts
= rlTrainingOptionstrainOpts
как входной параметр для train
.
создает набор опции для обучения с помощью заданных пар "имя-значение", чтобы заменить значения опции по умолчанию.trainOpts
= rlTrainingOptions(Name,Value
)
Создайте набор опций для обучения агент обучения с подкреплением. Определите максимальный номер эпизодов и максимальных шагов на эпизод к 1 000. Сконфигурируйте опции, чтобы остановить обучение, когда среднее вознаграждение равняется или превышает 480, и включите и отображение командной строки и менеджера по Эпизоду Обучения с подкреплением по тому, чтобы отобразить учебные результаты. Можно определить опции с помощью Имени, пар Значения, когда вы создаете набор опций. Любые опции, которые вы явным образом не устанавливаете, имеют свои значения по умолчанию.
trainOpts = rlTrainingOptions(... 'MaxEpisodes',1000,... 'MaxStepsPerEpisode',1000,... 'StopTrainingCriteria',"AverageReward",... 'StopTrainingValue',480,... 'Verbose',true,... 'Plots',"training-progress")
trainOpts = rlTrainingOptions with properties: MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria: "AverageReward" StopTrainingValue: 480 SaveAgentCriteria: "none" SaveAgentValue: "none" UseParallel: 0 ParallelizationOptions: [1×1 rl.option.ParallelTraining] SaveAgentDirectory: "savedAgents" StopOnError: "on" Verbose: 1 Plots: "training-progress"
В качестве альтернативы создайте набор опций по умолчанию и используйте запись через точку, чтобы изменить некоторые значения.
trainOpts = rlTrainingOptions; trainOpts.MaxEpisodes = 1000; trainOpts.MaxStepsPerEpisode = 1000; trainOpts.StopTrainingCriteria = "AverageReward"; trainOpts.StopTrainingValue = 480; trainOpts.Verbose = true; trainOpts.Plots = "training-progress"; trainOpts
trainOpts = rlTrainingOptions with properties: MaxEpisodes: 1000 MaxStepsPerEpisode: 1000 ScoreAveragingWindowLength: 5 StopTrainingCriteria: "AverageReward" StopTrainingValue: 480 SaveAgentCriteria: "none" SaveAgentValue: "none" UseParallel: 0 ParallelizationOptions: [1×1 rl.option.ParallelTraining] SaveAgentDirectory: "savedAgents" StopOnError: "on" Verbose: 1 Plots: "training-progress"
Можно теперь использовать trainOpts
как входной параметр к train
команда.
Чтобы включить параллельные вычисления для обучения агент обучения с подкреплением, установите UseParallel
опция обучения к true
.
trainOpts = rlTrainingOptions('UseParallel',true);
Чтобы сконфигурировать ваше параллельное обучение, сконфигурируйте поля trainOpts.ParallelizationOptions
. Например, задайте следующие опции обучения:
Асинхронный режим
Рабочие отправляют данные в хост каждые 100 шагов в эпизоде тренировки
Рабочие вычисляют и отправляют градиенты в хост
trainOpts.ParallelizationOptions.Mode = "async"; trainOpts.ParallelizationOptions.StepsUntilDataIsSent = 100; trainOpts.ParallelizationOptions.DataToSendFromWorkers = "Gradients"; trainOpts.ParallelizationOptions
ans = ParallelTraining with properties: Mode: "async" DataToSendFromWorkers: "Gradients" StepsUntilDataIsSent: 100 WorkerRandomSeeds: -1 TransferBaseWorkspaceVariables: "on" AttachedFiles: [] SetupFcn: [] CleanupFcn: []
Можно теперь использовать trainOpts
как входной параметр к train
команда, чтобы выполнить обучение с параллельными вычислениями.
Чтобы обучить агента с помощью асинхронного критика агента преимущества (A3C) метод, необходимо установить агента и параллельные опции обучения соответственно.
При создании агента AC, набор NumStepsToLookAhead
значение, чтобы быть больше 1
. Общими ценностями является 64
и 128
.
agentOpts = rlACAgentOptions('NumStepsToLookAhead',64);
Используйте agentOpts
при создании агента.
Сконфигурируйте учебный алгоритм, чтобы использовать асинхронное параллельное обучение.
trainOpts = rlTrainingOptions('UseParallel',true); trainOpts.ParallelizationOptions.Mode = "async";
Сконфигурируйте рабочих, чтобы возвратить данные о градиенте в хост. Кроме того, определите номер шагов, прежде чем рабочие передадут данные обратно в хост, чтобы совпадать с количеством шагов, чтобы смотреть вперед.
trainOpts.ParallelizationOptions.DataToSendFromWorkers = "gradients";
trainOpts.ParallelizationOptions.StepsUntilDataIsSent = agentOpts.NumStepsToLookAhead;
Используйте trainOpts
когда обучение ваш агент.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'StopTrainingCriteria',"AverageReward",'StopTrainingValue',100
'MaxEpisodes'
— Максимальное количество эпизодов, чтобы обучить агентаМаксимальное количество эпизодов, чтобы обучить агента, заданного как разделенная запятой пара, состоящая из 'MaxEpisodes'
и положительное целое число. Независимо от других критериев завершения обучение завершает работу после этого много эпизодов.
Пример: 'MaxEpisodes',1000
'MaxStepsPerEpisode'
— Максимальное количество шагов, чтобы запуститься на эпизодМаксимальное количество шагов, чтобы запуститься на эпизод, заданный как разделенная запятой пара, состоящая из 'MaxStepsPerEpisode'
и положительное целое число. В общем случае вы задаете условия завершения эпизода в среде. Это значение является максимальным количеством шагов, чтобы запуститься в эпизоде, если те условия завершения не соблюдают.
Пример: 'MaxStepsPerEpisode',1000
'ScoreAveragingWindowLength'
— Длина окна для усредненияДлина окна для усреднения баллов, вознаграждений и количеств шагов, заданных как разделенная запятой пара, состоящая из 'ScoreAveragingWindowLength'
и положительное целое число. Для опций, выраженных в терминах средних значений, это - количество эпизодов, включенных в среднее значение. Например, предположите тот StopTrainingCriteria
"AverageReward"
, и StopTrainingValue
500. Обучение завершает работу, когда вознаграждение, усредненное по количеству эпизодов, заданных этим параметром, 500 или больше.
Пример: 'ScoreAveragingWindowLength',10
'StopTrainingCriteria'
— Учебное условие завершения"AverageSteps"
(значение по умолчанию) | "AverageReward"
| "EpisodeCount"
| ...Учебное условие завершения, заданное как разделенная запятой пара, состоящая из 'StopTrainingCriteria'
и одна из следующих строк:
"AverageSteps"
— Остановите обучение, когда рабочее среднее количество шагов на эпизод будет равняться или будет превышать критическое значение, заданное опцией StopTrainingValue
. Среднее значение вычисляется с помощью окна 'ScoreAveragingWindowLength'
.
"AverageReward"
— Остановите обучение, когда рабочее среднее вознаграждение будет равняться или будет превышать критическое значение.
"EpisodeReward"
— Остановите обучение, когда вознаграждение в текущем эпизоде будет равняться или будет превышать критическое значение.
"GlobalStepCount"
— Остановите обучение, когда общее количество шагов во всех эпизодах (общее количество времен агент вызывается) равняется или превышает критическое значение.
"EpisodeCount"
— Остановите обучение, когда количество эпизодов тренировки будет равняться или будет превышать критическое значение.
Пример: 'StopTrainingCriteria',"AverageReward"
'StopTrainingValue'
— Критическое значение учебного условия завершения
(значение по умолчанию) | скалярКритическое значение учебного условия завершения, заданного как разделенная запятой пара, состоящая из 'StopTrainingValue'
и скаляр. Обучение завершает работу когда условие завершения, заданное StopTrainingCriteria
опция равняется или превышает это значение. Например, если StopTrainingCriteria
"AverageReward"
, и StopTrainingValue
100, затем обучение завершает работу, когда среднее вознаграждение по количеству эпизодов задало в 'ScoreAveragingWindowLength'
равняется или превышает 100.
Пример: 'StopTrainingValue',100
'SaveAgentCriteria'
— Условие для сохранения агента во время обучения"none"
(значение по умолчанию) | "EpisodeReward"
| "AverageReward"
| "EpisodeCount"
| ...Условие для сохранения агента во время обучения, заданного как разделенная запятой пара, состоящая из 'SaveAgentCriteria'
и одна из следующих строк:
"none"
— Не сохраняйте агентов во время обучения.
"EpisodeReward"
— Сохраните агента, когда вознаграждение в текущем эпизоде будет равняться или будет превышать критическое значение.
"AverageSteps"
— Сохраните агента, когда рабочее среднее количество шагов на эпизод будет равняться или будет превышать критическое значение, заданное опцией StopTrainingValue
. Среднее значение вычисляется с помощью окна 'ScoreAveragingWindowLength'
.
"AverageReward"
— Сохраните агента, когда рабочее среднее вознаграждение по всем эпизодам будет равняться или будет превышать критическое значение.
"GlobalStepCount"
— Сохраните агента, когда общее количество шагов во всех эпизодах (общее количество времен агент вызывается) равняется или превышает критическое значение.
"EpisodeCount"
— Сохраните агента, когда количество эпизодов тренировки будет равняться или будет превышать критическое значение.
Установите эту опцию хранить агентов кандидата, которые выполняют хорошо согласно критериям, которые вы задаете. Когда вы устанавливаете эту опцию на значение кроме "none"
, программное обеспечение устанавливает SaveAgentValue
опция к 500. Можно изменить то значение, чтобы задать условие для сохранения агента.
Например, предположите, что вы хотите сохранить для дальнейшего тестирования любого агента, который дает к вознаграждению эпизода, которое равняется или превышает 100. Для этого установите SaveAgentCriteria
к "EpisodeReward"
и набор SaveAgentValue
опция к 100. Когда вознаграждение эпизода равняется или превышает 100, train
сохраняет соответствующего агента в MAT-файле в папке, заданной SaveAgentDirectory
опция. MAT-файл называется AgentK.mat
где K
количество соответствующего эпизода. Агент хранится в том MAT-файле как saved_agent
.
Пример: 'SaveAgentCriteria',"EpisodeReward"
'SaveAgentValue'
— Критическое значение условия для сохранения агента"none"
(значение по умолчанию) | 500 | скалярКритическое значение условия для сохранения агента, заданного как разделенная запятой пара, состоящая из 'SaveAgentValue'
и "none"
или числовой скаляр.
Когда вы задаете условие для сохранения агентов кандидата с помощью SaveAgentCriteria
, программное обеспечение устанавливает это значение к 500. Измените значение, чтобы задать условие для сохранения агента. Смотрите SaveAgentValue
опция для получения дополнительной информации.
Пример: 'SaveAgentValue',100
'SaveAgentDirectory'
— Папка для сохраненных агентов"savedAgents"
(значение по умолчанию) | представляет в виде строки | вектор символовПапка для сохраненных агентов, заданных как разделенная запятой пара, состоящая из 'SaveAgentDirectory'
и строка или вектор символов. Имя папки может содержать полный или относительный путь. Когда эпизод происходит, который удовлетворяет условию, заданному SaveAgentCriteria
и SaveAgentValue
опции, программное обеспечение сохраняет агента в MAT-файле в этой папке. Если папка не существует, train
создает его. Когда SaveAgentCriteria
"none"
, эта опция проигнорирована и train
не создает папку.
Пример: 'SaveAgentDirectory', pwd + "run1\Agents"
'UseParallel'
— Отметьте для использования параллельного обученияfalse
(значение по умолчанию) | true
Отметьте для использования параллельного обучения, заданного как разделенная запятой пара, состоящая из 'UseParallel'
и любой true
или false
. Установка этой опции к true
конфигурирует обучение использовать параллельные вычисления. Чтобы задать опции для параллельного обучения, используйте ParallelizationOptions
свойство.
Используя параллельные вычисления требует программного обеспечения Parallel Computing Toolbox™.
Для получения дополнительной информации об обучении с помощью параллельных вычислений, смотрите, Обучают Агентов Обучения с подкреплением.
Пример: 'UseParallel',true
'ParallelizationOptions'
— Опции, чтобы управлять параллельным обучениемParallelTraining
объектОпции распараллеливания, чтобы управлять параллельным обучением, заданным как разделенная запятой пара, состоящая из 'ParallelizationOptions'
и ParallelTraining
объект. Для получения дополнительной информации об обучении с помощью параллельных вычислений, смотрите, Обучают Агентов Обучения с подкреплением.
ParallelTraining
объект имеет следующие свойства, которые можно изменить запись через точку использования после создания rlTrainingOptions
объект.
Mode
— Режим параллельных вычислений"sync"
(значение по умолчанию) | "async"
Режим параллельных вычислений, заданный как одно из следующего:
"sync"
— Используйте parpool
запускать синхронное обучение на доступных рабочих. В этом случае рабочие приостанавливают выполнение, пока все рабочие не закончены. Хост обновляет агента и параметры критика на основе результатов всех рабочих и отправляет обновленные параметры всем рабочим.
"async"
— Используйте parpool
запускать асинхронное обучение на доступных рабочих. В этом случае рабочие передают свои данные обратно в хост, как только они закончили и получают обновленные параметры от хоста. Рабочие затем продолжают свою задачу.
DataToSendFromWorkers
— Тип данных, которые рабочие отправляют в хост"experiences"
(значение по умолчанию) | "gradients"
Тип данных, которые рабочие отправляют в хост, заданный как одна из следующих строк:
"experiences"
— Отправьте данные об опыте (наблюдение, действие, вознаграждение, следующее наблюдение, сделано) к хосту. Для агентов с градиентами хост вычисляет градиенты из событий.
"gradients"
— Вычислите и отправьте градиенты в хост. Хост применяет градиенты, чтобы обновить параметры сетей.
AC и агенты PG принимают только DataToSendFromWorkers = "gradients"
. DQN и агенты DDPG принимают только DataToSendFromWorkers = "experiences"
.
StepsUntilDataIsSent
— Когда рабочие отправляют данные, чтобы разместить
(значение по умолчанию) | положительное целое числоКогда рабочие отправляют данные, чтобы разместить и получить обновленные параметры, заданные как –1
или положительное целое число. Этот номер указывает сколько шагов, чтобы вычислить во время эпизода перед передающими данными к хосту. Когда эта опция –1, рабочий ожидает до конца эпизода и затем отправляет все данные о шаге в хост. В противном случае рабочий ожидает конкретное количество шагов перед передающими данными.
Агенты AC не принимают StepUntilDataIsSent = -1
. Для обучения A3C, набор StepUntilDataIsSent
равняйтесь NumStepToLookAhead
Опция агента AC.
Агенты PG принимают только StepUntilDataIsSent = -1
.
WorkerRandomSeeds
— Инициализация Randomizer для рабочих
(значение по умолчанию) | –2
| векторИнициализация Randomizer для рабочих, заданных как один следующее:
–1 — Присвойте уникальный случайный seed каждому рабочему. Значение seed является ID рабочего.
–2 — Не присваивайте случайный seed рабочим.
Вектор — Вручную указывает, что случайный seed для каждого работает. Число элементов в векторе должно совпадать с количеством рабочих.
TransferBaseWorkspaceVariables
— Отправьте переменные и рабочей области модели, чтобы быть параллельными рабочим"on"
(значение по умолчанию) | "off"
Отправьте переменные и рабочей области модели, чтобы быть параллельными рабочим, заданным как "on"
или "off"
. Когда опцией является "on"
, хост отправляет переменные, используемые в моделях и заданные в основной рабочей области MATLAB® рабочим.
AttachedFiles
— Дополнительные файлы, чтобы присоединить к параллельному пулу[]
(значение по умолчанию) | представляет в виде строки | массив строкДополнительные файлы, чтобы присоединить к параллельному пулу, заданному как массив строк или массив строк.
SetupFcn
— Функция, чтобы запуститься перед обучением запускается[]
(значение по умолчанию) | указатель на функциюФункция, чтобы запуститься перед обучением запускается, заданный как указатель на функцию, имеющую входные параметры. Эта функция запущена однажды на рабочего, прежде чем обучение начнется. Запишите эту функцию, чтобы выполнить любую обработку, в которой вы нуждаетесь до обучения.
CleanupFcn
— Функция, чтобы выполняться после учебных концов[]
(значение по умолчанию) | указатель на функциюФункция, чтобы выполняться после учебных концов, заданных как указатель на функцию, имеющую входные параметры. Можно записать эту функцию, чтобы очистить рабочую область или выполнить другую обработку после того, как обучение завершит работу.
'Verbose'
— Отобразите прогресс обучения на командной строкеfalse
(0) (значение по умолчанию) | true
(1)Отобразите прогресс обучения на командной строке, заданной как логические значения false
(0) или true
(1). Установите на true
записать информацию от каждого эпизода тренировки до командной строки MATLAB во время обучения.
'StopOnError'
— Остановите обучение, когда ошибка произойдет"on"
(значение по умолчанию) | "off"
Остановите обучение, когда ошибка произойдет во время эпизода, заданного как "on"
или "off"
. Когда этой опцией является "off"
, ошибки зафиксированы и возвращены в SimulationInfo
выход train
, и обучение продолжается к следующему эпизоду.
'Plots'
— Отобразите прогресс обучения с менеджером по Эпизоду"training-progress"
(значение по умолчанию) | "none"
Отобразите прогресс обучения с менеджером по Эпизоду, заданным как "training-progress"
или "none"
. По умолчанию, вызов train
открывает менеджера по Эпизоду Обучения с подкреплением, который графически и численно отображает информацию о процессе обучения, таком как вознаграждение за каждый эпизод, среднее вознаграждение, количество эпизодов и общее количество шагов. (Для получения дополнительной информации смотрите train
.), Чтобы выключить это отображение, установите эту опцию на "none"
.
trainOpts
— Опция установлена для учебных агентов обучения с подкреплениемrlTrainingOptions
объектНабор опции для учебных агентов обучения с подкреплением, возвращенных как rlTrainingOptions
объект. Значения свойств trainOpts
инициализируются к значениям по умолчанию или к значениям, которые вы задаете с Name,Value
пары. Можно далее изменить значения свойств с помощью записи через точку. Используйте набор опций в качестве входного параметра с train
когда вы обучаете агентов обучения с подкреплением.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.