Создайте опции для агента DQN
opt = rlDQNAgentOptionsopt = rlDQNAgentOptions(Name,Value) создает объект opt = rlDQNAgentOptionsrlDQNAgentOptions для использования в качестве аргумента при создании агента DQN с помощью всех настроек по умолчанию. Можно изменить свойства объектов с помощью записи через точку.
создает объект опций DQN использование заданных пар "имя-значение", чтобы заменить значения свойств по умолчанию.opt = rlDQNAgentOptions(Name,Value)
Создайте объект rlDQNAgentOptions, который задает размер мини-пакета агента.
opt = rlDQNAgentOptions('MiniBatchSize',48)opt =
rlDQNAgentOptions with properties:
UseDoubleDQN: 1
EpsilonGreedyExploration: [1×1 rl.option.EpsilonGreedyExploration]
TargetSmoothFactor: 1.0000e-03
TargetUpdateFrequency: 4
TargetUpdateMethod: "smoothing"
ResetExperienceBufferBeforeTraining: 1
SaveExperienceBufferWithAgent: 0
MiniBatchSize: 48
NumStepsToLookAhead: 1
ExperienceBufferLength: 10000
SampleTime: 1
DiscountFactor: 0.9900Можно изменить опции с помощью записи через точку. Например, установите шаг расчета агента на 0.5.
opt.SampleTime = 0.5;
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
"UseDoubleDQN",false'UseDoubleDQN' — Отметьте для использования двойного DQNОтметьте для использования двойного DQN для целевых обновлений функции значения, заданных как пара, разделенная запятой, состоящая из 'UseDoubleDQN' и логического true или false. Поскольку большая часть приложения установила UseDoubleDQN на "on". Для получения дополнительной информации смотрите Глубокие Агенты Q-сети.
'EpsilonGreedyExploration' — Опции для жадного эпсилоном исследованияEpsilonGreedyExplorationОпции для жадного эпсилоном исследования, заданного как пара, разделенная запятой, состоящая из 'EpsilonGreedyExploration' и объекта EpsilonGreedyExploration со следующими свойствами числового значения.
| Свойство | Описание |
|---|---|
Epsilon | Порог вероятности или к случайным образом выбирает действие или выбирает действие, которое максимизирует функцию значения акта государственной власти. Большее значение Epsilon означает, что агент случайным образом исследует пробел действия на более высоком уровне. |
EpsilonMin | Минимальное значение Epsilon |
EpsilonDecay | Уровень затухания |
Epsilon обновляется с помощью следующей формулы, когда это больше, чем EpsilonMin:
Epsilon = Epsilon*(1-EpsilonDecay)
Чтобы задать опции исследования, используйте запись через точку после создания объекта rlDQNAgentOptions. Например, установите значение эпсилона к 0.9.
opt = rlDQNAgentOptions; opt.EpsilonGreedyExploration.Epsilon = 0.9;
Если ваш агент сходится на локальных оптимумах слишком быстро, способствуйте исследованию агента путем увеличения Epsilon.
'TargetSmoothFactor' — Сглаживание фактора для целевых обновлений1e-3 (значение по умолчанию) | дваждыСглаживание фактора для целевых обновлений критика, заданных как пара, разделенная запятой, состоящая из 'TargetSmoothFactor' и двойного. Фактор сглаживания определяет, как целевые свойства критика обновляются, когда TargetUpdateMethod является "smoothing".
'TargetUpdateFrequency' — Количество эпизодов между целевыми обновлениями4 (значение по умолчанию) | числовое значениеКоличество эпизодов между целевыми обновлениями критика, заданными как пара, разделенная запятой, состоящая из 'TargetUpdateFrequency' и числового целочисленного значения. Эта опция применяется только, когда TargetUpdateMethod является "periodic".
'TargetUpdateMethod' — Стратегия обновления целевых свойств критика"smoothing" (значение по умолчанию) | "periodic"Стратегия обновления целевых свойств критика с помощью значений от обученного агента и критика, заданного как пара, разделенная запятой, состоящая из 'TargetUpdateMethod' и одно из следующего:
"smoothing" — Обновите целевые свойства критика, thetaTarget, в каждом учебном эпизоде согласно следующей формуле, где theta, обучившие сеть свойства тока:
thetaTarget = TargetSmoothFactor*theta + (1 - TargetSmoothFactor)*thetaTarget
"periodic" — Обновите целевые свойства критика каждое обучение TargetUpdateFrequency эпизоды.
'ResetExperienceBufferBeforeTraining' — Отметьте для очистки буфера опытаtrue (значение по умолчанию) | falseОтметьте для очистки буфера опыта перед обучением, заданным как пара, разделенная запятой, состоящая из 'ResetExperienceBufferBeforeTraining' и логического true или false.
'SaveExperienceBufferWithAgent' — Отметьте для сохранения буфера опытаfalse (значение по умолчанию) | trueОтметьте для того, чтобы сохранить буферные данные об опыте при сохранении агента, заданного как пара, разделенная запятой, состоящая из 'SaveExperienceBufferWithAgent' и логического true или false. Эта опция применяется и при сохранении агентов кандидата во время обучения и при сохранении агентов с помощью функции save.
Для некоторых агентов, таких как те с большим опытом буферные и основанные на изображении наблюдения, память, требуемая для сохранения их буфера опыта, является большой. В таких случаях, чтобы не сохранить буферные данные об опыте, устанавливают SaveExperienceBufferWithAgent на false.
Если вы планируете далее обучить свой сохраненный агент, можно запустить обучение с буфера предыдущего опыта как отправная точка. В этом случае установите SaveExperienceBufferWithAgent на true.
'MiniBatchSize' — Размер случайного мини-пакета опыта64 (значение по умолчанию) | числовое значениеРазмер случайного мини-пакета опыта, заданного как пара, разделенная запятой, состоящая из 'MiniBatchSize' и положительного числового значения. Во время каждого учебного эпизода агент случайным образом выборки испытывает от буфера опыта когда вычислительные градиенты для обновления свойства критика и агент.
'NumStepsToLookAhead' — Количество шагов вперед1 (значение по умолчанию) | числовое значениеКоличество шагов, чтобы смотреть вперед во время обучения, заданного как пара, разделенная запятой, состоящая из 'NumStepsToLookAhead' и числового положительного целочисленного значения.
'ExperienceBufferLength' — Испытайте buffer size10000 (значение по умолчанию) | числовое значениеИспытайте buffer size, заданный как пара, разделенная запятой, состоящая из 'ExperienceBufferLength' и числового положительного целочисленного значения. Во время обучения агент обновляет критика, использующего мини-пакет событий, случайным образом выбранных от буфера.
В целом агенты должны учиться и на хорошем и на неудачном опыте. Задайте buffer size опыта, который может сохранить достаточно опыта для изучения.
'SampleTime' Шаг расчета агента1 (значение по умолчанию) | числовое значениеШаг расчета агента, заданного как пара, разделенная запятой, состоящая из 'SampleTime' и числового значения.
'DiscountFactor' — Коэффициент дисконтирования применился к вознаграждениям0.99 (значение по умолчанию) | числовое значениеКоэффициент дисконтирования применился к будущим вознаграждениям во время обучения, заданного как пара, разделенная запятой, состоящая из 'DiscountFactor' и положительного числового значения, меньше чем или равного 1.
opt — Опции агента DQNrlDQNAgentOptionsОпции агента DQN, возвращенные как объект rlDQNAgentOptions. Свойства объектов описаны в Аргументах в виде пар имя-значение.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.