www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Альтернатива нормализации партии

Дата публикации Nov 8, 2019

Изображение от Experfy

РазвитиеПакетная нормализация (BN)поскольку метод нормализации стал поворотным моментом в развитии моделей глубокого обучения, он позволил различным сетям обучаться и сходиться.

Несмотря на большой успех, BN имеет недостатки, вызванные его характерным поведением нормализации по размеру партии. Одним из основных недостатков BN является то, что он требует достаточно больших размеров партий для получения хороших результатов(например, 32,64).этозапрещает людям исследовать модели с большей емкостью, которые будут ограничены памятью. Для решения этой проблемыFacebook AI Research (FAIR)разработан новый метод нормализации,Групповая нормализация (GN),

В этой статье мы сосредоточимся в основном наГрупповая нормализация (GN)и как это можно использовать в качестве альтернативыПакетная нормализация (BN)и другие варианты нормализации (Нормализация уровня (LN), Нормализация экземпляра (IN)).

Групповая нормализация

Групповая нормализация (GN)бумагапредлагает GN как слой, который разделяет каналы на группы и нормализует функции в каждой группе. GN не зависит от размеров партии и не использует размер партии, как BN. GN остается стабильным в широком диапазоне размеров партии.

Вы получите более глубокое понимание того, что эти строки пытаются передать в последнем разделе этой статьи. Так что держись!

Групповая нормализация и другие варианты нормализации

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

(1) Общая формула

Уравнение-1

ВотИксэто функция, вычисляемая слоем ияэто индекс. Для2dобраз,язнак равно(i_N, i_C, i_H, i_W)это4dвектор формы(N, C, H, W), гдеNразмер партии,Сколичество каналов,ЧАСа такжеWявляются пространственной высотой и шириной. Здесь µ и σ - среднее значение и стандартное отклонение, рассчитанное по формуле:

Уравнение 2-

Здесь µ и σ вычисляются для набора пикселей, определенных какS_i.Все эти варианты нормализации отличаются друг от друга, основываясь только на том, какS_iопределяется для каждого из них,переменныема такжеэпсилонопределить размер набора и небольшую константу(например, 0,00001)соответственно, Эпсилондобавлен, чтобы убедиться, что мы не пытаемся делить на ноль во время вычисленийx_i, но это также немного увеличивает дисперсию для каждой партии.

(2) Формирование группы нормализации и других вариантов

Варианты нормализации, Изображение изГруппа нормализации бумаги

На приведенном выше изображении каждый субплот показывает тензор карты объектов с N в качестве оси пакета, C в качестве оси канала и (H, W) в качестве пространственных осей. Пиксели синего цвета нормализуются с помощью того же среднего значения и дисперсии, которые вычисляются путем суммирования значений этих пикселей.

  • ВПакетная норма,наборS_iявляетсяопределяется как:
Условие--

гдеIC(а такжеk_C) обозначает субиндекс i (и k) ​​вдольСось. Это означает, что пиксели, совместно использующие один и тот же индекс канала, нормализуются вместе. Здесь µ и σ вычисляются вдоль(N, H, W)Оси.

  • ВСлой Норма, наборS_iопределяется как:
Условие-2

гдев(а такжеk_n) обозначает субиндекс i (и k) ​​вдоль оси N. Это означает, что пиксели, совместно использующие один и тот же индекс пакета, нормализуются вместе. Здесь µ и σ вычисляются вдоль(C, H, W)Оси.

  • ВЭкземпляр Норманабор S_i определяется как:
Состояние-3

Здесь µ и σ вычисляются вдоль(H, W)оси для каждого образца и каждого канала.

  • ВГрупповая норманабор S_i определяется как:
Состояние-4

Вотгколичество групп, которое является предопределенным гиперпараметром(G = 32 по умолчанию),C / Gколичество каналов в группе. Похожая на скобу вещь - это операция на полу. GN вычисляет µ и σ вдоль(H, W)оси и группаC / Gканалы. Например, еслиG = 2а такженомер канала = 6вВариант нормализации изображения (крайний справа)чем будет2 группыкаждый из которых имеет3 канала(C / G = 6/2)в каждой партии.

