Предисловие:
Эта статья представляет собой статью, опубликованную He Kaiming в 2018. В статье предлагается проблема в BN, то есть производительность модели зависит от размера партии.Когда размер партии относительно мал, производительность модели серьезно ухудшается, и Существование BN затрудняет работу приложений с ограниченным объемом памяти.
В этой статье предлагается групповая нормализация, основанная на этих проблемах, GN хорошо избегает этих проблем, а производительность модели не будет зависеть от размера партии.
Кроме того, в статье автор представляет и сравнивает эти два метода с некоторыми другими методами нормализации (такими как нормализация слоя, нормализация экземпляра).
Диссертация: групповая нормализация
смысл
Пакетная нормализация (BN) — это важный метод в развитии глубокого обучения, который позволяет обучать различные сети. Однако нормализация по размеру партии представляет собой проблему: из-за неточной оценки статистики партии погрешность BN быстро возрастает, когда размер партии становится малым. Это ограничивает применение BN для обучения более крупных моделей и для передачи функций задачам компьютерного зрения, включая обнаружение, сегментацию и видео, которые требуют небольших пакетов и ограничены потреблением памяти.
В этой статье мы предлагаем групповую нормализацию (GN) как простую альтернативу BN.
GN делит каналы на группы и вычисляет среднее значение и дисперсию в каждой группе для нормализации. Вычисление GN не зависит от размера партии, и его точность стабильна при разных размерах партии. В ResNet-50, обученном с помощью ImageNet, ошибка GN на 10,6% меньше, чем у BN при использовании размера пакета 2;
При использовании часто используемых размеров пакетов GN работает близко к BN и превосходит другие методы нормализации. Более того, GN может естественным образом переходить от предварительной подготовки к тонкой настройке. GN может превзойти своих аналогов на основе BN в обнаружении и сегментации объектов в COCO и классификации видео в Kinetics, предполагая, что GN может эффективно заменить мощный BN в различных задачах.
GN можно легко реализовать всего несколькими строками кода.
некоторые детали
Чтобы облегчить понимание читателям со слабым фундаментом, давайте кратко рассмотрим пакетную нормализацию.
В серии интерпретаций модели публичного счета "Inception_v2 из серии Inception"(щелкните, чтобы войти) для полной интерпретации пакетной нормализации.
Алгоритм BN показан на рисунке выше Алгоритм BN вычисляет среднее значение и дисперсию данных в одном пакете, затем нормализует их и, наконец, масштабирует и смещает их. Примечание. BN вычисляет данные только для одного и того же канала в пакете, и каждый канал вычисляет среднее значение и дисперсию один раз, поэтому в коде требуется количество входных каналов (например, nn.BatchNorm2d).
Можно видеть, что приведенный выше алгоритм зависит от m (то есть от размера партии), а ɣ и β являются параметрами, изученными во время обучения.Эти два фактора также являются ключом к проблеме BN.
Вернемся к этой статье, как показано на рисунке ниже, когда размер пакета становится меньше, частота ошибок классификации ImageNet резко возрастает. Это связано с тем, что количество выборок, представленных средним значением и дисперсией небольшого размера партии, невелико, а случайность больше, чем у большой партии. Оценки масштабирования и смещения также менее точны. В некоторых задачах компьютерного зрения, требующих большого разрешения (таких как обнаружение объектов, семантическая сегментация) из-за ограничений памяти, можно использовать только небольшие размеры пакетов, что также приводит к предварительному обучению предварительно обученной модели на изображениях небольшого разрешения. таких как ImageNet Коэффициент масштабирования и коэффициент смещения недостаточно точны.
Автор сравнивает несколько методов нормализации со следующей диаграммой, которая хорошо отражает разницу между этими методами. Здесь для удобства HxW преобразуется в H*W.
Видно, что Batch Norm нормализует один и тот же канал под пакетом, Layer Norm нормализует все каналы под один и тот же сэмпл, Instance Norm нормализует каждый канал каждого семпла, Group Norm делит каналы под один семпл на G групп и нормализует каждую группу.
Норму слоя и норму экземпляра можно рассматривать как два особых случая нормы группы, то есть, когда G принимает размер канала C, норма группы становится нормой экземпляра, а когда G принимает значение 1, она становится нормой слоя.
Как видно из рисунка, кроме Batch Norm, последние три не имеют ничего общего с Batch Size, поэтому на эти три нормализации размер Batch Size не повлияет.
В сочетании с предыдущим кратким обзором алгоритма пакетной нормы, представленным здесь, групповая норма на самом деле очень ясна, потому что формула нормализации, которую она использует, также является формулой пакетной нормы, но диапазон данных, используемых для расчета среднего значения и дисперсии, отличается. Собственно, в этом и заключается разница между тремя методами.
код реализации
Ниже приведен код, реализованный GroupNorm с тензорным потоком:
Результаты экспериментов
Как показано на рисунке выше, на этапе обучения частота ошибок GN немного ниже, чем у BN, а на этапе проверки частота ошибок BN немного ниже, чем у GN, но оба они значительно лучше, чем у BN. ЛН и ИН.
Как показано на рисунке выше и в таблице ниже, при использовании разных объемов партии производительность БН значительно ухудшается, в то время как модель ГН всегда непротиворечива.
Составлено техническое резюме всех методов нормализации, которое размещено в серии технических резюме CV, и резюме можно просмотреть, обратив внимание на публичный аккаунт.
Эта статья взята из серии публикаций технического руководства по общедоступной учетной записи CV.Для получения дополнительной информации отсканируйте QR-код в конце статьи, чтобы подписаться на общедоступную учетную запись.
Недавно все технические резюме официального аккаунта (техническое руководство CV) были упакованы в pdf, который можно получить, ответив на ключевое слово «техническое резюме» в официальном аккаунте.
Другие статьи
Краткое изложение методов недообучения и переобучения
Краткое изложение общих идей бумажных инноваций
Резюме методов эффективного чтения англоязычной литературы по направлению CV
Обзор непродолжительного обучения компьютерному зрению
Краткий обзор дистилляции знаний
Оптимизировать скорость чтения видео OpenCV
Краткое изложение методов функции потерь
Техническое резюме механизма внимания
Краткое изложение технологии пирамиды функций
Краткое изложение технологии объединения
Краткое изложение методов увеличения данных
Резюме эволюции структуры CNN (1) Классическая модель
Резюме эволюции структуры CNN (2) Облегченная модель
Резюме эволюции структуры CNN (3) Принципы проектирования
Как увидеть будущее направление компьютерного зрения
Краткое изложение технологии визуализации CNN (1) - визуализация карты функций
Краткое изложение технологии визуализации CNN (2) - визуализация ядра свертки
Краткое изложение технологии визуализации CNN (3) - визуализация класса
Краткое описание технологии визуализации CNN (4) - инструменты и проекты визуализации