SpineNet против ResNet: новая геометрия бэкбонов для компьютерного зрения

Yannic Kilcher 10,8 тыс. 35 мин 6 мин 05.07.2020
Главное

В видеоразборе известного исследователя и блогера Янника Килчера (Yannic Kilcher) рассматривается прорывная научная работа инженеров Google Research под названием SpineNet. Автор подробно анализирует концепцию изменения устоявшихся архитектурных подходов в сверточных нейросетях, где вместо традиционного последовательного уменьшения масштаба предлагается интеллектуальная перестановка блоков. Эта идея позволяет значительно повысить точность систем распознавания и локализации объектов без увеличения вычислительной сложности.

🧩 Парадокс пространственного разрешения в компьютерном зрении 0:53

Традиционные задачи компьютерного зрения можно разделить на несколько ключевых категорий, среди которых выделяются классификация, распознавание и локализация объектов. Как объясняет ведущий Янник Килчер, если для простой классификации нам достаточно определить, есть ли на изображении условный «кот» или «дом», то для локализации требуется точно указать координаты объекта. Это может быть реализовано в виде баундинг-боксов (ограничивающих рамок), ключевых точек или попиксельной сегментации.

Исторически сверточные нейросети (CNN) для классификации строились на основе человеческой эвристики, которая отлично себя зарекомендовала. В таких архитектурах изображение проходит через последовательные слои, где разрешение карт признаков постепенно уменьшается (например, с помощью пулинга или свертки со страйдом 2), а количество каналов, наоборот, растет. На начальных этапах сеть извлекает простые низкоуровневые признаки, такие как границы и контуры, а по мере углубления они становятся более абстрактными.

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

📉 Почему классические бэкбоны больше не устраивают исследователей 5:22

Описанная схема «сжатие-расширение» лежит в основе большинства современных систем, где базовая сеть (бэкбон), такая как ResNet, дополняется выходными слоями вроде Feature Pyramid Network (FPN). Чтобы вернуть потерянные высокоуровневые пространственные детали, инженеры традиционно используют сквозные связи (skip connections) между слоями одинакового разрешения.

Авторы исследуемой научной работы SpineNet критикуют этот общепринятый шаблон. По их мнению, последовательное уменьшение масштаба (scale-decreased network) не является оптимальным для одновременного распознавания и локализации. Они предлагают альтернативу — сеть с перестановкой масштабов (scale-permuted network).

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

🔀 SpineNet: Архитектурная перестановка под управлением ИИ 9:09

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

Очевидно, что вручную перебрать миллиарды возможных комбинаций расположения слоев и их связей человек не способен. Для решения этой задачи авторы применили поиск нейроархитектур (Neural Architecture Search, NAS) на базе обучения с подкреплением.

Процесс устроен следующим образом:

Янник Килчер иронично замечает, что в индустрии термин «поиск нейроархитектур» до сих пор остается лишь модным синонимом фразы «давайте просто попробуем кучу вариантов наугад». Главный недостаток такого подхода — колоссальные требования к вычислительным ресурсам. Каждая итерация алгоритма требует полного обучения сложной нейросети с нуля, и даже использование техник ранней остановки (early stopping) не спасает от огромных затрат compute-мощностей.

🔧 Анатомия кросс-масштабных соединений 13:59

Соединение слоев с разным разрешением и разным количеством каналов сопряжено с техническими трудностями, которые разработчикам пришлось преодолевать. Для изменения количества каналов (фичей) используются стандартные свертки $1 \times 1$, известные еще со времен оригинальной статьи по ResNet.

Однако такие операции могут быть очень тяжелыми для вычислений. По словам Янника Килчера, авторы SpineNet пошли на хитрость для экономии ресурсов: перед выполнением кросс-масштабного соединения количество признаков принудительно уменьшается с помощью коэффициента $\alpha$, который по умолчанию равен 0,5. Только после этого происходит перераспределение, а в самом конце сеть восстанавливает целевое количество каналов. Янник предполагает, что подобное линейное сжатие в теории может приводить к потере части важной информации в процессе передачи данных.

