exponenta event banner

rlSACAgentOptions

Параметры агента SAC

Описание

Использовать rlSACAgentOptions объект для задания параметров для агентов soft actor-critic (SAC). Для создания агента SAC используйте rlSACAgent.

Дополнительные сведения см. в разделе Агенты Soft Actor-Critic.

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

Создание

Описание

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

пример

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

Свойства

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

Параметры настройки энтропии, указанные как EntropyWeightOptions со следующими свойствами.

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

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

Целевое значение энтропии для настройки веса энтропии, указанное как скаляр. Более высокое целевое значение энтропии стимулирует больше исследований.

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

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

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

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

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

Дополнительные сведения об этих оптимизаторах см. в разделе Стохастический градиентный спуск в 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;

Число шагов между обновлениями политики субъекта, указанное как положительное целое число. Дополнительные сведения см. в разделе Алгоритм обучения.

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

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

Параметр для возврата действия с максимальной вероятностью для моделирования и создания политики, заданного как логическое значение. Когда UseDeterministicExploitation имеет значение true, действие с максимальной вероятностью всегда используется в sim и generatePolicyFunction, что заставляет агента вести себя детерминированно.

Когда UseDeterministicExploitation имеет значение falseагент выполняет выборку действий из распределения вероятностей, что заставляет агента вести себя стохастически.

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

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

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

Параметр очистки буфера опыта перед обучением, заданный как логическое значение.

Количество будущих вознаграждений, используемых для оценки стоимости полиса, указанного как положительное целое число. Для получения дополнительной информации см. [1] (глава 7).

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

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

Время выборки агента, указанное как положительный скаляр.

В среде 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
           UseDeterministicExploitation: 0
                     TargetSmoothFactor: 1.0000e-03
                  TargetUpdateFrequency: 1
    ResetExperienceBufferBeforeTraining: 1
          SaveExperienceBufferWithAgent: 0
                         SequenceLength: 1
                          MiniBatchSize: 64
                    NumStepsToLookAhead: 1
                 ExperienceBufferLength: 10000
                             SampleTime: 1
                         DiscountFactor: 0.9500

Опции можно изменять с помощью точечных обозначений. Например, установите время выборки агента равным 0.5.

opt.SampleTime = 0.5;

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

opt.EntropyWeightOptions.TargetEntropy = -5;

Ссылки

[1] Саттон, Ричард С. и Эндрю Г. Барто. Обучение усилению: введение. Второе издание. Адаптивные вычисления и машинное обучение. Кембридж, месса: The MIT Press, 2018.

Представлен в R2020b