rlSACAgentOptions

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

Описание

Используйте rlSACAgentOptions объект задать опции для агентов мягкого критика агента (SAC). Чтобы создать агента SAC, использовать rlSACAgent.

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

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

Создание

Описание

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

пример

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

Свойства

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

Настраивающие опции энтропии в виде EntropyWeightOptions объект со следующими свойствами.

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

Скорость обучения оптимизатора в виде неотрицательного скаляра. Если LearnRate нуль, EntropyWeight значение фиксируется во время обучения и TargetEntropy значение проигнорировано.

Предназначайтесь для энтропийного значения для настройки энтропийного веса в виде скаляра. Более высокое целевое энтропийное значение поощряет больше исследования.

Если вы не задаете TargetEntropy, агент использует –A в качестве целевого значения, где A является количеством действий.

Оптимизатор для энтропии, настраивающейся в виде одной из следующих строк.

  • "adam" — Используйте оптимизатор Адама. Можно задать уровни затухания градиента и скользящих средних значений градиента в квадрате с помощью GradientDecayFactor и SquaredGradientDecayFactor поля OptimizerParameters опция.

  • "sgdm" — Используйте стохастический градиентный спуск с оптимизатором импульса (SGDM). Можно задать значение импульса с помощью Momentum поле OptimizerParameters опция.

  • "rmsprop" — Используйте оптимизатор RMSProp. Можно задать уровень затухания скользящего среднего значения градиента в квадрате с помощью SquaredGradientDecayFactor поля OptimizerParameters опция.

Для получения дополнительной информации об этих оптимизаторах, смотрите Стохастический Градиентный спуск в Deep Learning Toolbox™.

Пороговое значение для энтропийного градиента в виде Inf или положительная скалярная величина. Если градиент превышает это значение, градиент отсекается.

Применимые параметры для оптимизатора в виде OptimizerParameters объект следующими параметрами. Значения параметров по умолчанию работают хорошо на большинство проблем.

ПараметрОписаниеЗначение по умолчанию
Momentum

Вклад предыдущего шага в виде скаляра от 0 до 1. Значение 0 средних значений никакой вклад от предыдущего шага. Значение 1 среднего значения максимальный вклад.

Этот параметр применяется только когда Optimizer "sgdm".

0.9
Epsilon

Знаменатель возмещен в виде положительной скалярной величины. Оптимизатор добавляет это смещение к знаменателю в сетевых обновлениях параметра, чтобы избежать деления на нуль.

Этот параметр применяется только когда Optimizer "adam" или "rmsprop".

1e-8
GradientDecayFactor

Уровень затухания скользящего среднего значения градиента в виде положительной скалярной величины от 0 до 1.

Этот параметр применяется только когда Optimizer "adam".

0.9
SquaredGradientDecayFactor

Уровень затухания скользящего среднего значения градиента в квадрате в виде положительной скалярной величины от 0 до 1.

Этот параметр применяется только когда Optimizer "adam" или "rmsprop".

0.999

Когда конкретное свойство OptimizerParameters не применимо к типу оптимизатора, заданному в Optimizer опция, то свойство установлено в "Not applicable".

Чтобы изменить значения по умолчанию, получите доступ к свойствам OptimizerParameters использование записи через точку.

opt = rlSACAgentOptions;
opt.EntropyWeightOptions.OptimizerParameters.GradientDecayFactor = 0.95;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

rlSACAgentМягкий агент обучения с подкреплением критика агента

Примеры

свернуть все

Создайте объект опций агента SAC, задав коэффициент дисконтирования.

opt = rlSACAgentOptions('DiscountFactor',0.95)
opt = 
  rlSACAgentOptions with properties:

                   EntropyWeightOptions: [1x1 rl.option.EntropyWeightOptions]
                  PolicyUpdateFrequency: 1
                  CriticUpdateFrequency: 1
                      NumWarmStartSteps: 64
              NumGradientStepsPerUpdate: 1
                     TargetSmoothFactor: 1.0000e-03
                  TargetUpdateFrequency: 1
    ResetExperienceBufferBeforeTraining: 1
          SaveExperienceBufferWithAgent: 0
                          MiniBatchSize: 64
                    NumStepsToLookAhead: 1
                 ExperienceBufferLength: 10000
                             SampleTime: 1
                         DiscountFactor: 0.9500

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

opt.SampleTime = 0.5;

Для агентов SAC сконфигурируйте энтропийный оптимизатор веса с помощью опций в EntropyWeightOptions. Например, установите целевое энтропийное значение к –5.

opt.EntropyWeightOptions.TargetEntropy = -5;
Введенный в R2020b