exponenta event banner

instanceNormalizationLayer

Уровень нормализации экземпляра

Описание

Уровень нормализации экземпляра нормализует мини-пакет данных по каждому каналу для каждого наблюдения независимо. Чтобы улучшить сходимость тренировок сверточной нейронной сети и снизить чувствительность к гиперпараметрам сети, используйте уровни нормализации экземпляров между сверточными слоями и нелинейностями, такими как уровни ReLU.

После нормализации уровень масштабирует входные данные с помощью обучаемого масштабного коэффициента γ и сдвигается на обучаемое смещение β.

Создание

Описание

пример

layer = instanceNormalizationLayer создает слой нормализации экземпляра.

пример

layer = instanceNormalizationLayer(Name,Value) создает слой нормализации экземпляра и задает необязательный Epsilon, Параметры и инициализация, Скорость обучения и регуляризация, и Name с использованием одного или нескольких аргументов «» имя-значение «». Можно указать несколько аргументов «имя-значение». Заключите каждое имя свойства в кавычки.

Пример: instanceNormalizationLayer('Name','instancenorm') создает слой нормализации экземпляра с именем 'instancenorm'

Свойства

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

Нормализация экземпляра

Константа для добавления к отклонениям мини-пакета, заданная как числовой скаляр, равный или больший, чем 1e-5.

Слой добавляет эту постоянную к отклонениям мини-партии перед нормализацией, чтобы обеспечить числовую стабильность и избежать деления на ноль.

Количество входных каналов, указанных как 'auto' или положительное целое число.

Это свойство всегда равно количеству каналов входа в слой. Если NumChannels равняется 'auto', то программное обеспечение автоматически определяет правильное значение количества каналов во время обучения.

Параметры и инициализация

Функция инициализации масштабных коэффициентов канала, определяемых одним из следующих параметров:

  • 'ones' - Инициализируйте масштабные коэффициенты канала единицами.

  • 'zeros' - Инициализируйте масштабные коэффициенты канала нулями.

  • 'narrow-normal' - Инициализировать масштабные коэффициенты канала путем независимой выборки из нормального распределения с нулевым средним и стандартным отклонением 0,01.

  • Дескриптор функции - инициализация масштабных коэффициентов канала с помощью пользовательской функции. Если указан дескриптор функции, то функция должна иметь вид scale = func(sz), где sz - размер шкалы. Пример см. в разделе Определение пользовательской функции инициализации веса.

Уровень инициализирует масштабные коэффициенты канала только в том случае, если Scale пустое свойство.

Типы данных: char | string | function_handle

Функция инициализации смещений канала, указанная как одно из следующих:

  • 'zeros' - Инициализируйте смещения канала нулями.

  • 'ones' - Инициализация смещений канала с помощью таковых.

  • 'narrow-normal' - Инициализация смещений канала путем независимой выборки из нормального распределения с нулевым средним и стандартным отклонением 0,01.

  • Дескриптор функции - инициализация смещений канала с помощью пользовательской функции. Если указан дескриптор функции, то функция должна иметь вид offset = func(sz), где sz - размер шкалы. Пример см. в разделе Определение пользовательской функции инициализации веса.

Уровень инициализирует смещения канала только в том случае, если Offset пустое свойство.

Типы данных: char | string | function_handle

Масштабные коэффициенты канала γ, заданные как числовой массив.

Масштабные коэффициенты канала являются обучаемыми параметрами. При обучении сети, если Scale является непустым, то trainNetwork использует Scale свойство в качестве начального значения. Если Scale пуст, затем trainNetwork использует инициализатор, указанный ScaleInitializer.

Во время обучения, Scale является одним из следующих:

  • Для 2-D ввода изображения числовой массив размером 1 на 1 по-NumChannels

  • Для 3D входа изображения, числового множества размера 1 на 1 на 1NumChannels

  • Для ввода элемента или последовательности числовой массив размера NumChannels-по-1

Смещение канала β, указанное как числовой массив.

Смещения каналов являются обучаемыми параметрами. При обучении сети, если Offset является непустым, то trainNetwork использует Offset свойство в качестве начального значения. Если Offset пуст, затем trainNetwork использует инициализатор, указанный OffsetInitializer.

Во время обучения, Offset является одним из следующих:

  • Для 2-D ввода изображения числовой массив размером 1 на 1 по-NumChannels

  • Для 3D входа изображения, числового множества размера 1 на 1 на 1NumChannels

  • Для ввода элемента или последовательности числовой массив размера NumChannels-по-1

