Опции для агента DDPG
Используйте rlDDPGAgentOptions
объект для задания опций агентов глубокого детерминированного градиента политики (DDPG). Чтобы создать агента DDPG, используйте rlDDPGAgent
.
Для получения дополнительной информации см. «Глубокая детерминированная Политикой градиентные Агенты».
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
создает объект опции для использования в качестве аргумента при создании агента DDPG с использованием всех опций по умолчанию. Вы можете изменить свойства объекта с помощью записи через точку.opt
= rlDDPGAgentOptions
NoiseOptions
- Опции модели шумаOrnsteinUhlenbeckActionNoise
объектОпции модели шума, заданные как OrnsteinUhlenbeckActionNoise
объект. Для получения дополнительной информации о модели шума, см. Noise Model.
Для агента с несколькими действиями, если действия имеют различные области значений и модули, вероятно, что каждое действие требует различных параметров модели шума. Если действия имеют сходные области значений и модули, можно задать параметры шума для всех действий в одно и то же значение.
Для примера для агента с двумя действиями установите стандартное отклонение каждого действия на разное значение при использовании одной и той же скорости затухания для обоих стандартных отклонений.
opt = rlDDPGAgentOptions; opt.ExplorationModel.StandardDeviation = [0.1 0.2]; opt.ExplorationModel.StandardDeviationDecayRate = 1e-4;
TargetSmoothFactor
- Коэффициент сглаживания для обновлений целевого актёра и критика1e-3
(по умолчанию) | положительная скалярная величина, меньше или равный 1Коэффициент сглаживания для обновлений целевого актёра и критика, заданный как положительная скалярная величина, меньше или равная 1. Дополнительные сведения см. в разделе Методы целевого обновления.
TargetUpdateFrequency
- Количество шагов между обновлениями целевого актёра и критика1
(по умолчанию) | положительное целое числоКоличество шагов между обновлениями целевого актёра и критика, заданное как положительное целое число. Дополнительные сведения см. в разделе Методы целевого обновления.
ResetExperienceBufferBeforeTraining
- Опция для очистки буфера опытаtrue
(по умолчанию) | false
Опция для очистки буфера опыта перед обучением, заданная как логическое значение.
SaveExperienceBufferWithAgent
- Опция для сохранения буфера опытаfalse
(по умолчанию) | true
Опция сохранения данных буфера опыта при сохранении агента, заданная как логическое значение. Эта опция применяется как при сохранении агентов-кандидатов во время обучения, так и при сохранении агентов, использующих save
функция.
Для некоторых агентов, таких как те, которые имеют большой буфер опыта и наблюдения на основе изображений, память, необходимая для сохранения буфера опыта, велика. В таких случаях, чтобы не сохранять буферные данные опыта, задайте SaveExperienceBufferWithAgent
на false
.
Если вы планируете продолжить обучение своего сохраненного агента, можно начать обучение с предыдущего буфера опыта в качестве начальной точки. В этом случае установите SaveExperienceBufferWithAgent
на true
.
SequenceLength
- Максимальная длина траектории обучения пакетов при использовании RNN1
(по умолчанию) | положительное целое числоМаксимальная длина траектории обучения пакетов при использовании рекуррентной нейронной сети, заданная как положительное целое число. Это значение должно быть больше 1
при использовании рекуррентной нейронной сети и 1
в противном случае.
MiniBatchSize
- Размер мини-пакета случайного опыта64
(по умолчанию) | положительное целое числоРазмер мини-пакета случайных ощущений, заданный как положительное целое число. Во время каждого эпизода тренировки агент случайным образом производит выборки из буфера опыта при вычислении градиентов для обновления свойств критика. Большие мини-пакеты уменьшают отклонение при вычислении градиентов, но увеличивают вычислительные усилия.
NumStepsToLookAhead
- Число будущих вознаграждений, используемых для оценки значения политики1
(по умолчанию) | положительное целое числоКоличество будущих вознаграждений, используемых для оценки значения политики, заданное как положительное целое число. Для получения дополнительной информации см. раздел [1] (глава 7).
Количество будущих вознаграждений, используемых для оценки значения политики, заданное как положительное целое число. Для получения дополнительной информации см. главу 7 [1].
ExperienceBufferLength
- Опыт buffer size10000
(по умолчанию) | положительное целое числоИспытайте buffer size, заданный как положительное целое число. Во время обучения агент вычисляет обновления с помощью мини-пакета событий, случайным образом выбранных из буфера.
SampleTime
- Шаг расчета агента1
(по умолчанию) | положительная скалярная величинаШаг расчета агента, заданная как положительная скалярная величина.
В Simulink® окружение, агент выполняется каждый SampleTime
секунды времени симуляции.
В MATLAB® окружение, агент выполняется каждый раз, когда окружение прогрессирует. Однако SampleTime
- временной интервал между последовательными элементами в выходном опыте, возвращаемый sim
или train
.
DiscountFactor
- Коэффициент дисконтирования0.99
(по умолчанию) | положительная скалярная величина, меньше или равный 1Коэффициент дисконтирования, применяемый к будущим вознаграждениям во время обучения, задается как положительная скалярная величина, меньше или равная 1.
rlDDPGAgent | Агент глубокого детерминированного градиента обучения с подкреплением политики |
В этом примере показано, как создать объект опции агента DDPG.
Создайте rlDDPGAgentOptions
объект, задающий размер мини-пакета.
opt = rlDDPGAgentOptions('MiniBatchSize',48)
opt = rlDDPGAgentOptions with properties: NoiseOptions: [1x1 rl.option.OrnsteinUhlenbeckActionNoise] TargetSmoothFactor: 1.0000e-03 TargetUpdateFrequency: 1 ResetExperienceBufferBeforeTraining: 1 SaveExperienceBufferWithAgent: 0 SequenceLength: 1 MiniBatchSize: 48 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9900
Можно изменять опции с помощью записи через точку. Для примера установите значение шага расчета агента равным 0.5
.
opt.SampleTime = 0.5;
Агенты DDPG используют модель шума действия Орнштейна-Уленбека для исследования.
Система координат OrnsteinUhlenbeckActionNoise
объект имеет следующие числовые значения свойства.
Свойство | Описание | Значение по умолчанию |
---|---|---|
InitialAction | Начальное значение действия для модели шума | 0 |
Mean | Модель шума средняя | 0 |
MeanAttractionConstant | Константа, определяющая, как быстро привлекается выход модели шума к среднему значению | 0.15 |
StandardDeviationDecayRate | Скорость распада стандартного отклонения | 0 |
StandardDeviation | Стандартное отклонение модели шума | 0.3 |
StandardDeviationMin | Минимальное стандартное отклонение | 0 |
На каждом временном шаге расчета k
, значение шума v(k)
обновляется по следующей формуле, где Ts
является шагом расчета агентом, и начальное значение v (1) определяется InitialAction
параметр.
v(k+1) = v(k) + MeanAttractionConstant.*(Mean - v(k)).*Ts + StandardDeviation(k).*randn(size(Mean)).*sqrt(Ts)
На каждом временном шаге расчета стандартное отклонение затухает, как показано на следующем коде.
decayedStandardDeviation = StandardDeviation(k).*(1 - StandardDeviationDecayRate); StandardDeviation(k+1) = max(decayedStandardDeviation,StandardDeviationMin);
Можно вычислить, сколько выборок потребуется для сокращения стандартного отклонения вдвое, используя эту простую формулу.
halflife = log(0.5)/log(1-StandardDeviationDecayRate);
Для сигналов непрерывного действия важно задать стандартное отклонение шума соответствующим образом, чтобы стимулировать исследования. Обычно задавать StandardDeviation*sqrt(Ts)
к значению от 1% до 10% вашей области значений действий.
Если ваш агент сходится на локальном оптимуме слишком быстро, способствуйте исследованию агента, увеличивая количество шума; то есть путем увеличения стандартного отклонения. Кроме того, чтобы увеличить разведку, можно уменьшить StandardDeviationDecayRate
.
OrnsteinUhlenbeckActionNoise
объект изменилсяНе рекомендуемый запуск в R2021a
Свойства, определяющие распределение вероятностей модели шума Орнштейна-Уленбека (OU), были переименованы. Агенты DDPG используют шум OU для исследования.
The Variance
свойство было переименовано StandardDeviation
.
The VarianceDecayRate
свойство было переименовано StandardDeviationDecayRate
.
The VarianceMin
свойство было переименовано StandardDeviationMin
.
Значения по умолчанию этих свойств остаются неизменными. Когда OrnsteinUhlenbeckActionNoise
загружается объект шума, сохраненный из предыдущего релиза MATLAB, значения Variance
, VarianceDecayRate
, и VarianceMin
копируются в StandardDeviation
, StandardDeviationDecayRate
, и StandardDeviationMin
, соответственно.
The Variance
, VarianceDecayRate
, и VarianceMin
свойства все еще работают, но они не рекомендованы. Чтобы задать распределение вероятностей модели шума OU, используйте вместо этого новые имена свойства.
В этой таблице показано, как обновить код, чтобы использовать новые имена свойства для rlDDPGAgentOptions
ddpgopt объекта
.
Не рекомендуется | Рекомендуется |
---|---|
ddpgopt.NoiseOptions.Variance = 0.5; |
ddpgopt.NoiseOptions.StandardDeviation = 0.5; |
ddpgopt.NoiseOptions.VarianceDecayRate = 0.1; |
ddpgopt.NoiseOptions.StandardDeviationDecayRate = 0.1; |
ddpgopt.NoiseOptions.VarianceMin = 0; |
ddpgopt.NoiseOptions.StandardDeviationMin = 0; |
Поведение изменено в R2020a
Изменены параметры целевого метода обновления для агентов DDPG. Следующие изменения требуют обновления вашего кода:
The TargetUpdateMethod
опция удалена. Теперь агенты DDPG определяют целевой метод обновления на основе TargetUpdateFrequency
и TargetSmoothFactor
значений опций.
Значение по умолчанию TargetUpdateFrequency
изменился с 4
на 1
.
Чтобы использовать один из следующих методов целевого обновления, установите TargetUpdateFrequency
и TargetSmoothFactor
свойства, как указано.
Метод обновления | TargetUpdateFrequency | TargetSmoothFactor |
---|---|---|
Сглаживание | 1 | Меньше 1 |
Периодический | Больше 1 | 1 |
Периодическое сглаживание (новый метод в R2020a) | Больше 1 | Меньше 1 |
Целевое строение обновления по умолчанию, который является сглаживающим обновлением с TargetSmoothFactor
значение 0.001
, остается тем же.
В этой таблице показаны некоторые типичные виды использования rlDDPGAgentOptions
и как обновить код, чтобы использовать новое строение опции.
Не рекомендуется | Рекомендуется |
---|---|
opt = rlDDPGAgentOptions('TargetUpdateMethod',"smoothing"); |
opt = rlDDPGAgentOptions; |
opt = rlDDPGAgentOptions('TargetUpdateMethod',"periodic"); |
opt = rlDDPGAgentOptions; opt.TargetUpdateFrequency = 4; opt.TargetSmoothFactor = 1; |
opt = rlDDPGAgentOptions; opt.TargetUpdateMethod = "periodic"; opt.TargetUpdateFrequency = 5; |
opt = rlDDPGAgentOptions; opt.TargetUpdateFrequency = 5; opt.TargetSmoothFactor = 1; |
[1] Саттон, Ричард С. и Эндрю Г. Барто. Обучение с подкреплением: введение. Второе издание. Адаптивные расчеты и машинное обучение. Cambridge, Mass: The MIT Press, 2018.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.