Набор опций для представлений агента обучения с подкреплением (критики и актёры)
Использование rlRepresentationOptions
объект, чтобы задать набор опций для критиков (rlValueRepresentation
, rlQValueRepresentation
) и актёры (rlDeterministicActorRepresentation
, rlStochasticActorRepresentation
).
создает набор опций по умолчанию, который будет использоваться в качестве последнего аргумента при создании актёра обучения с подкреплением или критика. Вы можете изменить свойства объекта с помощью записи через точку.repOpts
= rlRepresentationOptions
создает набор опций с заданными свойствами с помощью одного или нескольких аргументов пары "имя-значение".repOpts
= rlRepresentationOptions(Name,Value
)
LearnRate
- Скорость обучения для представления0.01
(по умолчанию) | положительная скалярная величинаСкорость обучения для представления, заданная как разделенная разделенными запятой парами, состоящая из 'LearnRate'
и положительная скалярная величина. Если скорость обучения слишком низкий, то обучение занимает много времени. Если скорость обучения слишком высок, то обучение может достигнуть неоптимального результата или отличаться.
Пример: 'LearnRate',0.025
Optimizer
- Оптимизатор для представления"adam"
(по умолчанию) | "sgdm"
| "rmsprop"
Оптимизатор для настройки сети представления, заданный как разделенная разделенными запятой парами, состоящая из 'Optimizer'
и одну из следующих строк:
"adam"
- Используйте оптимизатор Адама. Можно задать скорости распада градиента и квадратного градиента скользящих средних значений помощью GradientDecayFactor
и SquaredGradientDecayFactor
поля OptimizerParameters
опция.
"sgdm"
- Используйте стохастический градиентный спуск с оптимизатором импульса (SGDM). Можно задать значение импульса с помощью Momentum
поле OptimizerParameters
опция.
"rmsprop"
- Используйте оптимизатор RMSProp. Можно задать скорость распада квадратного градиента скользящего среднего значения с помощью SquaredGradientDecayFactor
поля OptimizerParameters
опция.
Для получения дополнительной информации об этих оптимизаторах см. Stochastic Gradient Descent в разделе Алгоритмы trainingOptions
в Deep Learning Toolbox™.
Пример: 'Optimizer',"sgdm"
OptimizerParameters
- Применимые параметры для оптимизатораOptimizerParameters
объектПрименимые параметры для оптимизатора, заданные как разделенная разделенными запятой парами, состоящая из 'OptimizerParameters'
и OptimizerParameters
объект со следующими параметрами.
Параметр | Описание |
---|---|
Momentum | Вклад предыдущего шага, заданный как скаляр от 0 до 1. Значение 0 означает отсутствие вклада от предыдущего шага. Значение 1 означает максимальный вклад. Этот параметр применяется только тогда, когда |
Epsilon | Смещение знаменателя, заданное как положительная скалярная величина. Оптимизатор добавляет это смещение знаменателю в обновлениях сетевого параметра, чтобы избежать деления на нуль. Этот параметр применяется только тогда, когда |
GradientDecayFactor | Скорость распада движущихся средних значений градиента, заданная как положительная скалярная величина от 0 до 1. Этот параметр применяется только тогда, когда |
SquaredGradientDecayFactor | Скорость распада квадратного градиентадвижущегося среднего значения, заданная как положительная скалярная величина от 0 до 1. Этот параметр применяется только тогда, когда |
Когда определенное свойство OptimizerParameters
не применяется к типу оптимизатора, заданному в Optimizer
опция, это свойство установлено в "Not applicable"
.
Чтобы изменить значения по умолчанию, создайте rlRepresentationOptions
установите и используйте запись через точку для доступа и изменения свойств OptimizerParameters
.
repOpts = rlRepresentationOptions; repOpts.OptimizerParameters.GradientDecayFactor = 0.95;
GradientThreshold
- Пороговое значение для градиентаInf
(по умолчанию) | положительная скалярная величинаПороговое значение для градиента представления, заданное как разделенная разделенными запятой парами, состоящая из 'GradientThreshold'
и Inf
или положительная скалярная величина. Если градиент превышает это значение, градиент обрезается так, как задано в GradientThresholdMethod
опция. Усечение градиента ограничивает то, насколько изменяются параметры сети в итерации обучения.
Пример: 'GradientThreshold',1
GradientThresholdMethod
- Метод градиентного порога"l2norm"
(по умолчанию) | "global-l2norm"
| "absolute-value"
Метод порога градиента, используемый для обрезки значений градиента, которые превышают порог градиента, заданный как разделенная разделенными запятой парами, состоящая из 'GradientThresholdMethod'
и одну из следующих строк:
"l2norm"
- Если L 2 норма градиента настраиваемого параметра больше GradientThreshold
, затем масштабируйте градиент так, чтобы L 2 норма равнялась GradientThreshold
.
"global-l2norm"
- Если глобальная L 2 норма, L, больше GradientThreshold
, затем масштабируйте все градиенты в множитель GradientThreshold/
L. Глобальная L 2 норма рассматривает все настраиваемые параметры.
"absolute-value"
- Если абсолютное значение отдельной частной производной в градиенте настраиваемого параметра больше GradientThreshold
, затем масштабируйте частную производную, чтобы величина равнялась GradientThreshold
и сохранить знак частной производной.
Для получения дополнительной информации см. «Обрезка градиента» в разделе «Алгоритмы» trainingOptions
в Deep Learning Toolbox.
Пример: 'GradientThresholdMethod',"absolute-value"
L2RegularizationFactor
- Коэффициент для L 2 регуляризацииКоэффициент для L 2 регуляризации (распада веса), заданный как разделенная запятой пара, состоящий из 'L2RegularizationFactor'
и неотрицательный скаляр. Для получения дополнительной информации смотрите L2 Регуляризация в разделе Алгоритмы trainingOptions
в Deep Learning Toolbox.
Чтобы избежать избыточной подгонки при использовании представления со многими параметрами, рассмотрите увеличение L2RegularizationFactor
опция.
Пример: 'L2RegularizationFactor',0.0005
UseDevice
- Вычислительное устройство для обучения"cpu"
(по умолчанию) | "gpu"
Вычислительное устройство, используемое для выполнения операций глубокой нейронной сети, таких как расчет градиента, обновление параметра и предсказание во время обучения. Он задается как разделенная разделенными запятой парами, состоящая из 'UseDevice'
и любой из них "cpu"
или "gpu"
.
The "gpu"
для опции требуется как программное обеспечение Parallel Computing Toolbox™, так и CUDA® enabled NVIDIA® ГРАФИЧЕСКИЙ ПРОЦЕССОР. Дополнительные сведения о поддерживаемых графических процессорах см. в разделе Поддержка GPU по версии (Parallel Computing Toolbox).
Можно использовать gpuDevice
(Parallel Computing Toolbox), чтобы запросить или выбрать локальное устройство графического процессора, которое будет использоваться с MATLAB®.
Примечание
Обучение или симуляция агента на графическом процессоре включает в себя числовые ошибки округления конкретного устройства. Эти ошибки могут привести к различным результатам по сравнению с выполнением тех же операций CPU.
Обратите внимание, что, если вы хотите использовать параллельную обработку для ускорения обучения, вам не нужно устанавливать UseDevice
. Вместо этого, обучая вашего агента, используйте rlTrainingOptions
объект, в котором UseParallel
для опции задано значение true
. Дополнительные сведения об обучении с использованием многоядерных процессоров и графических процессоров для обучения см. в разделе Train агентов с использованием параллельных вычислений и графических процессоров.
Пример: 'UseDevice',"gpu"
rlValueRepresentation | Представление критика функции ценности для агентов обучения с подкреплением |
rlQValueRepresentation | Представление Q-функции критика для агентов обучения с подкреплением |
rlDeterministicActorRepresentation | Детерминированное представление актера для агентов обучения с подкреплением |
rlStochasticActorRepresentation | Стохастическое представление актера для агентов обучения с подкреплением |
Создайте набор опций для создания критика или представления актера для агента обучения с подкреплением. Установите скорость обучения для представления равной 0,05 и установите порог градиента равным 1. Можно задать опции с помощью пар «Имя», «Значение» при создании набора опций. Все опции, которые вы явным образом не задаете, имеют значения по умолчанию.
repOpts = rlRepresentationOptions('LearnRate',5e-2,... 'GradientThreshold',1)
repOpts = rlRepresentationOptions with properties: LearnRate: 0.0500 GradientThreshold: 1 GradientThresholdMethod: "l2norm" L2RegularizationFactor: 1.0000e-04 UseDevice: "cpu" Optimizer: "adam" OptimizerParameters: [1x1 rl.option.OptimizerParameters]
Кроме того, создайте набор опций по умолчанию и используйте запись через точку для изменения некоторых значений.
repOpts = rlRepresentationOptions; repOpts.LearnRate = 5e-2; repOpts.GradientThreshold = 1
repOpts = rlRepresentationOptions with properties: LearnRate: 0.0500 GradientThreshold: 1 GradientThresholdMethod: "l2norm" L2RegularizationFactor: 1.0000e-04 UseDevice: "cpu" Optimizer: "adam" OptimizerParameters: [1x1 rl.option.OptimizerParameters]
Если необходимо изменить свойства OptimizerParameters
опция, используйте запись через точку для доступа к ним.
repOpts.OptimizerParameters.Epsilon = 1e-7; repOpts.OptimizerParameters
ans = OptimizerParameters with properties: Momentum: "Not applicable" Epsilon: 1.0000e-07 GradientDecayFactor: 0.9000 SquaredGradientDecayFactor: 0.9990
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.