Опции для агента 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)
Чтобы задать опции исследования, используйте запись через точку после создания rlDQNAgentOptions объект. Например, установите значение эпсилона к 0.9.
opt = rlDQNAgentOptions; opt.EpsilonGreedyExploration.Epsilon = 0.9;
Если ваш агент сходится на локальных оптимумах слишком быстро, способствуйте исследованию агента путем увеличения Epsilon.
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 — Количество шагов вперед (значение по умолчанию) | положительное целое числоКоличество шагов, чтобы смотреть вперед во время обучения в виде положительного целого числа.
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]
SequenceLength: 1
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;
Поведение изменяется в 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. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.