Опции для агента TD3
Используйте rlTD3AgentOptions
объект задать опции для задержанного близнецами глубоко детерминированный градиент политики (TD3) агенты. Чтобы создать агента TD3, использовать rlTD3Agent
Для получения дополнительной информации смотрите Задержанный Близнецами Глубоко Детерминированные Агенты Градиента политики.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
создает объект опций для использования в качестве аргумента при создании агента 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
— Количество шагов между обновлениями политики
(значение по умолчанию) | положительное целое числоКоличество шагов между политикой обновляется в виде положительного целого числа.
TargetSmoothFactor
— Коэффициент сглаживания для целевого агента и обновлений критика
(значение по умолчанию) | положительная скалярная величина, меньше чем или равная 1Коэффициент сглаживания для целевого агента и критика обновляется в виде положительной скалярной величины, меньше чем или равной 1. Для получения дополнительной информации см. Целевые Методы Обновления.
TargetUpdateFrequency
— Количество шагов между целевым агентом и обновлениями критика
(значение по умолчанию) | положительное целое числоКоличество шагов между целевым агентом и критиком обновляется в виде положительного целого числа. Для получения дополнительной информации см. Целевые Методы Обновления.
ResetExperienceBufferBeforeTraining
— Опция для очистки буфера опытаtrue
(значение по умолчанию) | false
Опция для очистки буфера опыта перед обучением в виде логического значения.
SaveExperienceBufferWithAgent
— Опция для сохранения буфера опытаfalse
(значение по умолчанию) | true
Опция для того, чтобы сохранить опыт буферизует данные при сохранении агента в виде логического значения. Эта опция применяется и при сохранении агентов кандидата во время обучения и при сохранении агентов с помощью save
функция.
Для некоторых агентов, таких как те с большим опытом буферные и основанные на изображении наблюдения, память, требуемая для сохранения их буфера опыта, является большой. В таких случаях, чтобы не сохранить буферные данные об опыте, устанавливают SaveExperienceBufferWithAgent
к false
.
Если вы планируете далее обучить своего сохраненного агента, можно начать обучение с буфера предыдущего опыта как начальная точка. В этом случае установите SaveExperienceBufferWithAgent
к true
.
SequenceLength
— Максимальная пакетно-учебная длина траектории при использовании RNN
(значение по умолчанию) | положительное целое числоМаксимальная пакетно-учебная длина траектории при использовании рекуррентной нейронной сети в виде положительного целого числа. Это значение должно быть больше 1
при использовании рекуррентной нейронной сети и 1
в противном случае.
MiniBatchSize
— Размер случайного мини-пакета опыта
(значение по умолчанию) | положительное целое числоРазмер случайного опыта мини-обрабатывает в пакетном режиме в виде положительного целого числа. Во время каждого эпизода тренировки агент случайным образом выборки испытывает от буфера опыта когда вычислительные градиенты для обновления свойств критика. Большие мини-пакеты уменьшают отклонение, когда вычислительные градиенты, но увеличивают вычислительное усилие.
NumStepsToLookAhead
— Количество будущих вознаграждений раньше оценивало значение политики
(значение по умолчанию) | положительное целое числоКоличество будущих вознаграждений раньше оценивало значение политики в виде положительного целого числа. Для получения дополнительной информации см. [1], Глава 7.
Обратите внимание на то, что, если параллельное обучение включено (это то, если rlTrainingOptions
объект опции, в который UseParallel
свойство установлено в true
передается train
) затем NumStepsToLookAhead
должен быть установлен в 1
, в противном случае ошибка сгенерирована. Это гарантирует, что события хранятся непрерывно.
.
ExperienceBufferLength
— Испытайте buffer size
(значение по умолчанию) | положительное целое числоИспытайте buffer size в виде положительного целого числа. Во время обучения агент вычисляет обновления с помощью мини-пакета событий, случайным образом произведенных от буфера.
SampleTime
— Шаг расчета агента
(значение по умолчанию) | положительная скалярная величинаШаг расчета агента в виде положительной скалярной величины.
В Simulink® среда, агент выполняется каждый SampleTime
секунды времени симуляции.
В MATLAB® среда, агент выполняется каждый раз усовершенствования среды. Однако SampleTime
временной интервал между последовательными элементами в выходном опыте, возвращенном sim
или train
.
DiscountFactor
— Коэффициент дисконтирования
(значение по умолчанию) | положительная скалярная величина, меньше чем или равная 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;
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 для исследования и целевого сглаживания политики.
Variance
свойство было заменено StandardDeviation
свойство.
VarianceDecayRate
свойство было заменено StandardDeviationDecayRate
свойство.
VarianceMin
свойство было заменено StandardDeviationMin
свойство.
Когда GaussianActionNoise
шумовой объект, сохраненный от предыдущего релиза MATLAB, загружается, значение VarianceDecayRate
копируется в StandardDeviationDecayRate
, в то время как квадратный корень из значений Variance
и VarianceMin
копируются в StandardDeviation
и StandardDeviationMin
, соответственно.
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 для исследования.
Variance
свойство было переименовано в StandardDeviation
.
VarianceDecayRate
свойство было переименовано в StandardDeviationDecayRate
.
VarianceMin
свойство было переименовано в StandardDeviationMin
.
Значения по умолчанию этих свойств остаются то же самое. Когда OrnsteinUhlenbeckActionNoise
шумовой объект, сохраненный от предыдущего релиза MATLAB, загружается, значения Variance
, VarianceDecayRate
, и VarianceMin
копируются в StandardDeviation
, StandardDeviationDecayRate
, и StandardDeviationMin
, соответственно.
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] Саттон, Ричард С. и Эндрю Г. Барто. Обучение с подкреплением: Введение. Второй выпуск. Адаптивный Расчет и Машинное обучение. Кембридж, Масса: Нажатие MIT, 2018.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.