Опции для TD3 агента
Используйте rlTD3AgentOptions
объект для задания опций для агентов градиента (TD3) глубокой детерминированной политики с двумя задержками. Чтобы создать агента TD3, используйте rlTD3Agent
Для получения дополнительной информации смотрите Twin-Delayed Deep Deterministic Policy Gradient Agents.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
создает объект options для использования в качестве аргумента при создании агента TD3 с использованием всех опций по умолчанию. Вы можете изменить свойства объекта с помощью записи через точку.opt
= rlTD3AgentOptions
ExplorationModel
- Опции модели исследовательского шумаGaussianActionNoise
объект (по умолчанию) | OrnsteinUhlenbeckActionNoise
объектОпции модели шума, заданные как GaussianActionNoise
объект или OrnsteinUhlenbeckActionNoise
объект. Для получения дополнительной информации о шумовых моделях см. «Модели шума».
Для агента с несколькими действиями, если действия имеют различные области значений и модули, вероятно, что каждое действие требует различных параметров модели шума. Если действия имеют сходные области значений и модули, можно задать параметры шума для всех действий в одно и то же значение.
Для примера для агента с двумя действиями установите стандартное отклонение каждого действия на разное значение при использовании одной и той же скорости затухания для обоих стандартных отклонений.
opt = rlTD3AgentOptions; opt.ExplorationModel.StandardDeviation = [0.1 0.2]; opt.ExplorationModel.StandardDeviationDecayRate = 1e-4;
TargetPolicySmoothModel
- Целевые опции модели сглаживания шумаGaussianActionNoise
объектЦелевые опции модели сглаживания шума, заданные как GaussianActionNoise
объект. Эта модель помогает политике использовать действия с высокими оценками Q-значений. Для получения дополнительной информации о шумовых моделях см. «Модели шума».
Для агента с несколькими действиями, если действия имеют различные области значений и модули, вероятно, что каждое действие требует различных параметров модели сглаживания шума. Если действия имеют сходные области значений и модули, можно задать параметры шума для всех действий в одно и то же значение.
Для примера для агента с двумя действиями установите стандартное отклонение каждого действия на разное значение при использовании одной и той же скорости затухания для обоих стандартных отклонений.
opt = rlTD3AgentOptions; opt.TargetPolicySmoothModel.StandardDeviation = [0.1 0.2]; opt.TargetPolicySmoothModel.StandardDeviationDecayRate = 1e-4;
PolicyUpdateFrequency
- Количество шагов между обновлениями политики2
(по умолчанию) | положительное целое числоКоличество шагов между обновлениями политики, заданное как положительное целое число.
TargetSmoothFactor
- Коэффициент сглаживания для обновлений целевого актёра и критика0.005
(по умолчанию) | положительная скалярная величина, меньше или равный 1Коэффициент сглаживания для обновлений целевого актёра и критика, заданный как положительная скалярная величина, меньше или равная 1. Дополнительные сведения см. в разделе Методы целевого обновления.
TargetUpdateFrequency
- Количество шагов между обновлениями целевого актёра и критика2
(по умолчанию) | положительное целое числоКоличество шагов между обновлениями целевого актёра и критика, заданное как положительное целое число. Дополнительные сведения см. в разделе Методы целевого обновления.
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.
rlTD3Agent | Агент обучения с подкреплением с двумя задержками в глубоком детерминировании политики |
В этом примере показано, как создать объект опции агента TD3.
Создайте rlTD3AgentOptions
объект, задающий размер мини-пакета.
opt = rlTD3AgentOptions('MiniBatchSize',48)
opt = rlTD3AgentOptions with properties: ExplorationModel: [1x1 rl.option.GaussianActionNoise] TargetPolicySmoothModel: [1x1 rl.option.GaussianActionNoise] PolicyUpdateFrequency: 2 TargetSmoothFactor: 0.0050 TargetUpdateFrequency: 2 ResetExperienceBufferBeforeTraining: 1 SaveExperienceBufferWithAgent: 0 SequenceLength: 1 MiniBatchSize: 48 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9900
Можно изменять опции с помощью записи через точку. Для примера установите значение шага расчета агента равным 0.5
.
opt.SampleTime = 0.5;
A GaussianActionNoise
объект имеет следующие числовые значения свойства.
Свойство | Описание | Значение по умолчанию (ExplorationModel ) | Значение по умолчанию (TargetPolicySmoothModel ) |
---|---|---|---|
Mean | Модель шума средняя | 0 | 0 |
StandardDeviationDecayRate | Скорость распада стандартного отклонения | 0 | 0 |
StandardDeviation | Стандартное отклонение модели шума | sqrt(0.1) | sqrt(0.2) |
StandardDeviationMin | Минимальное стандартное отклонение, которое должно быть меньше StandardDeviation | 0.01 | 0.01 |
LowerLimit | Нижний предел выборки шума | -Inf | -0.5 |
UpperLimit | Верхний предел шумовой выборки | Inf | 0.5 |
На каждом временном шаге k
, Гауссов шум v
дискретизируется как показано на следующем коде.
w = Mean + rand(ActionSize).*StandardDeviation(k); v(k+1) = min(max(w,LowerLimit),UpperLimit);
Где начальное значение v (1) определяется InitialAction
параметр. На каждом временном шаге расчета стандартное отклонение затухает, как показано на следующем коде.
decayedStandardDeviation = StandardDeviation(k).*(1 - StandardDeviationDecayRate); StandardDeviation(k+1) = max(decayedStandardDeviation,StandardDeviationMin);
Система координат 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
.
GaussianActionNoise
объект изменилсяНе рекомендуемый запуск в R2021a
Свойства, определяющие распределение вероятностей модели Гауссова шума действия, изменились. Эта модель шума используется агентами TD3 для исследования и сглаживания целевой политики.
The Variance
свойство было заменено на StandardDeviation
свойство.
The VarianceDecayRate
свойство было заменено на StandardDeviationDecayRate
свойство.
The VarianceMin
свойство было заменено на StandardDeviationMin
свойство.
Когда GaussianActionNoise
загружен объект шума, сохраненный с предыдущего релиза MATLAB, значение VarianceDecayRate
копируется в StandardDeviationDecayRate
, в то время как квадратный корень из значений Variance
и VarianceMin
копируются в StandardDeviation
и StandardDeviationMin
, соответственно.
The Variance
, VarianceDecayRate
, и VarianceMin
свойства все еще работают, но они не рекомендованы. Чтобы задать распределение вероятностей модели Гауссова шума действия, используйте вместо этого новые имена свойства.
В этой таблице показано, как обновить код, чтобы использовать новые имена свойства для rlTD3AgentOptions
td3opt объекта
.
Не рекомендуется | Рекомендуется |
---|---|
td3opt.ExplorationModel.Variance = 0.5; |
td3opt.ExplorationModel.StandardDeviation = sqrt(0.5); |
td3opt.ExplorationModel.VarianceDecayRate = 0.1; |
td3opt.ExplorationModel.StandardDeviationDecayRate = 0.1; |
td3opt.ExplorationModel.VarianceMin = 0.1; |
td3opt.ExplorationModel.StandardDeviationMin = sqrt(0.1); |
OrnsteinUhlenbeckActionNoise
объект изменилсяНе рекомендуемый запуск в R2021a
Свойства, определяющие распределение вероятностей модели шума Орнштейна-Уленбека (OU), были переименованы. TD3 агенты используют шум OU для исследования.
The Variance
свойство было переименовано StandardDeviation
.
The VarianceDecayRate
свойство было переименовано StandardDeviationDecayRate
.
The VarianceMin
свойство было переименовано StandardDeviationMin
.
Значения по умолчанию этих свойств остаются неизменными. Когда OrnsteinUhlenbeckActionNoise
загружается объект шума, сохраненный из предыдущего релиза MATLAB, значения Variance
, VarianceDecayRate
, и VarianceMin
копируются в StandardDeviation
, StandardDeviationDecayRate
, и StandardDeviationMin
, соответственно.
The Variance
, VarianceDecayRate
, и VarianceMin
свойства все еще работают, но они не рекомендованы. Чтобы задать распределение вероятностей модели шума OU, используйте вместо этого новые имена свойства.
В этой таблице показано, как обновить код, чтобы использовать новые имена свойства для rlTD3AgentOptions
td3opt объекта
.
Не рекомендуется | Рекомендуется |
---|---|
td3opt.ExplorationModel.Variance = 0.5; |
td3opt.ExplorationModel.StandardDeviation = sqrt(0.5); |
td3opt.ExplorationModel.VarianceDecayRate = 0.1; |
td3opt.ExplorationModel.StandardDeviationDecayRate = 0.1; |
td3opt.ExplorationModel.VarianceMin = 0.1; |
td3opt.ExplorationModel.StandardDeviationMin = sqrt(0.1); |
td3opt.TargetPolicySmoothModel.Variance = 0.5; |
td3opt.TargetPolicySmoothModel.StandardDeviation = sqrt(0.5); |
td3opt.TargetPolicySmoothModel.VarianceDecayRate = 0.1; |
td3opt.TargetPolicySmoothModel.StandardDeviationDecayRate = 0.1; |
td3opt.TargetPolicySmoothModel.VarianceMin = 0.1; |
td3opt.TargetPolicySmoothModel.StandardDeviationMin = sqrt(0.1); |
[1] Саттон, Ричард С. и Эндрю Г. Барто. Обучение с подкреплением: введение. Второе издание. Адаптивные расчеты и машинное обучение. Cambridge, Mass: The MIT Press, 2018.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.