exponenta event banner

groupnorm

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

    Описание

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

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

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

    пример

    dlY = groupnorm(___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 объект, то размер 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 входного сигнала, сначала вычисляя среднее значение мкG и σG2 дисперсии по пространственным, временным и сгруппированным подмножествам размеров канала для каждого наблюдения независимо. Затем он вычисляет нормализованные активации как

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

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

    yi = γ x ^ i + β,

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

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

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