Как нейросеть Slot Attention от Google Brain учится разделять объекты на фото

Yannic Kilcher 19,2 тыс. 42 мин 6 мин 30.06.2020
Главное

В новом видео популярный блогер и исследователь Янник Килчер (Yannic Kilcher) подробно разбирает научную статью «Object-Centric Learning with Slot Attention», подготовленную инженерами из Google Brain, ETH Zurich и MPI. Работа посвящена извлечению структуры объектов из хаотичного набора пикселей с помощью специального механизма слотов внимания. Ведущий детально анализирует архитектуру нейросети, оценивает её ключевые преимущества и делится обоснованным скепсисом относительно методологии экспериментов авторов.

🎯 Постановка задачи: обнаружение объектов и предсказание множеств 0:00

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

Главная сложность здесь заключается в том, что объекты представляют собой неупорядоченное множество. По словам ведущего, порядок упоминания объектов (например, «зелёный куб и жёлтый цилиндр» или наоборот) не должен влиять на результат. Соответственно, архитектура нейросети обязана обладать свойством инвариантности к перестановкам.

Чтобы решить эту проблему и рассчитывать функцию потерь без штрафов за случайный порядок, авторы используют алгоритм венгерского сопоставления (Hungarian matching), аналогично архитектуре DETR от Facebook. По мнению Янника Килчера, модель даёт «кредит доверия» предсказаниям, сопоставляя их с наиболее близкими истинными метками. Штраф начисляется только в случае явных ошибок, например при дублировании одного и того же объекта, когда реальный аналог в выборке отсутствует.

🏗️ Архитектура Slot Attention: как слоты борются за пиксели 4:25

Для решения этих задач авторы вводят модуль Slot Attention. Процесс обработки изображения устроен следующим образом:

Суть механизма заключается в распределении признаков по слотам. Как объясняет Янник Килчер, цель состоит в том, чтобы заставить слоты конкурировать за пиксели изображения. В отличие от классического внимания, здесь признаки генерируют векторы ключей (keys), а слоты — векторы запросов (queries). Распределение признаков происходит с помощью функции Softmax по оси слотов. Это создаёт эффект жёсткой конкуренции: если один слот забирает себе пиксель, другие уже не могут им воспользоваться, так как сумма вероятностей распределения жестко нормирована.

Важным отличием от архитектуры DETR является инициализация слотов. По мнению Килчера, в DETR позиционные эмбеддинги слотов являются обучаемыми, что заставляет их специализироваться на конкретных областях картинки (например, верхний левый угол). В обсуждаемой работе слоты инициализируются абсолютно случайно для каждого нового изображения. По мнению ведущего, это позволяет сохранить независимость слотов от геометрии сцены и сделать их универсальными.

🔄 Итеративное роутирование и «магия» трансформаторов 15:24

С технической точки зрения Slot Attention использует не взвешенную сумму, как стандартное внимание, а взвешенное среднее. По словам ведущего, это необходимо, чтобы масштаб значений оставался стабильным независимо от изменения количества слотов.

Процесс обновления слотов устроен итеративно:

  1. Случайно инициализированные слоты участвуют в первом круге распределения информации.
  2. Полученные обновления проходят через рекуррентный блок GRU, где скрытым состоянием выступают слоты из предыдущего шага.
  3. Затем применяется опциональный остаточный многослойный перцептрон (residual MLP).
  4. Обновлённые слоты снова сопоставляются с теми же самыми исходными признаками изображения.

По мнению Янника Килчера, этот процесс концептуально идентичен работе капсульных сетей (Capsule Networks) с их итеративным роутированием. Более того, ведущий предлагает рассматривать эту систему как обычный Transformer с разделением весов (weight sharing) между слоями.

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

🖼️ Декодирование сцены и выделение заднего плана 24:57

Для проверки работы в режиме обучения без учителя (Object Discovery) векторы слотов пропускаются через специальный декодер. Этот модуль напоминает генератор в GAN или архитектуру автокодировщика. Его задача — восстановить исходное изображение по скрытым представлениям слотов, минимизируя среднеквадратичную ошибку L2.

Каждый слот генерирует четыре канала информации: стандартные цветовые каналы RGB и дополнительный альфа-канал маски прозрачности (A). Маски прозрачности всех слотов объединяются через Softmax, чтобы гарантировать, что их сумма для каждого пикселя равна единице.

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

🤨 Скепсис Килчера: идеальные датасеты и уловки в экспериментах 27:46

Несмотря на то, что модель демонстрирует отличные результаты на датасете CLEVR (например, чётко сегментирует геометрические фигуры), Янник Килчер высказывает серьёзный скепсис относительно готовности технологии к реальному миру. По его мнению, успех во многом обусловлен стерильностью обучающих данных: объекты на рендерах геометрически просты, их текстуры идеальны, а корреляция между их расположением в обучающей выборке практически равна нулю.

Основные критические замечания ведущего к авторам статьи из Google Brain:

Особое возмущение у Килчера вызвала манипуляция с описанием аппаратного обеспечения. Авторы заявляют, что их модель способна работать с размером батча (batch size) до 64 на одной видеокарте V100, в то время как базовая модель IODINE использовала батч размером всего 4. Однако, изучив статью IODINE, Килчер обнаружил, что те исследователи использовали старые потребительские видеокарты с 12 ГБ памяти. В то же время Google проводил тесты на профессиональном ускорителе Tesla V100 с 32 ГБ памяти, который стоит в 5–10 раз дороже. По мнению ведущего, формулировка «мы оба тестировали на одной GPU, но у нас батч больше» является манипулятивным преувеличением.

💎 Главные плюсы Slot Attention и критика этических отчётов 36:12

Чтобы обзор не выглядел излишне негативным, Янник Килчер подчёркивает, что сам алгоритм Slot Attention — это потрясающая, изящная и перспективная идея. Главным преимуществом подхода является уникальное свойство генерализации:

В финале обзора блогер касается темы разделов о «широком общественном влиянии» (Broader Impact Statement), которые стали обязательными для конференций уровня NeurIPS. Зачитав заявление авторов, Килчер отмечает, что оно полностью лишено какого-либо социального контекста и лишь перечисляет технические свойства прозрачности масок внимания. По мнению ведущего, прагматичные исследователи быстро поняли лазейку: поскольку этот раздел не засчитывался в общий лимит страниц статьи, авторы начали маскировать под него расширенное введение или дополнительные выводы, чтобы уместить больше технической информации.

💬 Цитаты

«Поскольку веса между шагами роутирования общие, во время инференса можно увеличить число итераций.»

Янник Килчер 37:05

«Формулировка «мы оба тестировали на одной GPU, но у нас батч больше» кажется ведущему некорректным преувеличением.»

Янник Килчер 35:20
👥 Спикер
📖 Термины
Slot Attention
Механизм внимания, распределяющий признаки изображения по ограниченному числу скрытых слотов.
Венгерское сопоставление
Алгоритм оптимизации, используемый для вычисления функции потерь в задачах предсказания неупорядоченных множеств.
Инференс
Этап работы уже обученной нейросети, когда она выполняет предсказания на реальных данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Slot Attention Google Brain Янник Кильхер компьютерное зрение сегментация изображений