Скорость обучения и регуляризация

Коэффициент скорости обучения для масштабных коэффициентов, заданный как неотрицательный скаляр.

Программное обеспечение умножает этот коэффициент на глобальную скорость обучения для определения скорости обучения для масштабных коэффициентов в слое. Например, если ScaleLearnRateFactor является 2затем скорость обучения для масштабных коэффициентов в слое в два раза превышает текущую глобальную скорость обучения. Программа определяет глобальную скорость обучения на основе настроек, указанных в trainingOptions функция.

Коэффициент скорости обучения для смещений, заданный как неотрицательный скаляр.

Программное обеспечение умножает этот коэффициент на глобальную скорость обучения для определения скорости обучения для смещений на уровне. Например, если OffsetLearnRateFactor равняется 2затем скорость обучения для смещений в слое в два раза превышает текущую глобальную скорость обучения. Программа определяет глобальную скорость обучения на основе настроек, указанных в trainingOptions функция.

L2 коэффициент регуляризации для масштабных коэффициентов, определяемый как неотрицательный скаляр.

Программное обеспечение умножает этот коэффициент на глобальный коэффициент регуляции L2, чтобы определить скорость обучения для масштабных коэффициентов в слое. Например, если ScaleL2Factor 2, то L2 регуляризация для смещений в слое в два раза больше глобального коэффициента регуляризации L2. Можно указать глобальный коэффициент регуляризации L2 с помощью trainingOptions функция.

L2 коэффициент регуляризации для смещений, определяемый как неотрицательный скаляр.

Программное обеспечение умножает этот коэффициент на глобальный коэффициент регуляции L2, чтобы определить скорость обучения для смещений на уровне. Например, если OffsetL2Factor 2, то L2 регуляризация для смещений в слое в два раза больше глобального коэффициента регуляризации L2. Можно указать глобальный коэффициент регуляризации L2 с помощью trainingOptions функция.

Слой

Имя слоя, указанное как символьный вектор или строковый скаляр. Чтобы включить слой в график слоев, необходимо указать непустое уникальное имя слоя. Если вы обучаете последовательную сеть с уровнем и Name имеет значение ''затем программа автоматически присваивает имя слою во время обучения.

Типы данных: char | string

Количество входов слоя. Этот слой принимает только один вход.

Типы данных: double

Входные имена слоя. Этот слой принимает только один вход.

Типы данных: cell

Количество выходов уровня. Этот уровень имеет только один выход.

Типы данных: double

Выходные имена слоя. Этот уровень имеет только один выход.

Типы данных: cell

Примеры

свернуть все

Создание слоя нормализации экземпляра с именем 'instancenorm'.

layer = instanceNormalizationLayer('Name','instancenorm')
layer = 
  InstanceNormalizationLayer with properties:

           Name: 'instancenorm'
    NumChannels: 'auto'

   Hyperparameters
        Epsilon: 1.0000e-05

   Learnable Parameters
         Offset: []
          Scale: []

  Show all properties

Включение слоя нормализации экземпляра в Layer массив.

layers = [
    imageInputLayer([28 28 3])
    convolution2dLayer(5,20)
    instanceNormalizationLayer
    reluLayer
    maxPooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer]
layers = 
  8x1 Layer array with layers:

     1   ''   Image Input              28x28x3 images with 'zerocenter' normalization
     2   ''   Convolution              20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   Instance Normalization   Instance normalization
     4   ''   ReLU                     ReLU
     5   ''   Max Pooling              2x2 max pooling with stride [2  2] and padding [0  0  0  0]
     6   ''   Fully Connected          10 fully connected layer
     7   ''   Softmax                  softmax
     8   ''   Classification Output    crossentropyex

Алгоритмы

Операция нормализации экземпляра нормализует элементы xi входного сигнала, сначала вычисляя среднее мкI и σI2 дисперсии по пространственным и временным измерениям для каждого канала в каждом наблюдении независимо. Затем он вычисляет нормализованные активации как

xi^=xi−μIσI2+ϵ,

где ϵ - константа, которая улучшает числовую стабильность, когда дисперсия очень мала.

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

yi = γ x ^ i + β,

где смещение β и масштабный коэффициент γ являются обучаемыми параметрами, которые обновляются во время обучения сети.

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