rlDQNAgentOptions

Опции для агента DQN

Описание

Используйте rlDQNAgentOptions объект задать опции для агентов глубокой Q-сети (DQN). Чтобы создать агента DQN, используйте rlDQNAgent.

Для получения дополнительной информации смотрите Глубоких Агентов Q-сети.

Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.

Создание

Описание

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

пример

opt = rlDQNAgentOptions(Name,Value) свойства опции наборов с помощью пар "имя-значение". Например, rlDQNAgentOptions('DiscountFactor',0.95) создает набор опции с коэффициентом дисконтирования 0.95. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

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

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

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

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

Epsilon = Epsilon*(1-EpsilonDecay)

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

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

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

Максимальная пакетно-учебная длина траектории при использовании рекуррентной нейронной сети для критика в виде положительного целого числа. Это значение должно быть больше 1 при использовании рекуррентной нейронной сети для критика и 1 в противном случае.

Коэффициент сглаживания для целевого критика обновляется в виде положительной скалярной величины, меньше чем или равной 1. Для получения дополнительной информации см. Целевые Методы Обновления.

Количество шагов между целевым критиком обновляется в виде положительного целого числа. Для получения дополнительной информации см. Целевые Методы Обновления.

Отметьте для очистки буфера опыта перед обучением в виде логического значения.

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

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

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

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

При использовании рекуррентной нейронной сети для критика, MiniBatchSize количество траекторий опыта в пакете, где каждая траектория имеет длину, равную SequenceLength.

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

N-шаг Q, учащийся, не поддерживается при использовании рекуррентной нейронной сети для критика. В этом случае, NumStepsToLookAhead должен быть 1.

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

Шаг расчета агента в виде положительной скалярной величины.

В окружении Simulink агент выполняется каждый SampleTime секунды времени симуляции.

В среде MATLAB агент выполняется каждый раз усовершенствования среды. Однако SampleTime временной интервал между последовательными элементами в выходном опыте, возвращенном sim или train.

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

Функции объекта

rlDQNAgentГлубокий агент обучения с подкреплением Q-сети

Примеры

свернуть все

В этом примере показано, как создать объект опций агента DQN.

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

opt = rlDQNAgentOptions('MiniBatchSize',48)
opt = 
  rlDQNAgentOptions with properties:

                           UseDoubleDQN: 1
               EpsilonGreedyExploration: [1x1 rl.option.EpsilonGreedyExploration]
                         SequenceLength: 1
                     TargetSmoothFactor: 1.0000e-03
                  TargetUpdateFrequency: 1
    ResetExperienceBufferBeforeTraining: 1
          SaveExperienceBufferWithAgent: 0
                          MiniBatchSize: 48
                    NumStepsToLookAhead: 1
                 ExperienceBufferLength: 10000
                             SampleTime: 1
                         DiscountFactor: 0.9900

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

opt.SampleTime = 0.5;

Вопросы совместимости

развернуть все

Поведение изменяется в R2020a

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

Введенный в R2019a