Опции для агента SAC
Используйте rlSACAgentOptions
объект задать опции для агентов мягкого критика агента (SAC). Чтобы создать агента SAC, использовать rlSACAgent
.
Для получения дополнительной информации смотрите Мягких Агентов Критика Агента.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
создает объект опций для использования в качестве аргумента при создании агента SAC с помощью всех опций по умолчанию. Можно изменить свойства объектов с помощью записи через точку.opt
= rlSACAgentOptions
EntropyWeightOptions
— Настраивающие опции энтропииEntropyWeightOptions
объектНастраивающие опции энтропии в виде EntropyWeightOptions
объект со следующими свойствами.
EntropyWeight
— Начальный энтропийный вес компонента
(значение по умолчанию) | положительная скалярная величинаНачальный энтропийный вес компонента в виде положительной скалярной величины.
LearnRate
— Скорость обучения оптимизатора3e-4
(значение по умолчанию) | неотрицательный скалярСкорость обучения оптимизатора в виде неотрицательного скаляра. Если LearnRate
нуль, EntropyWeight
значение фиксируется во время обучения и TargetEntropy
значение проигнорировано.
TargetEntropy
— Предназначайтесь для энтропийного значения[]
(значение по умолчанию) | скалярПредназначайтесь для энтропийного значения для настройки энтропийного веса в виде скаляра. Более высокое целевое энтропийное значение поощряет больше исследования.
Если вы не задаете TargetEntropy
, агент использует –A в качестве целевого значения, где A является количеством действий.
Optimizer
— Оптимизатор для энтропийной настройки"adam"
(значение по умолчанию) | "sgdm"
| "rmsprop"
Оптимизатор для энтропии, настраивающейся в виде одной из следующих строк.
"adam"
— Используйте оптимизатор Адама. Можно задать уровни затухания градиента и скользящих средних значений градиента в квадрате с помощью GradientDecayFactor
и SquaredGradientDecayFactor
поля OptimizerParameters
опция.
"sgdm"
— Используйте стохастический градиентный спуск с оптимизатором импульса (SGDM). Можно задать значение импульса с помощью Momentum
поле OptimizerParameters
опция.
"rmsprop"
— Используйте оптимизатор RMSProp. Можно задать уровень затухания скользящего среднего значения градиента в квадрате с помощью SquaredGradientDecayFactor
поля OptimizerParameters
опция.
Для получения дополнительной информации об этих оптимизаторах, смотрите Стохастический Градиентный спуск в Deep Learning Toolbox™.
GradientThreshold
— Пороговое значение для градиентаInf
(значение по умолчанию) | положительная скалярная величинаПороговое значение для энтропийного градиента в виде Inf
или положительная скалярная величина. Если градиент превышает это значение, градиент отсекается.
OptimizerParameters
— Применимые параметры для оптимизатораOptimizerParameters
объектПрименимые параметры для оптимизатора в виде OptimizerParameters
объект следующими параметрами. Значения параметров по умолчанию работают хорошо на большинство проблем.
Параметр | Описание | Значение по умолчанию |
---|---|---|
Momentum | Вклад предыдущего шага в виде скаляра от 0 до 1. Значение 0 средних значений никакой вклад от предыдущего шага. Значение 1 среднего значения максимальный вклад. Этот параметр применяется только когда | 0.9
|
Epsilon | Знаменатель возмещен в виде положительной скалярной величины. Оптимизатор добавляет это смещение к знаменателю в сетевых обновлениях параметра, чтобы избежать деления на нуль. Этот параметр применяется только когда | 1e-8 |
GradientDecayFactor | Уровень затухания скользящего среднего значения градиента в виде положительной скалярной величины от 0 до 1. Этот параметр применяется только когда | 0.9
|
SquaredGradientDecayFactor | Уровень затухания скользящего среднего значения градиента в квадрате в виде положительной скалярной величины от 0 до 1. Этот параметр применяется только когда | 0.999
|
Когда конкретное свойство OptimizerParameters
не применимо к типу оптимизатора, заданному в Optimizer
опция, то свойство установлено в "Not applicable"
.
Чтобы изменить значения по умолчанию, получите доступ к свойствам OptimizerParameters
использование записи через точку.
opt = rlSACAgentOptions; opt.EntropyWeightOptions.OptimizerParameters.GradientDecayFactor = 0.95;
PolicyUpdateFrequency
— Количество шагов между обновлениями политики агента
(значение по умолчанию) | положительное целое числоКоличество шагов между политикой агента обновляется в виде положительного целого числа. Для получения дополнительной информации смотрите Алгоритм настройки.
CriticUpdateFrequency
— Количество шагов между обновлениями критика
(значение по умолчанию) | положительное целое числоКоличество шагов между критиком обновляется в виде положительного целого числа. Для получения дополнительной информации смотрите Алгоритм настройки.
TargetUpdateFrequency
— Количество шагов между целевыми обновлениями критика
(значение по умолчанию) | положительное целое числоКоличество шагов между целевым критиком обновляется в виде положительного целого числа. Для получения дополнительной информации см. Целевые Методы Обновления.
TargetSmoothFactor
— Коэффициент сглаживания для целевых обновлений критика1e-3
(значение по умолчанию) | положительная скалярная величина, меньше чем или равная 1Коэффициент сглаживания для целевого критика обновляется в виде положительной скалярной величины, меньше чем или равной 1. Для получения дополнительной информации см. Целевые Методы Обновления.
MiniBatchSize
— Размер случайного мини-пакета опыта
(значение по умолчанию) | положительное целое числоРазмер случайного опыта мини-обрабатывает в пакетном режиме в виде положительного целого числа. Во время каждого эпизода тренировки агент случайным образом выборки испытывает от буфера опыта когда вычислительные градиенты для обновления агента и критиков. Большие мини-пакеты уменьшают отклонение, когда вычислительные градиенты, но увеличивают вычислительное усилие.
ResetExperienceBufferBeforeTraining
— Опция для очистки буфера опытаtrue
(значение по умолчанию) | false
Опция для очистки буфера опыта перед обучением в виде логического значения.
NumStepsToLookAhead
— Количество шагов, чтобы смотреть вперед
(значение по умолчанию) | положительное целое числоКоличество шагов, чтобы смотреть вперед при вычислении возврата в виде положительного целого числа.
ExperienceBufferLength
— Испытайте buffer size
(значение по умолчанию) | положительное целое числоИспытайте buffer size в виде положительного целого числа. Во время обучения агент обновляет агента и критиков, использующих мини-пакет событий, случайным образом произведенных от буфера.
SampleTime
— Шаг расчета агента
(значение по умолчанию) | положительная скалярная величинаШаг расчета агента в виде положительной скалярной величины.
В окружении Simulink агент выполняется каждый SampleTime
секунды времени симуляции.
В среде MATLAB агент выполняется каждый раз усовершенствования среды. Однако SampleTime
временной интервал между последовательными элементами в выходном опыте, возвращенном sim
или train
.
DiscountFactor
— Коэффициент дисконтирования
(значение по умолчанию) | положительная скалярная величина, меньше чем или равная 1Коэффициент дисконтирования применился к будущим вознаграждениям во время обучения в виде положительной скалярной величины, меньше чем или равной 1.
SaveExperienceBufferWithAgent
— Опция для сохранения буфера опытаfalse
(значение по умолчанию) | true
Опция для того, чтобы сохранить опыт буферизует данные при сохранении агента в виде логического значения. Эта опция применяется и при сохранении агентов кандидата во время обучения и при сохранении агентов с помощью save
функция.
Для некоторых агентов, таких как те с большим опытом буферные и основанные на изображении наблюдения, память, требуемая для сохранения их буфера опыта, является большой. В таких случаях, чтобы не сохранить буферные данные об опыте, устанавливают SaveExperienceBufferWithAgent
к false
.
Если вы планируете далее обучить своего сохраненного агента, можно начать обучение с буфера предыдущего опыта как начальная точка. В этом случае установите SaveExperienceBufferWithAgent
к true
.
NumWarmStartSteps
— Количество действий, чтобы взять перед обновляющимся агентом и критикомКоличество действий, чтобы взять перед обновляющимся агентом и критиками в виде положительного целого числа. По умолчанию, NumWarmStartSteps
значение равно MiniBatchSize
значение.
NumGradientStepsPerUpdate
— Количество градиента продвигается при обновлении агента и критиков
(значение по умолчанию) | положительное целое числоКоличество градиента продвигается, чтобы взять при обновлении агента и критиков в виде положительного целого числа.
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;
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.