Plug and Play New Convolution: улучшите производительность CNN, удвойте скорость

Нейронные сети

Недавно исследователи из Facebook AI, Национального университета Сингапура и Qihoo 360 совместно предложили новую операцию свертки (OctConv) для замены существующей общей свертки. Эта новая свертка не только требует меньше памяти и вычислений, но и помогает повысить производительность.

Сверточная нейронная сеть(CNN) добилась выдающихся достижений во многих задачах компьютерного зрения, но за высокой точностью стоит высокая избыточность и значительные вычислительные затраты.


Рисунок 1. Существующая операция свертки (свертка 1x1)

Для операции свертки (рис. 1) каждая позиция представлена ​​D-мерным вектором признаков, а извлечение признаков заключается в обработке каждой позиции отдельно посредством скользящей свертки для получения соответствующего признака.

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

Рисунок 2. Ядро свертки первого уровня AlexNet

В то же время ядра свертки, изученные CNN, не все являются высокочастотными ядрами свертки, как показано на рисунке 2. Это означает, что одна часть свертки фокусируется на извлечении «низкочастотных признаков», а другая — на извлечении «высокочастотных признаков». Для карты признаков, соответствующей низкочастотной свертке, нам может понадобиться только сохранить ее низкочастотный сигнал, и нет необходимости хранить карту признаков с высоким разрешением.


Рисунок 3. Из этой статьи:
(а) основная мотивация, (б, в) выражение новой функции;
(d) OctConv

Как показано на рисунке 3, в этой статье предлагается разделить карты признаков на две группы: низкочастотные признаки (синие) и высокочастотные признаки (оранжево-красные), а также хранить «карты низкочастотных признаков», которые медленно изменяются в пространство в тензорах с низким разрешением, общие функции между соседними местоположениями. OctConv, предложенный в этой статье, представляет собой операцию свертки, которая может напрямую воздействовать на выражение признака. Он содержит обновления собственного состояния каждой частоты (зеленые стрелки), а также обмен информацией между частотами (красные стрелки).

Рисунок 4. Детали дизайна OctConv

Название Octave Convolution (OctConv) должно быть вдохновлено функциями SIFT. Октава означает восемь гамм, а 8 ступеней вниз в музыке означают, что частота уменьшается вдвое. В этой статье используется октава, чтобы изолировать высокочастотные и низкочастотные функции в разные группы и вдвое уменьшить разрешение низких частот.

Исследователи указали, что OctConv можно напрямую использовать для замены существующей свертки, и он работает по принципу plug-and-play, без настройки параметров и не влияет на структуру сети и размер модели CNN. Поскольку OctConv фокусируется на уменьшении избыточности пространственных измерений CNN, он является ортогональным и дополняет существующие методы, которые сосредоточены на проектировании топологии сети и упрощении сокращения сетевых характеристик.

Эксперименты показывают, что замена обычной свертки на OctConv может стабильно улучшать существующие 2D сети CNN (включаяResNet, ResNeXt,DenseNet, MobileNet, SE-Net) для повышения эффективности распознавания изображений в ImageNet, а также может постоянно улучшать 3D-сети CNN (C2D, I3D) и повышать производительность в Kinetics (набор данных для распознавания линейных видеодействий). Oct-ResNet-152 с OctConv даже сравним с современными сетями автоматического поиска (NAS, PNAS и т. д.).

Документ: Отбросьте октаву: уменьшение пространственной избыточности в сверточных нейронных сетях с помощью октавной свертки

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

В этой статье мы предлагаем декомпозировать карты смешанных объектов на основе частоты и разработать новую операцию октавной свертки (OctConv) для хранения и обработки пространственно меняющихся «более медленных» карт объектов с более низким пространственным разрешением, тем самым уменьшая затраты памяти и вычислений.

