rlRepresentationOptions

Набор опций для представлений агента обучения с подкреплением (критики и актёры)

Описание

Использование rlRepresentationOptions объект, чтобы задать набор опций для критиков (rlValueRepresentation, rlQValueRepresentation) и актёры (rlDeterministicActorRepresentation, rlStochasticActorRepresentation).

Создание

Описание

пример

repOpts = rlRepresentationOptions создает набор опций по умолчанию, который будет использоваться в качестве последнего аргумента при создании актёра обучения с подкреплением или критика. Вы можете изменить свойства объекта с помощью записи через точку.

пример

repOpts = rlRepresentationOptions(Name,Value) создает набор опций с заданными свойствами с помощью одного или нескольких аргументов пары "имя-значение".

Свойства

расширить все

Скорость обучения для представления, заданная как разделенная разделенными запятой парами, состоящая из 'LearnRate' и положительная скалярная величина. Если скорость обучения слишком низкий, то обучение занимает много времени. Если скорость обучения слишком высок, то обучение может достигнуть неоптимального результата или отличаться.

Пример: 'LearnRate',0.025

Оптимизатор для настройки сети представления, заданный как разделенная разделенными запятой парами, состоящая из 'Optimizer' и одну из следующих строк:

  • "adam" - Используйте оптимизатор Адама. Можно задать скорости распада градиента и квадратного градиента скользящих средних значений помощью GradientDecayFactor и SquaredGradientDecayFactor поля OptimizerParameters опция.

  • "sgdm" - Используйте стохастический градиентный спуск с оптимизатором импульса (SGDM). Можно задать значение импульса с помощью Momentum поле OptimizerParameters опция.

  • "rmsprop" - Используйте оптимизатор RMSProp. Можно задать скорость распада квадратного градиента скользящего среднего значения с помощью SquaredGradientDecayFactor поля OptimizerParameters опция.

Для получения дополнительной информации об этих оптимизаторах см. Stochastic Gradient Descent в разделе Алгоритмы trainingOptions в Deep Learning Toolbox™.

Пример: 'Optimizer',"sgdm"

Применимые параметры для оптимизатора, заданные как разделенная разделенными запятой парами, состоящая из 'OptimizerParameters' и OptimizerParameters объект со следующими параметрами.

ПараметрОписание
Momentum

Вклад предыдущего шага, заданный как скаляр от 0 до 1. Значение 0 означает отсутствие вклада от предыдущего шага. Значение 1 означает максимальный вклад.

Этот параметр применяется только тогда, когда Optimizer является "sgdm". В этом случае значение по умолчанию является 0,9. Это значение по умолчанию хорошо работает для большинства задач.

Epsilon

Смещение знаменателя, заданное как положительная скалярная величина. Оптимизатор добавляет это смещение знаменателю в обновлениях сетевого параметра, чтобы избежать деления на нуль.

Этот параметр применяется только тогда, когда Optimizer является "adam" или "rmsprop". В этом случае значение по умолчанию является 10–8. Это значение по умолчанию хорошо работает для большинства задач.

GradientDecayFactor

Скорость распада движущихся средних значений градиента, заданная как положительная скалярная величина от 0 до 1.

Этот параметр применяется только тогда, когда Optimizer является "adam". В этом случае значение по умолчанию является 0,9. Это значение по умолчанию хорошо работает для большинства задач.

SquaredGradientDecayFactor

Скорость распада квадратного градиентадвижущегося среднего значения, заданная как положительная скалярная величина от 0 до 1.

Этот параметр применяется только тогда, когда Optimizer является "adam" или "rmsprop". В этом случае значение по умолчанию является 0,999. Это значение по умолчанию хорошо работает для большинства задач.

Когда определенное свойство OptimizerParameters не применяется к типу оптимизатора, заданному в Optimizer опция, это свойство установлено в "Not applicable".

Чтобы изменить значения по умолчанию, создайте rlRepresentationOptions установите и используйте запись через точку для доступа и изменения свойств OptimizerParameters.

repOpts = rlRepresentationOptions;
repOpts.OptimizerParameters.GradientDecayFactor = 0.95;

Пороговое значение для градиента представления, заданное как разделенная разделенными запятой парами, состоящая из 'GradientThreshold' и Inf или положительная скалярная величина. Если градиент превышает это значение, градиент обрезается так, как задано в GradientThresholdMethod опция. Усечение градиента ограничивает то, насколько изменяются параметры сети в итерации обучения.

Пример: 'GradientThreshold',1

Метод порога градиента, используемый для обрезки значений градиента, которые превышают порог градиента, заданный как разделенная разделенными запятой парами, состоящая из '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"

Коэффициент для L 2 регуляризации (распада веса), заданный как разделенная запятой пара, состоящий из 'L2RegularizationFactor' и неотрицательный скаляр. Для получения дополнительной информации смотрите L2 Регуляризация в разделе Алгоритмы trainingOptions в Deep Learning Toolbox.

Чтобы избежать избыточной подгонки при использовании представления со многими параметрами, рассмотрите увеличение L2RegularizationFactor опция.

Пример: 'L2RegularizationFactor',0.0005

Вычислительное устройство, используемое для выполнения операций глубокой нейронной сети, таких как расчет градиента, обновление параметра и предсказание во время обучения. Он задается как разделенная разделенными запятой парами, состоящая из '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

Введенный в R2019a