rlSACAgentOptions

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

Описание

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

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

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

Создание

Описание

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 опция.

Для получения дополнительной информации об этих оптимизаторах см. Stochastic Gradient Descent in 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;

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

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

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

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

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

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

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

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

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

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

Количество будущих вознаграждений, используемых для оценки значения политики, заданное как положительное целое число. Для получения дополнительной информации см. главу 7 [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
           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] Саттон, Ричард С. и Эндрю Г. Барто. Обучение с подкреплением: введение. Второе издание. Адаптивные расчеты и машинное обучение. Cambridge, Mass: The MIT Press, 2018.

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