Опции для агента DQN
Используйте rlDQNAgentOptions объект задать опции для агентов глубокой Q-сети (DQN). Чтобы создать агента DQN, используйте rlDQNAgent.
Для получения дополнительной информации смотрите Глубоких Агентов Q-сети.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.
создает объект опций для использования в качестве аргумента при создании агента DQN с помощью всех настроек по умолчанию. Можно изменить свойства объектов с помощью записи через точку.opt = rlDQNAgentOptions
UseDoubleDQN — Отметьте для использования двойного DQNОтметьте для использования двойного DQN для целевых обновлений функции ценности в виде логического значения. Поскольку большая часть приложения установила UseDoubleDQN к "on". Для получения дополнительной информации смотрите Глубоких Агентов Q-сети.
EpsilonGreedyExploration — Опции для эпсилон-жадного исследованияEpsilonGreedyExploration объектОпции для эпсилон-жадного исследования в виде EpsilonGreedyExploration объект со следующими свойствами.
| Свойство | Описание | Значение по умолчанию |
|---|---|---|
Epsilon | Порог вероятности или к случайным образом выбирает действие или выбирает действие, которое максимизирует функцию ценности состояния активности. Большее значение Epsilon средние значения, что агент случайным образом исследует пространство действий на более высоком уровне. | 1 |
EpsilonMin | Минимальное значение Epsilon | 0.01 |
EpsilonDecay | Уровень затухания | 0.0050 |
В конце каждого учебного временного шага, если Epsilon больше EpsilonMin, затем это обновляется с помощью следующей формулы.
Epsilon = Epsilon*(1-EpsilonDecay)
Если ваш агент сходится на локальных оптимумах слишком быстро, можно способствовать исследованию агента путем увеличения Epsilon.
Чтобы задать опции исследования, используйте запись через точку после создания rlDQNAgentOptions объект opt. Например, установите значение эпсилона к 0.9.
opt.EpsilonGreedyExploration.Epsilon = 0.9;
SequenceLength — Максимальная пакетно-учебная длина траектории при использовании RNN (значение по умолчанию) | положительное целое числоМаксимальная пакетно-учебная длина траектории при использовании рекуррентной нейронной сети для критика в виде положительного целого числа. Это значение должно быть больше 1 при использовании рекуррентной нейронной сети для критика и 1 в противном случае.
TargetSmoothFactor — Коэффициент сглаживания для целевых обновлений критика1e-3 (значение по умолчанию) | положительная скалярная величина, меньше чем или равная 1Коэффициент сглаживания для целевого критика обновляется в виде положительной скалярной величины, меньше чем или равной 1. Для получения дополнительной информации см. Целевые Методы Обновления.
TargetUpdateFrequency — Количество шагов между целевыми обновлениями критика (значение по умолчанию) | положительное целое числоКоличество шагов между целевым критиком обновляется в виде положительного целого числа. Для получения дополнительной информации см. Целевые Методы Обновления.
ResetExperienceBufferBeforeTraining — Опция для очистки буфера опытаtrue (значение по умолчанию) | falseОпция для очистки буфера опыта перед обучением в виде логического значения.
SaveExperienceBufferWithAgent — Опция для сохранения буфера опытаfalse (значение по умолчанию) | trueОпция для того, чтобы сохранить опыт буферизует данные при сохранении агента в виде логического значения. Эта опция применяется и при сохранении агентов кандидата во время обучения и при сохранении агентов с помощью save функция.
Для некоторых агентов, таких как те с большим опытом буферные и основанные на изображении наблюдения, память, требуемая для сохранения их буфера опыта, является большой. В таких случаях, чтобы не сохранить буферные данные об опыте, устанавливают SaveExperienceBufferWithAgent к false.
Если вы планируете далее обучить своего сохраненного агента, можно начать обучение с буфера предыдущего опыта как начальная точка. В этом случае установите SaveExperienceBufferWithAgent к true.
MiniBatchSize — Размер случайного мини-пакета опыта (значение по умолчанию) | положительное целое числоРазмер случайного опыта мини-обрабатывает в пакетном режиме в виде положительного целого числа. Во время каждого эпизода тренировки агент случайным образом выборки испытывает от буфера опыта когда вычислительные градиенты для обновления свойств критика. Большие мини-пакеты уменьшают отклонение, когда вычислительные градиенты, но увеличивают вычислительное усилие.
При использовании рекуррентной нейронной сети для критика, MiniBatchSize количество траекторий опыта в пакете, где каждая траектория имеет длину, равную SequenceLength.
NumStepsToLookAhead — Количество будущих вознаграждений раньше оценивало значение политики (значение по умолчанию) | положительное целое числоКоличество будущих вознаграждений раньше оценивало значение политики в виде положительного целого числа. Для получения дополнительной информации см. главу 7 [1].
N-шаг Q, учащийся, не поддерживается при использовании рекуррентной нейронной сети для критика. В этом случае, NumStepsToLookAhead должен быть 1.
ExperienceBufferLength — Испытайте buffer size (значение по умолчанию) | положительное целое числоИспытайте buffer size в виде положительного целого числа. Во время обучения агент вычисляет обновления с помощью мини-пакета событий, случайным образом произведенных от буфера.
SampleTime — Шаг расчета агента (значение по умолчанию) | положительная скалярная величинаШаг расчета агента в виде положительной скалярной величины.
В Simulink® среда, агент выполняется каждый SampleTime секунды времени симуляции.
В MATLAB® среда, агент выполняется каждый раз усовершенствования среды. Однако SampleTime временной интервал между последовательными элементами в выходном опыте, возвращенном sim или train.
DiscountFactor — Коэффициент дисконтирования (значение по умолчанию) | положительная скалярная величина, меньше чем или равная 1Коэффициент дисконтирования применился к будущим вознаграждениям во время обучения в виде положительной скалярной величины, меньше чем или равной 1.
rlDQNAgent | Глубокий агент обучения с подкреплением Q-сети |
В этом примере показано, как создать объект опций агента DQN.
Создайте rlDQNAgentOptions объект, который задает размер мини-пакета агента.
opt = rlDQNAgentOptions('MiniBatchSize',48)opt =
rlDQNAgentOptions with properties:
UseDoubleDQN: 1
EpsilonGreedyExploration: [1x1 rl.option.EpsilonGreedyExploration]
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;
Поведение изменяется в R2020a
Цель обновляет настройки метода для агентов DQN, изменились. Следующие изменения требуют обновлений вашего кода:
TargetUpdateMethod опция была удалена. Теперь агенты DQN определяют целевой метод обновления на основе TargetUpdateFrequency и TargetSmoothFactor значения опции.
Значение по умолчанию TargetUpdateFrequency изменился от 4 к 1.
Чтобы использовать один из следующих целевых методов обновления, установите TargetUpdateFrequency и TargetSmoothFactor свойства, как обозначено.
| Метод Update | TargetUpdateFrequency | TargetSmoothFactor |
|---|---|---|
| Сглаживание | 1 | Меньше, чем 1 |
| Периодический | Больше, чем 1 | 1 |
| Периодическое сглаживание (новый метод в R2020a) | Больше, чем 1 | Меньше, чем 1 |
Целевая настройка обновления по умолчанию, которая является обновлением сглаживания с TargetSmoothFactor значение 0.001, остается то же самое.
Эта таблица показывает некоторое типичное использование rlDQNAgentOptions и как обновить ваш код, чтобы использовать новую настройку опции.
| Не рекомендуемый | Рекомендуемый |
|---|---|
opt = rlDQNAgentOptions('TargetUpdateMethod',"smoothing"); |
opt = rlDQNAgentOptions; |
opt = rlDQNAgentOptions('TargetUpdateMethod',"periodic"); |
opt = rlDQNAgentOptions; opt.TargetUpdateFrequency = 4; opt.TargetSmoothFactor = 1; |
opt = rlDQNAgentOptions; opt.TargetUpdateMethod = "periodic"; opt.TargetUpdateFrequency = 5; |
opt = rlDQNAgentOptions; opt.TargetUpdateFrequency = 5; opt.TargetSmoothFactor = 1; |
[1] Саттон, Ричард С. и Эндрю Г. Барто. Обучение с подкреплением: Введение. Второй выпуск. Адаптивный Расчет и Машинное обучение. Кембридж, Масса: Нажатие MIT, 2018.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.