Опции для агента SAC
Используйте rlSACAgentOptions
объект для задания опций агентов мягкого актёра-критика (SAC). Чтобы создать агента SAC, используйте rlSACAgent
.
Для получения дополнительной информации смотрите Агентов Мягкого Актёра-Критика.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
создает объект опции для использования в качестве аргумента при создании агента SAC с использованием всех опций по умолчанию. Вы можете изменить свойства объекта с помощью записи через точку.opt
= rlSACAgentOptions
EntropyWeightOptions
- Опции настройки энтропииEntropyWeightOptions
объектОпции настройки энтропии, заданные как EntropyWeightOptions
объект со следующими свойствами.
EntropyWeight
- Начальный вес энтропийного компонента1
(по умолчанию) | положительная скалярная величинаНачальный вес энтропийного компонента, заданный как положительная скалярная величина.
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
опция.
Для получения дополнительной информации об этих оптимизаторах см. Stochastic Gradient Descent in 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
- Количество шагов между обновлениями политики актёра1
(по умолчанию) | положительное целое числоКоличество шагов между обновлениями политики актёра, заданное как положительное целое число. Для получения дополнительной информации см. «Алгоритм настройки».
CriticUpdateFrequency
- Количество шагов между обновлениями критика1
(по умолчанию) | положительное целое числоКоличество шагов между обновлениями критика, заданное как положительное целое число. Для получения дополнительной информации см. «Алгоритм настройки».
TargetUpdateFrequency
- Количество шагов между обновлениями целевого критика1
(по умолчанию) | положительное целое числоКоличество шагов между обновлениями целевого критика, заданное как положительное целое число. Дополнительные сведения см. в разделе Методы целевого обновления.
UseDeterministicExploitation
- Использовать действие с максимальной вероятностьюfalse
(по умолчанию) | true
Опция возврата действия с максимальной вероятностью для симуляции и генерации политики, заданная как логическое значение. Когда UseDeterministicExploitation
установлено в true
, действие с максимальной вероятностью всегда используется в sim
и generatePolicyFunction
, что заставляет агента вести себя детерминированно.
Когда UseDeterministicExploitation
установлено в false
агент отсчитывает действия из распределений вероятностей, что заставляет агента вести себя стохастически.
TargetSmoothFactor
- Коэффициент сглаживания для обновлений целевого критика1e-3
(по умолчанию) | положительная скалярная величина, меньше или равный 1Коэффициент сглаживания для обновлений целевого критика, заданный как положительная скалярная величина, меньше или равная 1. Дополнительные сведения см. в разделе Методы целевого обновления.
SequenceLength
- Максимальная длина траектории обучения пакетов при использовании RNN1
(по умолчанию) | положительное целое числоМаксимальная длина траектории обучения пакетов при использовании рекуррентной нейронной сети, заданная как положительное целое число. Это значение должно быть больше 1
при использовании рекуррентной нейронной сети и 1
в противном случае.
MiniBatchSize
- Размер мини-пакета случайного опыта64
(по умолчанию) | положительное целое числоРазмер мини-пакета случайных ощущений, заданный как положительное целое число. Во время каждого эпизода тренировки агент случайным образом производит выборки из буфера опыта при вычислении градиентов для обновления актёра и критиков. Большие мини-пакеты уменьшают отклонение при вычислении градиентов, но увеличивают вычислительные усилия.
ResetExperienceBufferBeforeTraining
- Опция для очистки буфера опытаtrue
(по умолчанию) | false
Опция для очистки буфера опыта перед обучением, заданная как логическое значение.
NumStepsToLookAhead
- Число будущих вознаграждений, используемых для оценки значения политики1
(по умолчанию) | положительное целое числоКоличество будущих вознаграждений, используемых для оценки значения политики, заданное как положительное целое число. Для получения дополнительной информации см. раздел [1] (глава 7).
Количество будущих вознаграждений, используемых для оценки значения политики, заданное как положительное целое число. Для получения дополнительной информации см. главу 7 [1].
ExperienceBufferLength
- Опыт buffer size10000
(по умолчанию) | положительное целое числоИспытайте buffer size, заданный как положительное целое число. Во время обучения агент вычисляет обновления с помощью мини-пакета событий, случайным образом выбранных из буфера.
SampleTime
- Шаг расчета агента1
(по умолчанию) | положительная скалярная величинаШаг расчета агента, заданная как положительная скалярная величина.
В Simulink® окружение, агент выполняется каждый SampleTime
секунды времени симуляции.
В MATLAB® окружение, агент выполняется каждый раз, когда окружение прогрессирует. Однако SampleTime
- временной интервал между последовательными элементами в выходном опыте, возвращаемый sim
или train
.
DiscountFactor
- Коэффициент дисконтирования0.99
(по умолчанию) | положительная скалярная величина, меньше или равный 1Коэффициент дисконтирования, применяемый к будущим вознаграждениям во время обучения, задается как положительная скалярная величина, меньше или равная 1.
SaveExperienceBufferWithAgent
- Опция для сохранения буфера опытаfalse
(по умолчанию) | true
Опция сохранения данных буфера опыта при сохранении агента, заданная как логическое значение. Эта опция применяется как при сохранении агентов-кандидатов во время обучения, так и при сохранении агентов, использующих save
функция.
Для некоторых агентов, таких как те, которые имеют большой буфер опыта и наблюдения на основе изображений, память, необходимая для сохранения буфера опыта, велика. В таких случаях, чтобы не сохранять буферные данные опыта, задайте SaveExperienceBufferWithAgent
на false
.
Если вы планируете продолжить обучение своего сохраненного агента, можно начать обучение с предыдущего буфера опыта в качестве начальной точки. В этом случае установите SaveExperienceBufferWithAgent
на true
.
NumWarmStartSteps
- Количество действий, которые необходимо предпринять до обновления актёра и критикаКоличество действий, которые нужно предпринять перед обновлением актёра и критиков, заданное как положительное целое число. По умолчанию в NumWarmStartSteps
значение равно MiniBatchSize
значение.
NumGradientStepsPerUpdate
- Количество градиентных шагов при обновлении актёра и критиков1
(по умолчанию) | положительное целое числоКоличество градиентных шагов, которые необходимо предпринять при обновлении актёра и критиков, заданное как положительное целое число.
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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.