rlACAgentOptions

Создайте опции для агента AC

Описание

пример

opt = rlACAgentOptions создает rlACAgentOptions объект для использования в качестве аргумента при создании агента AC с помощью всех настроек по умолчанию. Можно изменить свойства объектов с помощью записи через точку.

opt = rlACAgentOptions(Name,Value) создает объект опций агента AC использование заданных пар "имя-значение", чтобы заменить значения свойств по умолчанию.

Примеры

свернуть все

Создайте объект опций агента 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' и числовое положительное целочисленное значение. Для агентов AC количество шагов, чтобы смотреть вперед соответствует длине эпизода тренировки.

Энтропийный вес потерь, заданный как разделенная запятой пара, состоящая из 'EntropyLossWeight' и скалярное значение между 0 и 1, включительно. Более высокое значение веса потерь способствует исследованию агента путем применения штрафа за то, что были слишком уверены в который действие взять. Выполнение так может помочь агенту переместиться из локальных оптимумов.

Энтропийная функция потерь для шага эпизода t:

Ht=Ek=1Mμk(St|θμ)lnμk(St|θμ)

Здесь:

  • E является энтропийным весом потерь.

  • M является количеством возможных действий.

  • μk (St) является вероятностью принимающего меры Ak когда в St состояния после текущей политики.

Когда градиенты вычисляются во время обучения, дополнительный компонент градиента вычисляется для минимизации этой функции потерь.

Шаг расчета агента, заданного как разделенная запятой пара, состоящая из 'SampleTime' и числовое значение.

Коэффициент дисконтирования применился к будущим вознаграждениям во время обучения, заданного как разделенная запятой пара, состоящая из 'DiscountFactor' и положительное числовое значение, меньше чем или равное 1.

Выходные аргументы

свернуть все

Опции агента AC, возвращенные как rlACAgentOptions объект. Свойства объектов описаны в Аргументах в виде пар имя-значение.

Смотрите также

Функции

Введенный в R2019a