BYOL — Альтернатива контрастному самообучению с учителем

BYOL - Alternative to contrastive self-supervised learning

Анализ статьи – Bootstrap Your Own Latent: Новый подход к самообучению

В сегодняшнем анализе статьи мы внимательно рассмотрим статью BYOL (Bootstrap Your Own Latent). Она предлагает альтернативный подход к самообучению с использованием контрастивных техник обучения представления, устраняя необходимость в большом корпусе негативных примеров и огромных размерах пакетов. Кроме того, это веховая статья на пути к пониманию современных моделей основы, таких как семейство DINO, включающее DINOv2 и GroundingDINO.

В то время как контрастивные фреймворки самообучения до сих пор кажутся достаточно интуитивными, BYOL может быть запутанным и пугающим на первый взгляд. Поэтому это отличная статья для анализа вместе. Давайте разберем ее и выявим ее основные идеи!

Источник

Статья: Bootstrap your own latent: Новый подход к самообучению

Код: https://github.com/deepmind/deepmind-research/tree/master/byol

Впервые опубликовано: 13 июня 2020 г.

Авторы: Жан-Бастьен Гриль, Флориан Струб, Флоран Альтше, Корентин Таллек, Пьер Ришемон, Елена Бухатская, Карл Дёрш, Бернардо Авила Пирес, Даниэль Гуо, Мохаммад Азар, Билал Пиот, Корай Кавукчуоглу, Реми Муньос, Михал Валько

Категория: обучение на основе сходства, обучение представлению, компьютерное зрение, основные модели

Структура

  1. Контекст и предыстория
  2. Утвержденные вклады
  3. Метод
  4. Эксперименты
  5. Выводы
  6. Дополнительные чтения и ресурсы

Контекст и предыстория

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

Многие успешные методы, такие как CLIP, GLIP, MoCo или SimCLR, используют контрастное обучение. В контрастном обучении максимизируется оценка для сопоставления пар данных, в то время как оценка для несовпадающих данных минимизируется. Этот процесс сильно зависит от размера пакета и количества предоставленных отрицательных примеров во время обучения. Эта зависимость делает сбор данных и обучение более сложными.

BYOL стремится:

  1. Избавиться от необходимости в отрицательных примерах и большом размере пакета, как это требуется для контрастного обучения.
  2. Уменьшить зависимость от доменно-специфических аугментаций для применения в других областях, таких как язык или изображения.

Среди множества ссылок, указанных в статье, BYOL выделяет свои сходства с mean teacher, моментум-кодером и предсказаниями bootstrap-подпространств (PBL).

Утвержденные вклады (по мнению авторов)

  1. Введение BYOL (Bootstrap Your Own Latent) – метода самообучения представлений, не требующего отрицательных пар (как в контрастном обучении)
  2. Показано, что представления BYOL превосходят современные (на момент публикации статьи)
  3. Показано, что BYOL более устойчив к размеру пакета и используемым аугментациям изображений по сравнению с контрастными аналогами

Метод

Теперь, когда мы увидели, что BYOL утверждает, что решает, давайте попробуем понять, как это достигается. Сначала давайте рассмотрим представленную архитектуру на рис. 1

Рис. 1: Архитектура фреймворка. Источник изображения + примечания автора.

BYOL состоит из двух сетей: онлайн-сети и целевой сети. Онлайн-сеть состоит из трех подмодулей: кодировщика, проектора и предсказателя. Целевая сеть состоит из двух подмодулей: кодировщика и проектора. Кодировщик и предсказатель обеих сетей имеют одну и ту же архитектуру, они отличаются только своими весами модели. Во время обучения онлайн-сеть оптимизируется, а целевая сеть обновляет свои веса путем экспоненциального скользящего среднего между собой и онлайн-сетью.

Кодировщик — Кодировщик состоит из сверточной нейронной сети ResNet. Он преобразует входное изображение в латентное представление.

Проектор — Проектирует латентное пространство из 4096-мерного пространства в 256-мерное пространство с помощью многослойной перцептронной сети (MLP). Предположительно, проектор не является критическим для работы фреймворка, но размерность 256 просто удобна и часто используется в области обучения представлений.

