Создайте опции для агента AC
создает opt
= rlACAgentOptionsrlACAgentOptions
объект для использования в качестве аргумента при создании агента AC с помощью всех настроек по умолчанию. Можно изменить свойства объектов с помощью записи через точку.
создает объект опций агента AC использование заданных пар "имя-значение", чтобы заменить значения свойств по умолчанию.opt
= rlACAgentOptions(Name,Value
)
Создайте объект опций агента AC, задав коэффициент дисконтирования.
opt = rlACAgentOptions('DiscountFactor',0.95)
opt = rlACAgentOptions with properties: NumStepsToLookAhead: 1 EntropyLossWeight: 0 SampleTime: 1 DiscountFactor: 0.9500
Можно изменить опции с помощью записи через точку. Например, установите шаг расчета агента на 0.5
.
opt.SampleTime = 0.5;
Чтобы обучить агента с помощью асинхронного критика агента преимущества (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
.
'DiscountFactor',0.95
'NumStepsToLookAhead'
— Количество шагов вперед
(значение по умолчанию) | числовое значениеКоличество шагов, чтобы смотреть вперед в обучении модели, заданном как разделенная запятой пара, состоящая из 'NumStepsToLookAhead'
и числовое положительное целочисленное значение. Для агентов AC количество шагов, чтобы смотреть вперед соответствует длине эпизода тренировки.
'EntropyLossWeight'
— Энтропийный вес потерь
(значение по умолчанию) | скалярное значение между 0
и 1
Энтропийный вес потерь, заданный как разделенная запятой пара, состоящая из 'EntropyLossWeight'
и скалярное значение между 0
и 1
, включительно. Более высокое значение веса потерь способствует исследованию агента путем применения штрафа за то, что были слишком уверены в который действие взять. Выполнение так может помочь агенту переместиться из локальных оптимумов.
Энтропийная функция потерь для шага эпизода t:
Здесь:
E является энтропийным весом потерь.
M является количеством возможных действий.
μk (St) является вероятностью принимающего меры Ak когда в St состояния после текущей политики.
Когда градиенты вычисляются во время обучения, дополнительный компонент градиента вычисляется для минимизации этой функции потерь.
'SampleTime'
— Шаг расчета агента
(значение по умолчанию) | числовое значениеШаг расчета агента, заданного как разделенная запятой пара, состоящая из 'SampleTime'
и числовое значение.
'DiscountFactor'
— Коэффициент дисконтирования
(значение по умолчанию) | числовое значениеКоэффициент дисконтирования применился к будущим вознаграждениям во время обучения, заданного как разделенная запятой пара, состоящая из 'DiscountFactor'
и положительное числовое значение, меньше чем или равное 1.
opt
— Опции агента ACrlACAgentOptions
объектОпции агента AC, возвращенные как rlACAgentOptions
объект. Свойства объектов описаны в Аргументах в виде пар имя-значение.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.