groupnorm

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

    Описание

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

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

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

    Примечание

    Применять нормализацию группы в layerGraph объект или Layer массив, используйте groupNormalizationLayer.

    пример

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

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

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

    пример

    dlY = groupnorm(dlX,numGroups,offset,scaleFactor,'DataFormat',FMT) применяет операцию нормализации группы к бесформатному dlarray объект dlX с форматом, заданным FMT. Выход dlY бесформатный dlarray объект с размерностями в том же порядке как dlX. Например, 'DataFormat','SSCB' задает данные для 2D входа изображений с форматом 'SSCB' (пространственный, пространственный, канал, пакет).

    пример

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

    Примеры

    свернуть все

    Использование groupnorm нормировать входные данные через группы канала.

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

    height = 4;
    width = 4;
    channels = 6;
    observations = 1;
    
    X = rand(height,width,channels,observations);
    dlX = dlarray(X,'SSCB');

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

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

    Вычислите нормализацию группы. Разделите вход на три группы из двух каналов каждый.

    numGroups = 3;
    dlY = groupnorm(dlX,numGroups,offset,scaleFactor);
    

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

    свернуть все

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

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

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

    Количество групп канала, чтобы нормировать через в виде положительного целого числа, 'all-channels', или 'channel-wise'.

    numGroupsОписание
    положительное целое числоРазделите входящие каналы на конкретное количество групп. Конкретное количество групп должно разделить количество каналов входных данных точно.
    'all-channels'Группа все входящие каналы в одну группу. Входные данные нормированы через все каналы. Эта операция также известна как нормализацию слоя. В качестве альтернативы используйте layernorm.
    'channel-wise'Обработайте все входящие каналы как отдельные группы. Эта операция также известна как нормализацию экземпляра. В качестве альтернативы используйте instancenorm.

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

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

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

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

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

    Аргументы name-value

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

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

    Порядок размерности бесформатных входных данных в виде вектора символов или строкового скаляра FMT это обеспечивает метку для каждой размерности данных.

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

    • "S" — Пространственный

    • "C" — Канал

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

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

    • "U" — Незаданный

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

    Необходимо задать DataFormat когда входными данными не является отформатированный dlarray.

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

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

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

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

    свернуть все

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

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

    Алгоритмы

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

    x^i=xiμGσG2+ε,

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

    yi=γx^i+β,

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

    Ссылки

    [1] Ву, Yuxin и Кэйминг Хэ. “Нормализация группы”. Предварительная печать представлена 11 июня 2018. https://arxiv.org/abs/1803.08494.

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

    Введенный в R2020b
    Для просмотра документации необходимо авторизоваться на сайте