Подробный обзор платформы SimCLR и ее важных выводов.

В моем последнем сообщении в блоге мы говорили о цели репрезентативного обучения, в частности, об использовании самоконтролируемого обучения.

Затем мы пришли к идее контрастного обучения, а теперь рассмотрим одну из самых важных статей по самоконтролируемому обучению, которая успешно реализует эту идею, но также имеет ключевые недостатки: Простая структура для контрастного обучения визуальному обучению. Представления (Т. Ченг и др.), или для краткости SimCLR. Бумагу можно найти на Arxiv!

Это их каркас, и если мы посмотрим на него, то сможем распознать почти каждый элемент!

У нас есть исходное изображение x. Теперь мы применяем два разных набора случайных дополнений t и t', чтобы получить два разных представления x~_i и x~_j. . Теперь мы пропускаем их через ту же нейронную сеть, чтобы получить наши скрытые представления и в конечном итоге максимизировать согласие между двумя векторами встраивания.

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

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

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

Возможно, вы уже задавались вопросом, почему существуют две функции: f(x) и g(x). f(x) — это нейронная сеть, которая создает скрытые представления, которые мы хотим использовать для наших последующих задач. Однако применение нашей контрастной потери к этим представлениям напрямую, просто эмпирически, не дает наилучших результатов. Вместо этого авторы вводят вторую проекционную сеть, которая затем возвращает вложения, к которым мы фактически применяем наши потери.

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

Почему размер партии так важен? Ну, потому что все отрицательные образцы, используемые в нашей контрастной потере по дизайну, поставляются с нашей партией!

Если мы посмотрим на точность Top-1 во время обучения для разных размеров пакетов, мы ясно увидим, что большие размеры пакетов имеют решающее значение, что имеет смысл, верно? Чем больше у нас отрицательных выборок, тем лучше модель может оценить, где НЕ размещать вложения в пространстве представления.

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

Но ладно! До сих пор мы знали, что нам нужна дополнительная проекционная головка и очень большой размер партии. А как насчет чувствительности к аугментациям?

Что ж, поскольку мы говорим здесь о Google с практически бесконечными ресурсами, они просто пошли дальше и выполнили полный поиск по сетке по всем комбинациям двух дополнений, которые можно применить. И мы можем ясно видеть, что некоторые аугментации повышают точность значительно больше, чем другие. Мы видим, что обрезка части изображения и изменение его размера в целом кажется очень важным. Но кадрирование в сочетании с искажением цвета — лучшая комбинация. Обрезка, в частности, действительно эффективна, поскольку она дает самый сильный обучающий сигнал, когда дело доходит до понимания контекста изображения!

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

Хорошо, это действительно мощно, но почему добавление изменения цвета обоих представлений так важно?

Часто случается, что с разными кадрами одного изображения интенсивность пикселей по всем каналам (RGB) имеет очень похожее распределение.
Если мы посмотрим на соответствующие гистограммы интенсивности пикселей по 4 кадрам одного и того же изображения, мы видим, что они почти одинаковы! Итак, что происходит, так это то, что модель изучает ярлык! Он в значительной степени учится отображать эти гистограммы как вложения в пространство представления вместо того, чтобы извлекать более важные функции, включающие сложные формы.

Если мы теперь применим случайные цветовые искажения к кропам или разным видам, мы увидим, что гистограммы совершенно разные.

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

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

Полученные результаты

При сравнении SimCLR с различными подходами, использующими архитектуру ResNet50 и контролируемое или репрезентативное обучение только в качестве предварительного обучения, мы ясно видим, что SimCLR превосходит их все. Особенно большие модели, то есть модели, в которых ширина или количество нейронов в слое модели увеличены в 2 или 4 раза соответственно.

В частности, в этой задаче трансферного обучения преимущество использования предварительного обучения с самоконтролем вместо обучения с учителем начинает становиться очевидным. Мало того, что у вас есть доступ к гораздо большему количеству данных, поскольку нам не нужны никакие метки, но и сигнал обучения также сильнее. Я расскажу об этом подробнее в следующем видео! После предварительной подготовки всех параметров модели, т. е. новой прогнозирующей головки и предварительно обученного экстрактора признаков, модель настраивается на 1% и 10% набора данных ImageNet соответственно. Модель под наблюдением также полностью обучена, но только на 1 и 10% данных. Все базовые модели, особенно полностью контролируемая обученная модель, работают хуже, чем SimCLR.

Это также справедливо при сравнении производительности на тестах линейной оценки, т. Е. Имея фиксированные веса экстрактора признаков и только точную настройку головки линейного прогнозирования. Даже при сравнении разных архитектур разного размера 94 млн. Параметр Модель SimCLR превосходит более крупные модели!

Но, как мы видим, SimCLR по-прежнему не достигает производительности полностью обученной модели с учителем.

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

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

Серманет и др. представила обучение с контрастированием по времени (TC), в котором используются видеокадры для установления культовой потери триплетов. При таком подходе положительные пары получаются из соседних кадров, а отрицательные — из удаленных.
Тем не менее, зависимость от отрицательных выборок вызывает немало вопросов и проблем.

Так что, короче, негативные примеры раздражают! Вопрос в следующем: Действительно ли они нам нужны?

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

Если вы хотите увидеть эту новую идею, которая, кстати, является совершенно странной и чистой черной магией, то вам следует прочитать следующий пост! Эта идея на самом деле является источником всех новейших современных моделей с самоконтролем, таких как DINO и очень новый I-JEPA!

Так что, если пост еще не опубликован, не забудьте подписаться на меня, чтобы не пропустить загрузку!

P.S.: Если вам нравится этот контент и визуальные эффекты, вы также можете заглянуть на мой канал YouTube, где я публикую похожий контент, но с более аккуратной анимацией!

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