Для изменения пространственного разрешения используются два метода:

  1. Уменьшение масштаба (Downsampling): Если текущее разрешение карты признаков выше целевого, применяется свертка с увеличенным шагом (stride) или операция Max Pooling.
  2. Увеличение масштаба (Upsampling): Если текущее разрешение меньше целевого, применяется интерполяция методом ближайшего соседа (nearest neighbor interpolation).

📊 Цифры, тесты и «повреждение графа» 19:13

Эффективность нового подхода тестировалась в сравнении со стандартной моделью ResNet-50, дополненной выходными слоями FPN, которая на базовом датасете показала среднюю точность (Average Precision, AP) на уровне 37,8%.

Результаты поэтапного освобождения архитектуры из-под контроля человеческих эвристик выглядят следующим образом:

Чтобы доказать важность именно перестановки масштабов и кросс-слойных связей, авторы провели серию абляционных исследований, названных «повреждением графа» (graph damage). Они поочередно удаляли различные типы соединений в обученной SpineNet. При удалении коротких связей точность упала до 35%. Удаление длинных связей (long-range connections), которые соединяют блоки через несколько уровней, привело к еще более катастрофическому падению метрик.

Янник Килчер, однако, призывает скептически относиться к методологии «повреждения графа». По его мнению, если сеть ломается после удаления связей, это не доказывает, что данный паттерн — единственный способ достичь высокой точности. Возможно, если бы сеть изначально обучалась без этих связей, она смогла бы адаптироваться и выдать сопоставимый результат.

💡 Динамическая маршрутизация и масштабирование «на коленке» 26:56

Вдохновившись исследованием, Янник Килчер предлагает собственную оригинальную идею развития этой концепции. Главная проблема SpineNet, с его точки зрения, заключается в статичности архитектуры: ИИ находит один оптимальный путь, и через него прогоняются абсолютно все изображения. Килчер предлагает заменить фиксированный граф механизмом внимания (Attention), аналогичным трансформерам. В такой схеме блоки разного разрешения существовали бы параллельно, а динамическая маршрутизация данных зависела бы от конкретного входного примера: для изображений с кошками активировался бы один путь, а для собак — другой.

Еще один критический комментарий ведущего касается масштабирования SpineNet до уровня тяжелых моделей (аналогов ResNet-101 или ResNet-150). Выяснилось, что даже у Google Research не хватило вычислительных мощностей, чтобы запустить поиск нейроархитектур для сетей большого объема.

Вместо честного поиска инженеры применили тривиальный трюк: они взяли готовую архитектуру SpineNet-49 и просто продублировали (или утроили) каждый ее блок, создав версии SpineNet-96 и SpineNet-143. Янник называет этот метод «дешевым» и считает, что он во многом противоречит самой идее NAS, ведь сеть снова загоняется в рамки жестких человеческих допущений.

Тем не менее, даже в таком виде SpineNet демонстрирует превосходство над аналогами аналогичного размера как по количеству FLOPs, так и по точности, причем этот эффект сохраняется даже при переносе на задачу классификации ImageNet. В финале Янник Килчер заключает, что SpineNet — это качественный инженерный проект, однако вопрос о том, станет ли эта архитектура новым универсальным стандартом вместо ResNet-50, пока остается открытым.

💬 Цитаты

«Поиск нейроархитектур до сих пор остается лишь модным синонимом фразы „давайте просто попробуем кучу вариантов наугад“.»

Янник Килчер 11:58

«Выяснилось, что даже у Google Research не хватило вычислительных мощностей, чтобы запустить поиск нейроархитектур для сетей большого объема.»

Янник Килчер 30:17
👥 Спикер
📖 Термины
Бэкбон (Backbone)
Базовая часть нейросети, отвечающая за извлечение основных признаков из входного изображения.
Поиск нейроархитектур (NAS)
Автоматизированный процесс проектирования оптимальной структуры нейронной сети без участия человека.
Баундинг-бокс (Bounding box)
Ограничивающая рамка, используемая в компьютерном зрении для обозначения границ найденного объекта.
Абляционные исследования
Эксперименты по поочередному удалению отдельных компонентов системы для оценки их влияния на итоговый результат.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект SpineNet Янник Кильхер ResNet-50 компьютерное зрение