Саймон Корнблит из GoogleAI об архитектуре SimCLR и будущем компьютерного зрения

Machine Learning Street Talk 9,5 тыс. 1 ч 30 мин 5 мин 06.12.2020
Главное

Саймон Корнблит (Simon Kornblith), исследователь из GoogleAI и один из авторов прорывной работы SimCLR, прошел путь от изучения мозга обезьян в MIT до анализа «внутренностей» кремниевых нейросетей. В этом глубоком техническом интервью он объясняет, почему современные архитектуры часто страдают от избыточности, как правильно «готовить» самообучение (self-supervised learning) и почему язык Julia может быть эффективнее Python для машинного обучения.

🧠 От нейробиологии к нейросетям: почему кремний понятнее углерода 22:13

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

Основные трудности нейробиологии, по мнению гостя:

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

📊 Метрика CKA: как сравнить «представления» внутри моделей 1:52

Одной из главных заслуг Саймона Корнблита стала разработка метода сравнения слоев нейросетей — Centered Kernel Alignment (CKA). До этого исследователи пытались использовать канонический корреляционный анализ (CCA), но он давал точность всего около 1.4% при попытке сопоставить соответствующие слои в двух сетях с разной инициализацией .

Суть метода CKA:

  1. Матрица сходства примеров: Вместо того чтобы сравнивать активации нейронов напрямую (которые могут быть перемешаны), строится матрица того, насколько похожи разные примеры (изображения) друг на друга с точки зрения конкретного слоя .
  2. Инвариантность: Полученная матрица (Gram matrix) позволяет сравнивать слои даже в сетях с разной архитектурой или разным количеством нейронов .
  3. Нормализация: Метрика нормализуется так, чтобы изменение масштаба признаков не влияло на итоговый показатель сходства (от 0 до 1) .

Саймон отмечает, что использование RBF-ядер (ядерных функций) в CKA особенно полезно для трансформеров, так как позволяет модели игнорировать глобальные расстояния между далекими примерами, фокусируясь на локальной структуре .

🧊 «Блочность» и патологии глубоких сетей 3:00

Используя CKA, Саймон Корнблит обнаружил феномен «блочности» (blockiness) в матрицах сходства . Когда на визуализации видны большие квадраты вдоль диагонали, это означает, что репрезентации в последовательных слоях перестают эволюционировать — они становятся идентичными друг другу.

Ключевые выводы исследования:

📉 Влияние функции потерь на архитектуру признаков 6:56

В своей работе «What's in a Loss Function for Image Classification» Саймон Корнблит исследовал, как разные лосс-функции (Softmax, MSE, Label Smoothing) влияют на то, чему учится сеть.

Результаты оказались неожиданными:

🖼️ SimCLR: Рецепт эффективного самообучения 50:48

Проект SimCLR (Simple Framework for Contrastive Learning) доказал, что нейросети могут учиться на изображениях без меток так же эффективно, как и с ними . В основе лежит контрастивное обучение: мы берем одно изображение, делаем из него два разных «вида» (augmentations) и заставляем сеть понять, что это один и тот же объект, одновременно «отталкивая» его от всех остальных картинок в батче .

Золотой рецепт SimCLR от Саймона Корнблита:

  1. Две критические аугментации: Случайная обрезка (crop) и агрессивное искажение цвета (color distortion) . Без искажения цвета сеть просто учит цветовые гистограммы, что является «читерством» и не дает понимания объектов .
  2. Проекционная голова (Projection Head): MLP-слой поверх основного энкодера. Для финальных задач этот слой отбрасывается, так как он слишком специализируется на задаче контрастивного обучения, а признаки на слой ниже — более универсальны .
  3. Размер батча: В оригинальном SimCLR использовался батч из 4096 изображений, что давало 8190 «негативных» примеров для сравнения .

Саймон выражает скепсис по поводу использования GAN для аугментации данных. По его мнению, GAN не создает новых данных, а лишь иначе кодирует существующие индуктивные смещения (inductive biases). Простые геометрические аугментации эффективнее, так как в них человек напрямую вкладывает знание о семантической эквивалентности [1:25:34, 1:26:39].

🧪 SimCLR v2 и дистилляция знаний 1:15:11

Вторая версия фреймворка сфокусировалась на задаче полуавтоматического обучения (semi-supervised), когда размеченных данных очень мало (например, 1% или 10%).

Эффективный пайплайн SimCLR v2:

Этот подход позволяет маленькой модели достичь точности, сопоставимой с обучением на полном наборе данных с учителем .

🚀 Будущее: Видео и язык Julia 1:13:41

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

В завершение беседы Корнблит объясняет свою приверженность языку Julia для исследований :

💬 Цитаты

«В нейросети мы можем записать активность всех нейронов, что крайне сложно в биологическом организме.»

Саймон Корнблит 01:13

«Если вы видите, что от слоя к слою ничего не меняется — это очень плохой знак.»

Саймон Корнблит 05:49

«Использование GAN для аугментации данных — это проблема, потому что у вас все равно не становится больше данных.»

Саймон Корнблит 17:03
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
CKA (Centered Kernel Alignment)
Метод сравнения признаков в слоях нейросетей, инвариантный к перестановкам и масштабированию нейронов.
Contrastive Loss
Функция потерь, заставляющая модель сближать векторы похожих объектов и отдалять векторы непохожих.
Distillation (Дистилляция)
Процесс обучения маленькой модели ('ученика') на основе предсказаний большой обученной модели ('учителя').
Multiple Dispatch
Особенность языка Julia, позволяющая выбирать реализацию функции в зависимости от типов всех её аргументов.
📊 Цифры
🗓 Хронология
  1. 2017 Саймон Корнблит присоединяется к команде Google Brain.
  2. 2018 Начало активного развития методов самообучения в компьютерном зрении.
  3. 2020 Публикация работ по SimCLR и CKA.
⚖️ Другая сторона
Искусственный интеллект Саймон Корнблит SimCLR GoogleAI Centered Kernel Alignment Contrastive Learning