На данный момент у нас есть нормализованное значение, представленное какx_i.Но вместо того, чтобы использовать его напрямую, мы умножаем его нагаммазначение, а затем добавитьбетаценность. И то и другоегаммаа такжебетаизучаемые параметры сети и услуг для масштабирования и сдвига нормализованного значения соответственно. Поскольку они могут быть изучены так же, как и веса, они дают вашей сети дополнительные ручки для настройки во время обучения, чтобы помочь ей изучить функцию, которую она пытается приблизить.

Уравнение-3

Теперь у нас есть конечный нормализованный пакетный выход нашего слоя, который мы затем передадим нелинейной функции активации, такой как сигмоид, тан, ReLU, Leaky ReLU и т. Д.


Реализация

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

Код Python для групповой нормы, основанный на Tensorflow. Изображение изГруппа нормализации бумаги,

объяснение

  • ВотИксэто входные функции с формой(N, C, H, W), Гамма и бета: масштаб и смещение с формой(1, С, 1, 1)а такжегколичество групп для GN.
  • Для каждой партии мы меняем вектор признаковИксв виде[N, G, C // G, H, W](где C // G - целочисленное деление, которое определяет количество каналов в каждой группе)
  • tf.nn.momentsпомогает рассчитать среднее значение и дисперсию для каждой партии по осям[C // G, H, W].ЕслиKeep_dimsявляетсяправда, это означает, что он сохраняет уменьшенный размер с длиной 1.
  • После нормализации векторного признаках (на основе формулы в изображении уравнения-1), он преобразуется в свою первоначальную форму[N, C, H, W].
  • В этот момент нормализованное значение представляется какИкс.Но вместо того, чтобы использовать его напрямую, мы умножаем его нагаммазначение, а затем добавитьбетаценность(формы (1, С, 1, 1))и вернуть окончательный вектор.

Если вы заинтересованы в реализации групповой нормализации в Pytorch, вы можете найти ееВот,

Заметка:С небольшими изменениями в коде реализация GN может быть преобразована в LN или IN.

  • В случае нормализации слоя (LN), установите количество групп (G) = 1.
  • В случае нормализации экземпляра (IN) установите количество групп (G) = количество каналов (C).

Сравнение результатов

Сравнение кривых ошибок. Изображение изГруппа нормализации бумаги

Следующие результаты были получены при обучении модели ResNet-50 с размером партии 32Изображения / GPU, на учебном наборе ImageNet. Левый график - это ошибка обучения ImageNet, а правый график - ошибка проверки ImageNet. G для GN по умолчанию составляет 32.

Сравнение коэффициентов ошибок. Изображение изГруппа нормализации бумаги

Из приведенного выше изображения мы можем сделать вывод, что BN является лучшим. Второй лучший метод нормализации - это ГН с ухудшением0,5%.

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

Чувствительность к размеру партии. Диапазон размера партии = [32,16,8,4,2]. Изображение изГруппа нормализации бумаги

Левый график показывает чувствительность к размеру партии в обучении ImageNet, а правый график показывает чувствительность к размеру партии при ошибке проверки ImageNet. G для GN по умолчанию составляет 32.

Чувствительность к ошибкам сравнения размеров партии. Изображение изГруппа нормализации бумаги

Из приведенного выше изображения можно сделать вывод, что с уменьшением размера партии производительность BN резко снижается. Тем не менее, GN остается стабильным в широком диапазоне размеров партии. Так что места, где вы будете работать с небольшими размерами партии, например, -Быстрееа такжеМаска R-CNNВ рамках, где вы будете использовать размер пакета 1 или 2 изображения из-за высокого разрешения, BN будет бесполезен. Таким образом, вместо этого мы можем использовать групповую нормализацию (GN) в таких структурах в качестве альтернативы нормализации партии (BN), дающей сопоставимые результаты для BN при больших размерах партии.

Если вы хотите сравнить результаты с другими наборами данных, вы можете проверить оригиналбумагаза дополнительной информацией.


Вывод

  • GN - эффективный слой нормализации без использования размерности партии.
  • GN относится к LN и IN, двум методам нормализации, которые особенно успешны в обучениирекуррентный (RNN / LSTM)илигенеративные (GAN) модели.
  • Улучшение GN при обнаружении, сегментации и классификации видео демонстрирует, что GN является сильной альтернативой мощной и в настоящее время доминирующей технике BN в этих задачах.

Все результаты, полученные в этой статье, основаны на оригинальной статьеГрупповая нормализация,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map