Опции для агента 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.