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

Среди наиболее известных архитектур трансформеров можно назвать Google ViT или Microsoft Swin Transformer, которые доминируют в обнаружении объектов и сегментации естественных изображений. Эти две архитектуры являются лишь одним из примеров многих работ, которые были сделаны для того, чтобы адаптировать трансформеры к обработке естественных изображений.

Недавно FAIR представила ConvNeXt [1], которая заново исследует пространства проектирования и проверяет пределы того, чего может достичь исключительно ConvNet. Благодаря своему опыту они нашли способ модернизировать сеть, основанную исключительно на свертке, чтобы превзойти сети на основе трансформеров, и таким образом вернуть величие сверточным сетям.

Модернизация сети ConvNet: дорожная карта

[1] представляет дорожную карту из пяти частей для преобразования стандартного ResNet в трансформер шаг за шагом, которые мы рассмотрим в следующих подразделах.

Процедура и результаты на каждом этапе модернизации сети.
Процедура и результаты на каждом этапе модернизации сети.

Макродизайн

В первой части дорожной карты автор вносит два первоначальных изменения в исходную архитектуру ResNet-50, как показано в таблице ниже,

Спецификации архитектур ResNet-50, ConvNeXt-T и Swin-T.
Спецификации архитектур ResNet-50, ConvNeXt-T и Swin-T.

Во-первых, они изменяют количество блоков на каждом этапе свертки. Как мы можем заметить из таблицы, в оригинальной архитектуре ResNet-50 количество блоков распределяется в соответствии с соотношением (3, 4, 6, 3) в 4 этапа. Авторы предложили принять многоступенчатую идею, выводя различные значения разрешений на каждом этапе, подобно Swin Transformer с соотношением, равным 1:1:3:1.

Поэтому ConvNeXt следует этому соотношению и перераспределяет количество блоков свертки на (3, 3, 9, 3), что приводит к улучшению точности модели на 0,6% до 79,4%.

Второе изменение, которое они вносят, предполагает изменение дизайна начального блока свертки, в оригинальной архитектуре ResNet-50, где со входа пробрасывается слой свертки 7x7 с шагом 2 плюс операция max-pooling, которая понижает дискретизацию входного изображения с коэффициентом 4.

Они заменяют этот первый блок свертки, используя тот же подход, что и в Swin Transformer, используя неперекрывающуюся свертку 4х4 с шагом 4 для воспроизведения операций нарезки патчей ViT, что приводит к улучшению точности модели еще на 0,1%, которая теперь достигает 79,5%.

ResNeXt-ify

В этой части дорожной карты авторы предложили использовать некоторые основные идеи ResNeXt [2], которая характеризуется лучшим компромиссом между точностью и вычислениями, чем традиционная ResNet, благодаря использованию сгруппированной свертки, при этом увеличивая ширину сети для компенсации потери мощности модели.

[1] использует свертку по глубине, делая количество групп равным количеству входных каналов, поэтому каждое ядро свертки обрабатывает один канал и смешивает информацию только в пространственном измерении, чтобы получить эффект, подобный механизму внутреннего внимания (self-attention), в результате чего точность модели повысилась на 1% до 80,5%.

Инвертирование слоя узкого места

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

Модификации блока и приведенные характеристики. 
Модификации блока и приведенные характеристики. 

Хотя FLOPs глубокого сверточного слоя увеличивается после такого реверса, FLOPs всей сети падает из-за эффекта даунсэмплинга остаточного блока, что приводит к увеличению точности на 0,1 процента.

Увеличение ядра свертки

В этой части авторы обсуждают влияние различной ширины ядра свертки на производительность модели. Однако после реверсирования слоя узкого места и увеличения размерности сверточного слоя, увеличение непосредственно ядра свертки значительно увеличит количество параметров, поэтому они сдвигают вверх положение глубинного слоя Conv ((b) - на рисунке выше), временно снижая точность модели до 79,9%.

Они использовали различные размеры ядра свертки от 3x3 до 11x11, и достигли оптимальной точности 80,6% для ядра свертки размером 7x7.

Микродизайн

Наконец, авторы рассматривают влияние функций активации и нормализации на производительность модели.

Сначала они попытались заменить традиционную функцию активации ReLU на более мягкую версию, такую как GELU, что не улучшило точность модели. Затем они пробуют аналогичный подход к блоку Transformer, используя функции активации только в блоках MLP, поэтому функция активации GELU применяется только между двумя слоями 1x1, что приводит к увеличению точности модели на 0,7% и, наконец, достигает 81,3%.

Количество слоев нормализации также было сокращено, а слой Batch Normalization был замещен на слой Batch Normalization, в результате чего точность увеличилась на 0,1%, и теперь она достигла 81,5%.

Структура одного блока ConvNeXt показана ниже,

Проекты блоков для ResNet, Swin Transformer и ConvNeXt.
Проекты блоков для ResNet, Swin Transformer и ConvNeXt.

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

Заключение

Они оценили ConvNeXts с помощью различных задач по видению, таких как классификация ImageNet, обнаружение/сегментация объектов на COCO и семантическая сегментация, достигая сравнимой или лучшей производительности, чем SwinTransformer.

Данная работа способствует тому, чтобы ученые пересмотрели значимость свертки в компьютерном зрении.


Приглашаем на ближайший открытый урок в OTUS «Anomaly Detection». На занятии рассмотрим следующие вопросы: постановка задачи, нахождение аномалий в разных распределениях, SVD-feature extraction, Autoencoder, PaDiM. Регистрация по ссылке.

Комментарии (0)