exponenta event banner

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 и σI2 дисперсии по пространственным и временным измерениям для каждого канала в каждом наблюдении независимо. Затем он вычисляет нормализованные активации как

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

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

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

yi = γ x ^ i + β,

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

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

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