Опции для агента DQN
Используйте rlDQNAgentOptions объект для задания опций для агентов глубокой Q-сети (DQN). Чтобы создать агента DQN, используйте rlDQNAgent.
Для получения дополнительной информации см. раздел Агенты глубоких Q-сетей.
Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Reinforcement Learning Agents.
создает объект опции для использования в качестве аргумента при создании агента DQN с использованием всех настроек по умолчанию. Вы можете изменить свойства объекта с помощью записи через точку.opt = rlDQNAgentOptions
UseDoubleDQN - Флаг для использования double DQNФлаг для использования double 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 - Максимальная длина траектории обучения пакетов при использовании RNN1 (по умолчанию) | положительное целое числоМаксимальная длина траектории обучения пакетов при использовании рекуррентной нейронной сети для критика, заданная как положительное целое число. Это значение должно быть больше 1 при использовании рекуррентной нейронной сети для критика и 1 в противном случае.
TargetSmoothFactor - Коэффициент сглаживания для обновлений целевого критика1e-3 (по умолчанию) | положительная скалярная величина, меньше или равный 1Коэффициент сглаживания для обновлений целевого критика, заданный как положительная скалярная величина, меньше или равная 1. Дополнительные сведения см. в разделе Методы целевого обновления.
TargetUpdateFrequency - Количество шагов между обновлениями целевого критика1 (по умолчанию) | положительное целое числоКоличество шагов между обновлениями целевого критика, заданное как положительное целое число. Дополнительные сведения см. в разделе Методы целевого обновления.
ResetExperienceBufferBeforeTraining - Опция для очистки буфера опытаtrue (по умолчанию) | falseОпция для очистки буфера опыта перед обучением, заданная как логическое значение.
SaveExperienceBufferWithAgent - Опция для сохранения буфера опытаfalse (по умолчанию) | trueОпция сохранения данных буфера опыта при сохранении агента, заданная как логическое значение. Эта опция применяется как при сохранении агентов-кандидатов во время обучения, так и при сохранении агентов, использующих save функция.
Для некоторых агентов, таких как те, которые имеют большой буфер опыта и наблюдения на основе изображений, память, необходимая для сохранения буфера опыта, велика. В таких случаях, чтобы не сохранять буферные данные опыта, задайте SaveExperienceBufferWithAgent на false.
Если вы планируете продолжить обучение своего сохраненного агента, можно начать обучение с предыдущего буфера опыта в качестве начальной точки. В этом случае установите SaveExperienceBufferWithAgent на true.
MiniBatchSize - Размер мини-пакета случайного опыта64 (по умолчанию) | положительное целое числоРазмер мини-пакета случайных ощущений, заданный как положительное целое число. Во время каждого эпизода тренировки агент случайным образом производит выборки из буфера опыта при вычислении градиентов для обновления свойств критика. Большие мини-пакеты уменьшают отклонение при вычислении градиентов, но увеличивают вычислительные усилия.
При использовании рекуррентной нейронной сети для критика MiniBatchSize - количество траекторий опыта в пакете, где каждая траектория имеет длину, равную SequenceLength.
NumStepsToLookAhead - Число будущих вознаграждений, используемых для оценки значения политики1 (по умолчанию) | положительное целое числоКоличество будущих вознаграждений, используемых для оценки значения политики, заданное как положительное целое число. Для получения дополнительной информации см. главу 7 [1].
N-ступенчатое Q-обучение не поддерживается при использовании рекуррентной нейронной сети для критика. В этом случае NumStepsToLookAhead должен быть 1.
ExperienceBufferLength - Опыт buffer size10000 (по умолчанию) | положительное целое числоИспытайте buffer size, заданный как положительное целое число. Во время обучения агент вычисляет обновления с помощью мини-пакета событий, случайным образом выбранных из буфера.
SampleTime - Шаг расчета агента1 (по умолчанию) | положительная скалярная величинаШаг расчета агента, заданная как положительная скалярная величина.
В Simulink® окружение, агент выполняется каждый SampleTime секунды времени симуляции.
В MATLAB® окружение, агент выполняется каждый раз, когда окружение прогрессирует. Однако SampleTime - временной интервал между последовательными элементами в выходном опыте, возвращаемый sim или train.
DiscountFactor - Коэффициент дисконтирования0.99 (по умолчанию) | положительная скалярная величина, меньше или равный 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. Следующие изменения требуют обновления вашего кода:
The TargetUpdateMethod опция удалена. Теперь агенты DQN определяют целевой метод обновления на основе TargetUpdateFrequency и TargetSmoothFactor значений опций.
Значение по умолчанию TargetUpdateFrequency изменился с 4 на 1.
Чтобы использовать один из следующих методов целевого обновления, установите TargetUpdateFrequency и TargetSmoothFactor свойства, как указано.
| Метод обновления | 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] Саттон, Ричард С. и Эндрю Г. Барто. Обучение с подкреплением: введение. Второе издание. Адаптивные расчеты и машинное обучение. Cambridge, Mass: The MIT Press, 2018.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.