Предсказатель — Направлен на предсказание проектированного латентного пространства целевой сети на основе проектированного латентного пространства онлайн-сети. Важно избежать коллапса представления.

Во время обучения на входное изображение применяются два разных и случайно выбранных аугментации, чтобы создать два разных представления этого изображения. Одно представление подается на онлайн-модель, а другое представление — на целевую модель. Среди этих аугментаций могут быть изменение размера, отражение, обрезка, искажение цвета, преобразование в оттенки серого, гауссово размытие и насыщенность. Цель обучения — минимизировать квадратичное расстояние L2 между выходами обеих сетей. После обучения только кодировщик онлайн-сети остается в качестве конечной модели!

Вот и всё. Просто, верно? 😜 Хм, после прочтения статьи у меня лицо было скорее таким: 😵 Хотя, если разложить фреймворк на его ключевые компоненты, то его обработку можно относительно легко понять, но это заняло у меня некоторое время.

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

Разъяснение математики

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

Я сосредоточусь на тех уравнениях, которые, по моему мнению, важны для понимания того, что происходит. Давайте начнем с анализа их в точно обратном порядке, потому что почему бы и нет? 😜

Сначала поговорим о обновлении параметров моделей во время обучения. Напомним, что у нас есть две модели: онлайн-модель и целевая модель. Онлайн-модель обновляется путем оптимизации функции потерь с использованием оптимизатора LARS.

Уравнение 1: Обновление весов онлайн-сети. Источник + примечания автора

Уравнение выше просто говорит: «обновите параметры модели theta, вызвав функцию оптимизатора для текущих параметров, градиентов этих параметров относительно функции потерь и скорости обучения eta».

С другой стороны, целевая модель не обновляется с помощью оптимизации, а путем копирования весов из онлайн-модели и применения экспоненциального скользящего среднего к скопированным обновленным весам и текущим весам целевой сети:

Уравнение 2: Обновление весов целевой сети. Источник + примечания автора

Уравнение выше просто говорит: «обновите параметр модели xi, рассчитав экспоненциальное скользящее среднее с коэффициентом затухания tau текущих весов xi и обновленных весов онлайн-модели». Tau следует косинусному расписанию, чтобы уменьшить вклад онлайн-модели в процессе обучения.

Теперь давайте рассмотрим функцию потерь, используемую для обновления онлайн-модели. Она определяется как сумма двух других функций потерь. Эти потери имеют одно и то же уравнение, как мы увидим позже, но вычисляются на двух разных входах сети. Напомним из рис. 1, что изображение x генерирует два различных представления (v и v’) путем применения различных аугментаций. Одно представление подается на вход онлайн-модели, а другое – на вход целевой модели. Во время обучения перед вычислением потери производятся два прямых прохода, при этом вход для сетей меняется местами. Изображение, подаваемое на вход онлайн-модели, подается на вход целевой модели и наоборот.

Уравнение 3: Функция потерь BYOL. Источник + аннотации автора

Потеря для отдельных прямых проходов представляет собой квадратичное расстояние L2 нормализованных выходов онлайн-модели и целевой модели. Давайте разберем соответствующее уравнение из статьи:

Уравнение 4: Функция потерь для отдельных прямых проходов. Источник + аннотации автора

Примечание: В статье говорится, что это среднеквадратичная ошибка, что на самом деле не верно. Расстояние L2 не делится на количество его элементов. Я думаю, они перепутали его с вычислением среднего по всем пакетам.

Понимание BYOL

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

Каким образом BYOL учится представлениям? — Модель стимулируется генерировать одно и то же латентное представление двух входов, которые представляют два разных вида одного и того же объекта/сцены. Кошка все равно остается кошкой, независимо от того, размыто ли изображение, в оттенках серого или перевернуто. Фактически, я думаю, что здесь ключевыми являются серьезные аугментации. Они в основном говорят модели “Смотри, это разные вариации одной и той же вещи, поэтому игнорируй эти вариации и считай их равными при извлечении представлений объекта/сцены!”.

