Параметры агента SAC
Использовать rlSACAgentOptions объект для задания параметров для агентов soft actor-critic (SAC). Для создания агента SAC используйте rlSACAgent.
Дополнительные сведения см. в разделе Агенты Soft Actor-Critic.
Дополнительные сведения о различных типах агентов обучения усилению см. в разделе Агенты обучения усилению.
создает объект options для использования в качестве аргумента при создании агента SAC с использованием всех параметров по умолчанию. Свойства объекта можно изменить с помощью точечной нотации.opt = rlSACAgentOptions
EntropyWeightOptions - Параметры настройки энтропииEntropyWeightOptions объектПараметры настройки энтропии, указанные как EntropyWeightOptions со следующими свойствами.
EntropyWeight - Начальный вес компонента энтропии1 (по умолчанию) | положительный скалярНачальный вес компонента энтропии, заданный как положительный скаляр.
LearnRate - Коэффициент обучения оптимизатора3e-4 (по умолчанию) | неотрицательный скалярСкорость обучения оптимизатора, заданная как неотрицательный скаляр. Если LearnRate равно нулю, EntropyWeight фиксируется во время обучения и TargetEntropy значение игнорируется.
TargetEntropy - Целевое значение энтропии[] (по умолчанию) | скалярЦелевое значение энтропии для настройки веса энтропии, указанное как скаляр. Более высокое целевое значение энтропии стимулирует больше исследований.
Если не указать TargetEntropy, агент использует -A в качестве целевого значения, где A - количество действий.
Optimizer - Оптимизатор для настройки энтропии"adam" (по умолчанию) | "sgdm" | "rmsprop"Оптимизатор для настройки энтропии, указанный как одна из следующих строк.
"adam" - Используйте оптимизатор Adam. Можно задать скорости затухания скользящих средних градиента и квадрата градиента, используя GradientDecayFactor и SquaredGradientDecayFactor поля OptimizerParameters вариант.
"sgdm" - Использовать стохастический градиентный спуск с оптимизатором импульса (SGDM). Значение импульса можно задать с помощью Momentum области OptimizerParameters вариант.
"rmsprop" - использовать оптимизатор RMSProp. Скорость затухания квадратичного градиентного скользящего среднего можно задать с помощью SquaredGradientDecayFactor поля OptimizerParameters вариант.
Дополнительные сведения об этих оптимизаторах см. в разделе Стохастический градиентный спуск в 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 - Максимальная длина траектории обучения партии при использовании РНН1 (по умолчанию) | положительное целое числоМаксимальная длина пакетно-тренировочной траектории при использовании рекуррентной нейронной сети, заданная как положительное целое число. Это значение должно быть больше 1 при использовании рецидивирующей нейронной сети и 1 в противном случае.
MiniBatchSize - Размер мини-партии случайного опыта64 (по умолчанию) | положительное целое числоРазмер мини-пакета случайного опыта, указанный как положительное целое число. Во время каждого учебного эпизода агент случайным образом отсчитывает переживания из буфера опыта при вычислении градиентов для обновления актера и критиков. Большие мини-пакеты уменьшают дисперсию при вычислении градиентов, но увеличивают вычислительные усилия.
ResetExperienceBufferBeforeTraining - Возможность очистки буфера опытаtrue (по умолчанию) | falseПараметр очистки буфера опыта перед обучением, заданный как логическое значение.
NumStepsToLookAhead - Количество будущих вознаграждений, используемых для оценки стоимости полиса1 (по умолчанию) | положительное целое числоКоличество будущих вознаграждений, используемых для оценки стоимости полиса, указанного как положительное целое число. Для получения дополнительной информации см. [1] (глава 7).
Количество будущих вознаграждений, используемых для оценки стоимости полиса, указанного как положительное целое число. Для получения дополнительной информации см. главу 7 [1].
ExperienceBufferLength - Размер буфера опыта10000 (по умолчанию) | положительное целое числоРазмер буфера опыта, указанный как положительное целое число. Во время обучения агент вычисляет обновления, используя мини-пакет опытов, случайным образом отобранных из буфера.
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] Саттон, Ричард С. и Эндрю Г. Барто. Обучение усилению: введение. Второе издание. Адаптивные вычисления и машинное обучение. Кембридж, месса: The MIT Press, 2018.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.