instancenorm

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

Описание

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

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

instancenorm функция применяет операцию нормализации слоя к dlarray данные. Используя dlarray объекты делают работу с высокими размерными данными легче, позволяя вам пометить размерности. Например, можно пометить, которому размерности соответствуют пространственный, время, канал, и обрабатывают размерности в пакетном режиме с помощью 'S'TC, и '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' задает данные для 2D входа изображений с форматом '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 объект, затем неодноэлементная размерность должна иметь, маркируют 'C' (канал).

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

Если scaleFactor отформатированный dlarray объект, затем неодноэлементная размерность должна иметь, маркируют '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 и отклонения σI2 по пространственным и измерениям времени для каждого канала в каждом наблюдении независимо. Затем это вычисляет нормированные активации как

xi^=xiμIσI2+ϵ,

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

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

yi=γx^i+β,

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

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

Введенный в R2021a