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 опция.

Для получения дополнительной информации об этих оптимизаторах, смотрите Стохастический Градиентный спуск в разделе Algorithms 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 и сохраните знак частной производной.

Для получения дополнительной информации смотрите, что Градиент Отсекает в разделе Algorithms trainingOptions в Deep Learning Toolbox.

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

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

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

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

Устройство расчета раньше выполняло операции глубокой нейронной сети, такие как расчет градиента, обновление параметра и предсказание во время обучения. Это задано как разделенная запятой пара, состоящая из 'UseDevice' и любой "cpu" или "gpu".

"gpu" опция требует и программного обеспечения Parallel Computing Toolbox™ и CUDA®, включенного NVIDIA® графический процессор. Для получения дополнительной информации о поддерживаемых графических процессорах смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox).

Можно использовать gpuDevice (Parallel Computing Toolbox), чтобы запросить или выбрать локальное устройство графического процессора, которое будет использоваться с MATLAB®.

Примечание

Обучение или симуляция агента на графическом процессоре включают специфичный для устройства числовой раунд от ошибок. Эти ошибки могут привести к различным результатам по сравнению с выполнением тех же операций центральный процессор.

Обратите внимание на то, что, если вы хотите использовать параллельную обработку, чтобы ускорить обучение, вы не должны устанавливать UseDevice. Вместо этого когда обучение ваш агент, используйте rlTrainingOptions объект, в который UseParallel опция установлена в true. Для получения дополнительной информации об обучении с помощью многоядерных процессоров и графических процессоров для обучения, смотрите, Обучают Агентов Используя Параллельные вычисления и графические процессоры.

Пример: '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