instancenorm

Нормализуйте по каждому каналу для каждого наблюдения независимо

Описание

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

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

instancenorm функция применяет операцию нормализации слоя к dlarray данные. Использование dlarray облегчает работу с данными высоких размерностей, позволяя пометить размеры. Для примера можно пометить, какие размерности соответствуют пространственным, временным, канальным и пакетным размерностям, используя 'S', 'T', 'C', и 'B' метки, соответственно. Для неопределенных и других размерностей используйте 'U' метка. Для dlarray функции объекта, которые работают над конкретными размерностями, можно задать метки размера путем форматирования dlarray объект непосредственно, или при помощи 'DataFormat' опция.

Примечание

Применение нормализации образца в layerGraph объект или Layer массив, использование instanceNormalizationLayer.

пример

dlY = instancenorm(dlX,offset,scaleFactor) применяет операцию нормализации образца к входным данным dlX и преобразуется с использованием заданных смещения и масштабного коэффициента.

Функция нормализуется по сгруппированным подмножествам 'S' (пространственный), 'T' (время), и 'U' (не заданные) размерности dlX для каждого наблюдения в 'C' (канал) и 'B' (пакетные) размерности, независимо.

Для неформатированных входных данных используйте 'DataFormat' опция.

dlY = instancenorm(dlX,offset,scaleFactor,'DataFormat',FMT) применяет операцию нормализации образца к неформатированному dlarray dlX объекта с форматом, заданным FMT использование любого из предыдущих синтаксисов. Область выхода dlY является неформатированным dlarray объект с размерностями в том же порядке, что и dlX. Для примера, 'DataFormat','SSCB' задает данные для 2-D изображения входа с форматом 'SSCB' (пространственный, пространственный, канальный, пакетный).

dlY = instancenorm(___Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Для примера, 'Epsilon',3e-5 устанавливает смещение отклонения равным 3e-5.

Примеры

свернуть все

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

width = 12;
height = 12;
channels = 6;
numObservations = 16;
X = randn(width,height,channels,numObservations);
dlX = dlarray(X,'SSCB'); 

Создайте настраиваемые параметры.

offset = dlarray(zeros(channels,1));
scaleFactor = dlarray(ones(channels,1));

Вычислите нормализацию образца.

dlZ = instancenorm(dlX,offset,scaleFactor);

Просмотрите размер и формат нормированных данных.

size(dlZ)
ans = 1×4

    12    12     6    16

dims(dlZ)
ans = 
'SSCB'

Входные параметры

свернуть все

Входные данные, заданные как форматированное dlarray, неформатированный dlarray, или числовой массив.

Если dlX является неформатированным dlarray или числовой массив, тогда вы должны задать формат используя 'DataFormat' опция. Если dlX является числовым массивом, то либо scaleFactor или offset должен быть dlarray объект.

dlX должен иметь 'C' (канальная) размерность.

Смещение β, заданное как форматированное dlarray, неформатированный dlarray, или числовой массив с одним несовпадающим размером с размером, соответствующим размеру 'C' (канальная) размерность входного dlX.

Если offset является форматированным dlarray объект, тогда размерность nonsingleton должно иметь метку 'C' (канал).

Масштабный коэффициент γ, заданный как форматированный dlarray, неформатированный dlarray, или числовой массив с одним несовпадающим размером с размером, соответствующим размеру 'C' (канальная) размерность входного dlX.

Если scaleFactor является форматированным dlarray объект, тогда размерность nonsingleton должно иметь метку 'C' (канал).

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Epsilon',3e-5 устанавливает смещение отклонения равным 3e-5.

Размерность неформатированных входных данных, заданный как разделенная разделенными запятой парами, состоящая из 'DataFormat' и вектор символов или строковый скаляр FMT который обеспечивает метку для каждой размерности данных.

При указании формата dlarray объект, каждый символ предоставляет метку для каждой размерности данных и должен быть одним из следующих:

  • 'S' - Пространственный

  • 'C' - Канал

  • 'B' - Партия (например, выборки и наблюдения)

  • 'T' - Время (например, временные шаги последовательностей)

  • 'U' - Не определено

Можно задать несколько размерности, маркированных 'S' или 'U'. Можно использовать метки 'C', 'B', и 'T' самое большее сразу.

Вы должны задать 'DataFormat' когда входные данные не являются форматированным dlarray.

Пример: 'DataFormat','SSCB'

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

Смещение отклонения для предотвращения ошибок деления на нули, заданное как разделенная разделенными запятой парами, состоящая из 'Epsilon' и числовой скаляр. Заданное значение должно быть больше 1e-5. Значение по умолчанию 1e-5.

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

Выходные аргументы

свернуть все

Нормированные данные, возвращенные как dlarray. Область выхода dlY имеет тот же базовый тип данных, что и входной dlX.

Если входные данные dlX является форматированным dlarray, dlY имеет те же метки размерностей, что и dlX. Если входные данные не являются форматированным dlarray, dlY является неформатированным dlarray с тем же порядком размерности, что и входные данные.

Алгоритмы

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

xi^=xiμIσI2+ϵ,

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

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

yi=γx^i+β,

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

Расширенные возможности

Введенный в R2021a