rlDQNAgentOptions

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

Описание

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

пример

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

Примеры

свернуть все

Создайте rlDQNAgentOptions объект, который задает размер мини-пакета агента.

opt = rlDQNAgentOptions('MiniBatchSize',48)
opt = 

  rlDQNAgentOptions with properties:

                           UseDoubleDQN: 1
               EpsilonGreedyExploration: [1×1 rl.option.EpsilonGreedyExploration]
                     TargetSmoothFactor: 1.0000e-03
                  TargetUpdateFrequency: 4
                     TargetUpdateMethod: "smoothing"
    ResetExperienceBufferBeforeTraining: 1
          SaveExperienceBufferWithAgent: 0
                          MiniBatchSize: 48
                    NumStepsToLookAhead: 1
                 ExperienceBufferLength: 10000
                             SampleTime: 1
                         DiscountFactor: 0.9900

Можно изменить опции с помощью записи через точку. Например, установите шаг расчета агента на 0.5.

opt.SampleTime = 0.5;

Входные параметры

свернуть все

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: "UseDoubleDQN",false

Отметьте для использования двойного DQN для целевых обновлений функции значения, заданных как разделенная запятой пара, состоящая из 'UseDoubleDQN' и логический true или false. Поскольку большая часть приложения установила UseDoubleDQN к "on". Для получения дополнительной информации смотрите Глубоких Агентов Q-сети.

Опции для эпсилон-жадного исследования, заданного как разделенная запятой пара, состоящая из 'EpsilonGreedyExploration' и EpsilonGreedyExploration объект со следующими свойствами числового значения.

СвойствоОписание
EpsilonПорог вероятности или к случайным образом выбирает действие или выбирает действие, которое максимизирует функцию значения акта государственной власти. Большее значение Epsilon средние значения, что агент случайным образом исследует пробел действия на более высоком уровне.
EpsilonMinМинимальное значение Epsilon
EpsilonDecayУровень затухания

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

Epsilon = Epsilon*(1-EpsilonDecay)

Чтобы задать опции исследования, используйте запись через точку после создания rlDQNAgentOptions объект. Например, установите значение эпсилона к 0.9.

opt = rlDQNAgentOptions;
opt.EpsilonGreedyExploration.Epsilon = 0.9;

Если ваш агент сходится на локальных оптимумах слишком быстро, способствуйте исследованию агента путем увеличения Epsilon.

Сглаживание фактора для целевых обновлений критика, заданных как разделенная запятой пара, состоящая из 'TargetSmoothFactor' и двойное. Фактор сглаживания определяет, как целевые свойства критика обновляются когда TargetUpdateMethod "smoothing".

Количество эпизодов между целевыми обновлениями критика, заданными как разделенная запятой пара, состоящая из 'TargetUpdateFrequency' и числовое целочисленное значение. Эта опция применяется только когда TargetUpdateMethod "periodic".

Стратегия обновления целевых свойств критика с помощью значений от обученного агента и критика, заданного как разделенная запятой пара, состоящая из 'TargetUpdateMethod' и одно из следующего:

  • "smoothing" — Обновите целевые свойства критика, thetaTarget, в каждом эпизоде тренировки согласно следующей формуле, где theta обучившие сеть свойства тока:

    thetaTarget = TargetSmoothFactor*theta + (1 - TargetSmoothFactor)*thetaTarget
  • "periodic" — Обновите целевые свойства критика каждый TargetUpdateFrequency эпизоды тренировки.

Отметьте для очистки буфера опыта перед обучением, заданным как разделенная запятой пара, состоящая из 'ResetExperienceBufferBeforeTraining' и логический true или false.

Отметьте для того, чтобы сохранить буферные данные об опыте при сохранении агента, заданного как разделенная запятой пара, состоящая из 'SaveExperienceBufferWithAgent' и логический true или false. Эта опция применяется и при сохранении агентов кандидата во время обучения и при сохранении агентов с помощью save функция.

Для некоторых агентов, таких как те с большим опытом буферные и основанные на изображении наблюдения, память, требуемая для сохранения их буфера опыта, является большой. В таких случаях, чтобы не сохранить буферные данные об опыте, устанавливают SaveExperienceBufferWithAgent к false.

Если вы планируете далее обучить своего сохраненного агента, можно запустить обучение с буфера предыдущего опыта как начальная точка. В этом случае установите SaveExperienceBufferWithAgent к true.

Размер случайного мини-пакета опыта, заданного как разделенная запятой пара, состоящая из 'MiniBatchSize' и положительное числовое значение. Во время каждого эпизода тренировки агент случайным образом выборки испытывает от буфера опыта когда вычислительные градиенты для обновления свойства критика и агент.

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

Испытайте buffer size, заданный как разделенная запятой пара, состоящая из 'ExperienceBufferLength' и числовое положительное целочисленное значение. Во время обучения агент обновляет критика, использующего мини-пакет событий, случайным образом произведенных от буфера.

В общем случае агенты должны учиться и на хорошем и на неудачном опыте. Задайте buffer size опыта, который может сохранить достаточно опыта для изучения.

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

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

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

свернуть все

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

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

Функции

Введенный в R2019a