Почему представления не схлопываются? — Напомним, что ранее мы сказали, что BYOL относится к категории обучения похожести. Не будет ли самым простым способом для сети просто сопоставить все с одной точкой в латентном пространстве, чтобы достичь наивысшей похожести? Фактически, это одна из основных сложностей в обучении похожести и называется “схлопывающимися решениями”. Подходы к контрастному обучению решают эту проблему, предоставляя много отрицательных примеров для данного сопоставления, чтобы сопоставить похожие признаки ближе друг к другу в латентном пространстве, а непохожие признаки – дальше друг от друга. BYOL решает эту проблему, вводя асимметрию между онлайн- и целевой сетью с их подмодулем предсказателя и применяя правило обновления параметров целевой сети на основе экспоненциального скользящего среднего, чтобы обеспечить близость к оптимальности предсказателя на протяжении обучения.

Эксперименты

Авторы BYOL представили эксперименты и абляции, чтобы продемонстрировать эффективность своего метода.

Абляция по размеру пакета

Из методов контрастного обучения представлений (например, CLIP и GLIP) мы знаем, что существует большая зависимость от размера пакета при обучении. Например, CLIP был обучен на пакете размером 32 768, что сумасшедше, учитывая, что это модель многомодального языка и изображения.

Авторы утверждают, что поскольку BYOL не требует отрицательных примеров, он не так чувствителен к меньшим размерам пакета, что подтверждается следующим экспериментом, показанным на рис. 2.

Рис. 2: Влияние размера пакета. Источник изображения + аннотации автора.

К сожалению, это все еще может быть слишком большим для моего личного ноутбука 😅

Абляция на устойчивость аугментации изображений

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

Авторы утверждают, что BYOL более устойчив к выбору аугментации изображений из-за того, как обновляются онлайн- и целевые сети. Хотя эта гипотеза подтверждается экспериментом, все же существует сильная зависимость и, следовательно, падение производительности.

Рис. 3: Устойчивость к аугментации изображений. Источник изображения + аннотации от автора.

Линейная оценка на ImageNet

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

Линейная оценка BYOL была проведена на ImageNet и сравнивалась с множеством других моделей, превосходя предыдущий современный подход на тот момент.

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

Таблица 1: Линейная оценка на ImageNet. Источник

Полу-надзорная перенастройка для классификации

Еще одна очень типичная экспериментальная настройка в области обучения представлений – это производительность модели при перенастройке на конкретную задачу и набор данных.

Таблица 2 показывает метрики при дообучении BYOL на задаче классификации с использованием 1% или 10% от всего обучающего набора данных ImageNet.

Таблица 2: Полу-надзорное обучение на ImageNet. Источник

Перенос на другие задачи компьютерного зрения

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

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

Таблица 3: Перенос на другие задачи компьютерного зрения. Источник

Заключение

BYOL представляет альтернативный подход к обучению представлений без присутствия отрицательных обучающих примеров, как это требуется для контрастного обучения. Чтобы избежать коллапса решений, целевая сеть обновляется с помощью EMA от онлайн-сети, и на верхнем уровне онлайн-сети создается дополнительный подмодуль предсказаний.

Дальнейшее чтение и ресурсы

Если вы дошли до этого момента: поздравляю🎉 и спасибо😉! Поскольку вам, кажется, очень интересна эта тема, вот еще некоторые дополнительные ресурсы:

Вот список статей, которые основаны на BYOL:

  1. DINO: Возникающие свойства в самообучающихся видео-трансформерах
  2. DINOv2: Обучение устойчивым визуальным характеристикам без надзора
  3. Grounding DINO: Совмещение DINO с землевым предварительным обучением для обнаружения объектов с открытым множеством

Вот две мои статьи о методах контрастного обучения CLIP и GLIP для самообучающегося представления:

Модель основы CLIP

Резюме статьи — Обучение передаваемым визуальным моделям на основе естественного языка

towardsdatascience.com

GLIP: Введение предварительного обучения языка-изображения для обнаружения объектов

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

towardsdatascience.com