exponenta event banner

rlRepresentationOptions

Выбор вариантов усиления представлений обучающих агентов (критиков и актеров)

Описание

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

Создание

Описание

пример

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

пример

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

Свойства

развернуть все

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

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

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

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

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

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

Дополнительные сведения об этих оптимизаторах см. в разделе Стохастический градиентный спуск в разделе Алгоритмы trainingOptions в 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" - Если L2 норма градиента обучаемого параметра больше GradientThreshold, затем масштабировать градиент так, чтобы L2 норма равнялась GradientThreshold.

  • "global-l2norm" - Если глобальная норма L2 L больше GradientThreshold, затем масштабировать все градиенты на коэффициент GradientThreshold/L. Глобальная L2 норма учитывает все обучаемые параметры.

  • "absolute-value" - если абсолютное значение отдельной частной производной в градиенте обучаемого параметра больше, чем GradientThreshold, то масштабировать частную производную, чтобы она имела величину, равную GradientThreshold и сохраняют знак частной производной.

Дополнительные сведения см. в разделе «Отсечение градиента» в разделе «Алгоритмы» trainingOptions в инструментарии глубокого обучения.

Пример: 'GradientThresholdMethod',"absolute-value"

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

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

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

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

Представлен в R2019a