Опции для агента DDPG
Используйте rlDDPGAgentOptions объект задать опции для агентов глубоко детерминированного градиента политики (DDPG). Чтобы создать агента DDPG, используйте rlDDPGAgent.
Для получения дополнительной информации смотрите Глубоко Детерминированных Агентов Градиента политики.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
создает объект опций для использования в качестве аргумента при создании агента DDPG с помощью всех опций по умолчанию. Можно изменить свойства объектов с помощью записи через точку.opt = rlDDPGAgentOptions
NoiseOptions — Шумовые опции моделиOrnsteinUhlenbeckActionNoise объектШумовые опции модели в виде OrnsteinUhlenbeckActionNoise объект. Для получения дополнительной информации о шумовой модели см. Шумовую Модель.
Для агента с несколькими действиями, если действия имеют различные области значений и модули, вероятно, что каждое действие требует различных шумовых параметров модели. Если действия имеют подобные области значений и модули, можно установить шумовые параметры для всех действий к тому же значению.
Например, для агента с двумя действиями, устанавливает отклонение каждого действия к различному значению при использовании того же уровня затухания в обоих отклонениях.
opt = rlDDPGAgentOptions; opt.ExplorationModel.Variance = [0.1 0.2]; opt.ExplorationModel.VarianceDecayRate = 1e-4;
TargetSmoothFactor — Коэффициент сглаживания для целевого агента и обновлений критика1e-3 (значение по умолчанию) | положительная скалярная величина, меньше чем или равная 1Коэффициент сглаживания для целевого агента и критика обновляется в виде положительной скалярной величины, меньше чем или равной 1. Для получения дополнительной информации см. Целевые Методы Обновления.
TargetUpdateFrequency — Количество шагов между целевым агентом и обновлениями критика (значение по умолчанию) | положительное целое числоКоличество шагов между целевым агентом и критиком обновляется в виде положительного целого числа. Для получения дополнительной информации см. Целевые Методы Обновления.
ResetExperienceBufferBeforeTraining — Отметьте для очистки буфера опытаtrue (значение по умолчанию) | falseОтметьте для очистки буфера опыта перед обучением в виде логического значения.
SaveExperienceBufferWithAgent — Отметьте для сохранения буфера опытаfalse (значение по умолчанию) | trueОтметьте для того, чтобы сохранить буферные данные об опыте при сохранении агента в виде логического значения. Эта опция применяется и при сохранении агентов кандидата во время обучения и при сохранении агентов с помощью save функция.
Для некоторых агентов, таких как те с большим опытом буферные и основанные на изображении наблюдения, память, требуемая для сохранения их буфера опыта, является большой. В таких случаях, чтобы не сохранить буферные данные об опыте, устанавливают SaveExperienceBufferWithAgent к false.
Если вы планируете далее обучить своего сохраненного агента, можно начать обучение с буфера предыдущего опыта как начальная точка. В этом случае установите SaveExperienceBufferWithAgent к true.
MiniBatchSize — Размер случайного мини-пакета опыта (значение по умолчанию) | положительное целое числоРазмер случайного опыта мини-обрабатывает в пакетном режиме в виде положительного целого числа. Во время каждого эпизода тренировки агент случайным образом выборки испытывает от буфера опыта когда вычислительные градиенты для обновления свойств критика. Большие мини-пакеты уменьшают отклонение, когда вычислительные градиенты, но увеличивают вычислительное усилие.
NumStepsToLookAhead — Количество шагов вперед (значение по умолчанию) | положительное целое числоКоличество шагов, чтобы смотреть вперед во время обучения в виде положительного целого числа.
ExperienceBufferLength — Испытайте buffer size (значение по умолчанию) | положительное целое числоИспытайте buffer size в виде положительного целого числа. Во время обучения агент обновляет агента и критика, использующего мини-пакет событий, случайным образом произведенных от буфера.
SampleTime — Шаг расчета агента (значение по умолчанию) | положительная скалярная величинаШаг расчета агента в виде положительной скалярной величины.
DiscountFactor — Коэффициент дисконтирования (значение по умолчанию) | положительная скалярная величина, меньше чем или равная 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
MiniBatchSize: 48
NumStepsToLookAhead: 1
ExperienceBufferLength: 10000
SampleTime: 1
DiscountFactor: 0.9900
Можно изменить опции с помощью записи через точку. Например, установите шаг расчета агента на 0.5.
opt.SampleTime = 0.5;
OrnsteinUhlenbeckActionNoise объект имеет следующие свойства числового значения.
| Свойство | Описание |
|---|---|
InitialAction | Начальное значение действия для шумовой модели |
Mean | Шумовое среднее значение модели |
MeanAttractionConstant | Постоянное определение, как быстро шумовой выход модели привлечен к среднему значению |
Variance | Шумовое отклонение модели |
VarianceDecayRate | Уровень затухания отклонения |
VarianceMin | Минимальное отклонение |
На каждом шаге шага расчета шумовая модель обновляется с помощью следующей формулы, где Ts шаг расчета агента.
x(k) = x(k-1) + MeanAttractionConstant.*(Mean - x(k-1)).*Ts
+ Variance.*randn(size(Mean)).*sqrt(Ts)На каждом шаге шага расчета отклонение затухает как показано в следующем коде.
decayedVariance = Variance.*(1 - VarianceDecayRate); Variance = max(decayedVariance,VarianceMin);
Для непрерывных сигналов действия важно установить шумовое отклонение соответственно поощрять исследование. Распространено иметь Variance*sqrt(Ts) будьте между 1% и 10% вашей области значений действия.
Если ваш агент сходится на локальных оптимумах слишком быстро, способствуйте исследованию агента путем увеличения количества шума; то есть, путем увеличения отклонения. Кроме того, чтобы увеличить исследование, можно уменьшать VarianceDecayRate.
Поведение изменяется в R2020a
Цель обновляет настройки метода для агентов DDPG, изменились. Следующие изменения требуют обновлений вашего кода:
TargetUpdateMethod опция была удалена. Теперь агенты DDPG определяют целевой метод обновления на основе TargetUpdateFrequency и TargetSmoothFactor значения опции.
Значение по умолчанию TargetUpdateFrequency изменился от 4 к 1.
Чтобы использовать один из следующих целевых методов обновления, установите TargetUpdateFrequency и TargetSmoothFactor свойства, как обозначено.
| Метод Update | 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. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.