Параметры агента DQN
Использовать rlDQNAgentOptions объект для указания параметров агентов deep Q-network (DQN). Для создания агента DQN используйте rlDQNAgent.
Дополнительные сведения см. в разделе Агенты Deep Q-Network.
Дополнительные сведения о различных типах агентов обучения усилению см. в разделе Агенты обучения усилению.
создает объект параметров для использования в качестве аргумента при создании агента DQN с использованием всех параметров по умолчанию. Свойства объекта можно изменить с помощью точечной нотации.opt = rlDQNAgentOptions
UseDoubleDQN - Флаг для использования двойного DQNФлаг для использования двойного DQN для обновлений целевого объекта функции значений, указанный как логическое значение. Для большинства наборов приложений UseDoubleDQN кому "on". Дополнительные сведения см. в разделе Агенты Deep Q-Network.
EpsilonGreedyExploration - Варианты эпсилон-жадной разведкиEpsilonGreedyExploration объектВарианты эпсилон-жадной разведки, указанные как EpsilonGreedyExploration со следующими свойствами.
| Собственность | Описание | Значение по умолчанию |
|---|---|---|
Epsilon | Порог вероятности для случайного выбора действия или выбора действия, которое максимизирует функцию значения состояния-действия. Большее значение Epsilon означает, что агент случайным образом исследует пространство действия с более высокой скоростью. | 1 |
EpsilonMin | Минимальное значение Epsilon | 0.01 |
EpsilonDecay | Скорость распада | 0.0050 |
В конце каждого шага времени обучения, если Epsilon больше, чем EpsilonMin, затем он обновляется по следующей формуле.
Epsilon = Epsilon*(1-EpsilonDecay)
Если агент слишком быстро сходится на локальном оптимуме, вы можете способствовать исследованию агента, увеличивая Epsilon.
Чтобы задать опции исследования, используйте точечную нотацию после создания rlDQNAgentOptions объект opt. Например, задайте значение epsilon равным 0.9.
opt.EpsilonGreedyExploration.Epsilon = 0.9;
SequenceLength - Максимальная длина траектории обучения партии при использовании РНН1 (по умолчанию) | положительное целое числоМаксимальная длина траектории пакетной тренировки при использовании рекуррентной нейронной сети для критика, заданная как положительное целое число. Это значение должно быть больше 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 - Размер буфера опыта10000 (по умолчанию) | положительное целое числоРазмер буфера опыта, указанный как положительное целое число. Во время обучения агент вычисляет обновления, используя мини-пакет опытов, случайным образом отобранных из буфера.
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 изменены. Следующие изменения требуют обновления кода:
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] Саттон, Ричард С. и Эндрю Г. Барто. Обучение усилению: введение. Второе издание. Адаптивные вычисления и машинное обучение. Кембридж, месса: The MIT Press, 2018.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.