rlDQNAgentOptions

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

Синтаксис

opt = rlDQNAgentOptions
opt = rlDQNAgentOptions(Name,Value)

Описание

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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

Для просмотра документации необходимо авторизоваться на сайте