Опции для учебных агентов изучения укрепления
trainOpts = rlTrainingOptions
trainOpts = rlTrainingOptions(Name,Value)
возвращает опции по умолчанию для обучения агент изучения укрепления. Вы используете опции обучения, чтобы задать параметры о сеансе обучения, такие как максимальное количество эпизодов, чтобы обучаться, критерии остановки обучения, критериев сохранения агентов, и как использовать параллельные вычисления. После того, как вы сконфигурируете опции, используйте 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" SaveAgentDirectory: "savedAgents" Parallelization: "none" ParallelizationOptions: [] 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" SaveAgentDirectory: "savedAgents" Parallelization: "none" ParallelizationOptions: [] StopOnError: "on" Verbose: 1 Plots: "training-progress"
Можно теперь использовать trainOpts
в качестве входного параметра к команде train
.
Чтобы включить параллельные вычисления для обучения агент изучения укрепления, вы сначала создаете набор опций с набором опции Parallelization
к значению кроме "none"
. В данном примере сконфигурируйте набор опций для асинхронного параллельного обучения.
trainOpts = rlTrainingOptions('Parallelization',"async");
Когда вы устанавливаете Parallelization
на это значение, программное обеспечение заполняет опцию ParallelizationOptions
с объектом ParallelTraining
по умолчанию.
trainOpts.ParallelizationOptions
ans = ParallelTraining with properties: DataToSendFromWorkers: "Experiences" StepsUntilDataIsSent: -1 WorkerRandomSeeds: -1 TransferBaseWorkspaceVariables: "on" AttachedFiles: [] SetupFcn: [] CleanupFcn: []
Можно далее сконфигурировать опции параллельных вычислений с помощью записи через точку. Например, сконфигурируйте рабочих, чтобы отправить данные в хост каждые 100 шагов в учебном эпизоде. Далее сконфигурируйте рабочих, чтобы отправить данные о градиенте, вместо того, чтобы испытать данные.
trainOpts.ParallelizationOptions.StepsUntilDataIsSent = 100;
trainOpts.ParallelizationOptions.DataToSendFromWorkers = "Gradients";
trainOpts.ParallelizationOptions
ans = ParallelTraining with properties: DataToSendFromWorkers: "Gradients" StepsUntilDataIsSent: 100 WorkerRandomSeeds: -1 TransferBaseWorkspaceVariables: "on" AttachedFiles: [] SetupFcn: [] CleanupFcn: []
Можно теперь использовать trainOpts
в качестве входного параметра к команде train
, чтобы выполнить обучение с параллельными вычислениями.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (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'
— Критическое значение учебного условия завершения 500
(значение по умолчанию) | скалярКритическое значение учебного условия завершения, заданного как пара, разделенная запятой, состоящая из '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
.
Для получения дополнительной информации об обучении с помощью параллельных вычислений, смотрите, что Укрепление Train Изучает Агенты.
Используя параллельные вычисления требует программного обеспечения Parallel Computing Toolbox™.
Пример: 'UseParallel',true
'ParallelizationOptions'
— Опции распараллеливания, чтобы управлять параллельным обучениемParallelTraining
Опции распараллеливания, чтобы управлять параллельным обучением, заданным как пара, разделенная запятой, состоящая из 'ParallelizationOptions'
и объекта ParallelTraining
. Для получения дополнительной информации об обучении с помощью параллельных вычислений, смотрите, что Укрепление Train Изучает Агенты.
Объект ParallelTraining
имеет следующие свойства, которые можно изменить запись через точку использования после создания объекта rlTrainingOptions
.
Режим
Режим параллельных вычислений"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
, равный опции агента AC NumStepToLookAhead
.
Агенты PG принимают только StepUntilDataIsSent = -1
.
WorkerRandomSeeds
— Инициализация Randomizer для рабочихИнициализация Randomizer для рабочих, заданных как один следующее:
– 1 — Присвоение уникальный случайный seed каждому рабочему. Значение seed является ID рабочего.
– 2 — не присваивают случайный seed рабочим.
Вектор — Вручную указывает, что случайный seed для каждого работает. Число элементов в векторе должно совпадать с количеством рабочих.
TransferBaseWorkspaceVariables
— Send и переменные рабочей области, чтобы быть параллельными рабочим"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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.