Выбор вариантов усиления представлений обучающих агентов (критиков и актеров)
Использовать rlRepresentationOptions для задания набора параметров для критиков (rlValueRepresentation, rlQValueRepresentation) и актёрами (rlDeterministicActorRepresentation, rlStochasticActorRepresentation).
создает набор опций по умолчанию для использования в качестве последнего аргумента при создании обучающего участника или критика усиления. Свойства объекта можно изменить с помощью точечной нотации.repOpts = rlRepresentationOptions
создает набор параметров с указанными свойствами, используя один или несколько аргументов пары имя-значение.repOpts = rlRepresentationOptions(Name,Value)
LearnRate - Коэффициент обучения для представления0.01 (по умолчанию) | положительный скалярСкорость обучения для представления, определяемая как разделенная запятыми пара, состоящая из 'LearnRate' и положительный скаляр. Если уровень обучения слишком низкий, то обучение занимает много времени. Если уровень обучения слишком высок, то обучение может достигать неоптимального результата или расходиться.
Пример: 'LearnRate',0.025
Optimizer - Оптимизатор для представления"adam" (по умолчанию) | "sgdm" | "rmsprop"Оптимизатор для обучения сети представления, определяемого как разделенная запятыми пара, состоящая из 'Optimizer' и одну из следующих строк:
"adam" - Используйте оптимизатор Adam. Можно задать скорости затухания скользящих средних градиента и квадрата градиента, используя GradientDecayFactor и SquaredGradientDecayFactor поля OptimizerParameters вариант.
"sgdm" - Использовать стохастический градиентный спуск с оптимизатором импульса (SGDM). Значение импульса можно задать с помощью Momentum области OptimizerParameters вариант.
"rmsprop" - использовать оптимизатор RMSProp. Скорость затухания квадратичного градиентного скользящего среднего можно задать с помощью SquaredGradientDecayFactor поля OptimizerParameters вариант.
Дополнительные сведения об этих оптимизаторах см. в разделе Стохастический градиентный спуск в разделе Алгоритмы trainingOptions в 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" - Если L2 норма градиента обучаемого параметра больше GradientThreshold, затем масштабировать градиент так, чтобы L2 норма равнялась GradientThreshold.
"global-l2norm" - Если глобальная норма L2 L больше GradientThreshold, затем масштабировать все градиенты на коэффициент GradientThreshold/L. Глобальная L2 норма учитывает все обучаемые параметры.
"absolute-value" - если абсолютное значение отдельной частной производной в градиенте обучаемого параметра больше, чем GradientThreshold, то масштабировать частную производную, чтобы она имела величину, равную GradientThreshold и сохраняют знак частной производной.
Дополнительные сведения см. в разделе «Отсечение градиента» в разделе «Алгоритмы» trainingOptions в инструментарии глубокого обучения.
Пример: 'GradientThresholdMethod',"absolute-value"
L2RegularizationFactor - Фактор регуляризации L2Коэффициент для регуляризации L2 (распад веса), указанный как пара, разделенная запятыми, состоящая из 'L2RegularizationFactor' и неотрицательный скаляр. Дополнительные сведения см. в разделе Регуляризация L2 в разделе Алгоритмы trainingOptions в инструментарии глубокого обучения.
Чтобы избежать переопределения при использовании представления со многими параметрами, рассмотрите возможность увеличения L2RegularizationFactor вариант.
Пример: 'L2RegularizationFactor',0.0005
UseDevice - Вычислительное устройство для обучения"cpu" (по умолчанию) | "gpu"Вычислительное устройство, используемое для выполнения глубоких нейронных сетевых операций, таких как градиентное вычисление, обновление параметров и прогнозирование во время обучения. Указывается как разделенная запятыми пара, состоящая из 'UseDevice' и либо "cpu" или "gpu".
"gpu" требуется как программное обеспечение Parallel Computing Toolbox™, так и графический процессор NVIDIA ® с поддержкой CUDA ®. Дополнительные сведения о поддерживаемых графических процессорах см. в разделе Поддержка графических процессоров по выпуску (Панель инструментов параллельных вычислений).
Вы можете использовать gpuDevice (Parallel Computing Toolbox) для запроса или выбора локального графического процессора, который будет использоваться с MATLAB ®.
Примечание
Обучение или имитация агента на GPU включает зависящие от устройства числовые ошибки округления. Эти ошибки могут привести к различным результатам по сравнению с выполнением одних и тех же операций ЦП.
Обратите внимание, что если вы хотите использовать параллельную обработку для ускорения обучения, вам не нужно устанавливать UseDevice. Вместо этого при обучении агента используйте rlTrainingOptions объект, в котором UseParallel параметр имеет значение true. Дополнительные сведения об обучении с использованием многоядерных процессоров и графических процессоров см. в разделе Обучение агентов с использованием параллельных вычислений и графических процессоров.
Пример: 'UseDevice',"gpu"
rlValueRepresentation | Критическое представление функции оценки для агентов обучения по усилению |
rlQValueRepresentation | Критическое представление функции Q-Value для агентов обучения усиления |
rlDeterministicActorRepresentation | Детерминированное представление акторов для усиливающих обучающих агентов |
rlStochasticActorRepresentation | Стохастическое представление актера для усиливающих обучающих агентов |
Создайте набор опций для создания представления критика или актера для агента обучения усилению. Установите коэффициент обучения для представления равным 0,05 и установите порог градиента равным 1. При создании набора опций можно задать опции с помощью пар Наименование (Name) и Значение (Value). Значения по умолчанию для всех параметров, которые явно не заданы.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.