Параметры агента 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 - Количество шагов между обновлениями политики2 (по умолчанию) | положительное целое числоЧисло шагов между обновлениями политики, указанное как положительное целое число.
TargetSmoothFactor - Коэффициент сглаживания для обновлений целевого актера и критика0.005 (по умолчанию) | положительный скаляр меньше или равен 1Коэффициент сглаживания для обновления целевого актера и критика, заданный как положительный скаляр, меньший или равный 1. Дополнительные сведения см. в разделе Методы целевого обновления.
TargetUpdateFrequency - Количество шагов между обновлениями целевого исполнителя и критика2 (по умолчанию) | положительное целое числоЧисло шагов между обновлениями целевого исполнителя и критика, указанное как положительное целое число. Дополнительные сведения см. в разделе Методы целевого обновления.
ResetExperienceBufferBeforeTraining - Возможность очистки буфера опытаtrue (по умолчанию) | falseПараметр очистки буфера опыта перед обучением, заданный как логическое значение.
SaveExperienceBufferWithAgent - Возможность сохранения буфера опытаfalse (по умолчанию) | trueПараметр сохранения данных буфера опыта при сохранении агента, указанный как логическое значение. Эта опция применяется как при сохранении агентов-кандидатов во время обучения, так и при сохранении агентов с помощью save функция.
Для некоторых агентов, таких как агенты с большим буфером опыта и наблюдениями на основе изображений, память, необходимая для сохранения их буфера опыта, велика. В таких случаях, чтобы не сохранять данные буфера опыта, установите SaveExperienceBufferWithAgent кому false.
Если планируется дальнейшее обучение сохраненного агента, можно начать обучение с использованием буфера предыдущего опыта в качестве отправной точки. В этом случае установить SaveExperienceBufferWithAgent кому true.
SequenceLength - Максимальная длина траектории обучения партии при использовании РНН1 (по умолчанию) | положительное целое числоМаксимальная длина пакетно-тренировочной траектории при использовании рекуррентной нейронной сети, заданная как положительное целое число. Это значение должно быть больше 1 при использовании рецидивирующей нейронной сети и 1 в противном случае.
MiniBatchSize - Размер мини-партии случайного опыта64 (по умолчанию) | положительное целое числоРазмер мини-пакета случайного опыта, указанный как положительное целое число. Во время каждого учебного эпизода агент случайным образом производит выборку опыта из буфера опыта при вычислении градиентов для обновления свойств критика. Большие мини-пакеты уменьшают дисперсию при вычислении градиентов, но увеличивают вычислительные усилия.
NumStepsToLookAhead - Количество будущих вознаграждений, используемых для оценки стоимости полиса1 (по умолчанию) | положительное целое числоКоличество будущих вознаграждений, используемых для оценки стоимости полиса, указанного как положительное целое число. Для получения дополнительной информации см. [1] (глава 7).
Количество будущих вознаграждений, используемых для оценки стоимости полиса, указанного как положительное целое число. Для получения дополнительной информации см. главу 7 [1].
ExperienceBufferLength - Размер буфера опыта10000 (по умолчанию) | положительное целое числоРазмер буфера опыта, указанный как положительное целое число. Во время обучения агент вычисляет обновления, используя мини-пакет опытов, случайным образом отобранных из буфера.
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 для исследования и сглаживания целевой политики.
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] Саттон, Ричард С. и Эндрю Г. Барто. Обучение усилению: введение. Второе издание. Адаптивные вычисления и машинное обучение. Кембридж, месса: The MIT Press, 2018.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.