В отличие от существующих многомасштабных методов, OctConv представляет собой единый модуль свертки общего назначения и plug-and-play, который может напрямую заменить (обычные) свертки без каких-либо изменений в сетевой архитектуре. OctConv является ортогональным и дополняет те, которые используются для построения лучших топологий или уменьшения избыточности каналов в сгруппированных или глубинных свертках.

Эксперименты показывают, что, заменив обычные свертки на OctConv, исследователи могут постоянно повышать точность задач распознавания изображений и видео при одновременном снижении затрат памяти и вычислительных ресурсов. ResNet-152, оснащенный OctConv, может достичь 82,9% точности классификации топ-1 в ImageNet всего с 22,2 гигафлопс.

метод

В этом разделе мы сначала вводим представление объектов, используемое для уменьшения пространственной избыточности в картах объектов, а затем описываем свертки Octave, которые действуют непосредственно на это представление (рис. 4). Исследователи также обсуждают детали реализации, показывая, как OctConv может быть включен в сгруппированные и глубокие сверточные архитектуры.

Рисунок 4. Детали дизайна OctConv

Таблица 1:
Теоретическое улучшение производительности, вызванное разницей в пропорции α низкой частоты, используемой в низкочастотной функции.
Когда α=0 (т.е. отсутствует низкочастотная составляющая), OctConv вырождается в обычную свертку.
Обратите внимание, что количество параметров для OctConv такое же, как и для обычного моталки, независимо от того, какое соотношение α выбрано (как показано на рисунке 5).

Рисунок 5. Ядро свертки OctConv

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

Здесь есть кое-что очень интересное. Исследователи указали, что понижение частоты дискретизации с помощью свертки приводит к тому, что карты объектов не выровнены точно. Для понижения частоты дискретизации рекомендуется использовать операции объединения.

Экспериментальная оценка

В этом разделе исследователи проверяют производительность и эффективность предлагаемой свертки Octave для 2D- и 3D-сетей. Исследователи сначала представляют исследование контрольных переменных для классификации изображений на ImageNet, а затем сравнивают его с текущими современными методами. Впоследствии, используя наборы данных Kinetics-400 и Kinetics-600, исследователи показали, что предложенный OctConv также работает для 3D CNN. Лучшие результаты по каждой категории/блоку выделены в статье жирным шрифтом.


Рисунок 4:
Результаты исследования контрольных переменных на ImageNet.
Модель с OctConv более эффективна и точна, чем базовая модель.
Черная метка ● в каждой строке рисунка выше указывает на базовую модель без OctConv.
Цифры обозначают отношение α.
По оси абсцисс представлены вычислительные затраты (FLOP), а по оси ординат — точность.

Таблица 2:
Измеренное время вывода ResNet-50 измеряется на процессоре Intel Skylake с тактовой частотой 2,0 ГГц (один поток).

таблица 3:
Эксперименты с управляющими переменными с пониженной частотой дискретизации и межоктавная связь на ImageNet.

Таблица 4:
Точность классификации ImageNet.
Исследователи скорректировали размер входного изображения, чтобы определить скорость распознавания сетью объектов разного размера.

таблица 5:
Результаты классификации ImageNet для небольших моделей.

Таблица 6:
Результаты классификации ImageNet средней модели.

Таблица 7:
Результаты классификации ImageNet для больших моделей.
Названия моделей, оснащенных OctConv, выделены жирным черным шрифтом, а данные о производительности из соответствующих исследований взяты из соответствующей статьи.
Оцените нагрузку на память и скорость обучения сети на флопе 16 на NVIDIA Titan V100 (32 ГБ) с помощью CuDNN v10.03.
Работы, использующие поиск по нейронной архитектуре, помечены (3).
В большинстве примеров исследователи установили размер пакета равным 128, но для сетей, слишком больших для памяти GPU, они уменьшили размер пакета до 64 (отмечено †), 32 (отмечено ‡) или 8 (отмечено ‡). ).

Таблица 8:
Распознавание действий в видео, изучение управляющих переменных, использование всех моделей ResNet50.