Рассмотрение идей, представленных в документе SimCLR

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

SimCLR был представлен в статье «Простая структура для контрастного обучения визуальным представлениям» Чена и др. из Google Research в 2020 году. Идеи, изложенные в этой статье, относительно просты и интуитивно понятны, но есть также новая функция потерь, которая является ключом к достижению высокой производительности для самоконтролируемого предварительного обучения. Я постарался сделать статью простой, чтобы даже читатели с небольшими предварительными знаниями могли ее прочитать. Без дальнейших церемоний, давайте погрузимся!

Предварительное условие: Предварительное обучение компьютерному зрению с самостоятельным наблюдением.

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

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

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

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

Изучение сходства изображений с SimCLR

Ключевым вкладом статьи является использование дополнений данных. SimCLR создает пары изображений, чтобы изучить их сходство. Если бы мы ввели одно и то же изображение дважды, не было бы эффекта обучения. Таким образом, каждая пара изображений создается путем применения к изображению дополнений или преобразований.

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

Затем эти пары передаются в сверточную нейронную сеть для создания представления признаков для каждого из изображений. В статье авторы решили использовать для своих экспериментов популярную архитектуру ResNet. Пары изображений всегда загружаются в модель пакетами. Особое внимание уделяется размеру пакета, который авторы варьируют от 256 до 8192. К этому пакету применяются аугментации данных, что приводит к удвоению размера пакета, то есть от 512 до 16382 входных изображений.

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

Как только вычисление MLP завершено, результат сохраняется в качестве входных данных для функции потерь. Целью обучения SimCLR является максимальное соответствие между различными дополнениями одного и того же изображения. Это означает, что модель пыталась минимизировать расстояние между изображениями, содержащими один и тот же объект, и максимально увеличить расстояние между изображениями, которые содержат совершенно разные объекты. Этот механизм также называется контрастным обучением.

Одним из основных вкладов статьи SimCLR является формулировка потеря NT-Xent. NT-Xent означает нормализованную кросс-энтропийную потерю в температурном масштабе. Эта новая функция потерь обладает особенно желательным свойством: различные примеры эффективно взвешиваются, что позволяет модели гораздо эффективнее учиться на векторных представлениях, которые далеко друг от друга даже хотя их происхождение - один и тот же образ. Эти примеры, которые модель воспринимает как сильно отличающиеся друг от друга, называются категорически отрицательными.

Эта потеря эффективно обеспечивает притяжение похожих изображений, т. Е. Подобные изображения учатся наносить на карту ближе друг к другу.

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

Как только сеть полностью обучена, проекционная головка MLP отбрасывается, и для оценки используется только сверточная нейронная сеть. В своей статье авторы выполнили разные оценки:

Во-первых, они измеряют производительность SimCLR как линейного классификатора в наборе данных ImageNet. Их результаты показывают, что SimCLR выполняет все другие методы с самоконтролем.

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

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

Завершение

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

Если вас интересуют более подробные сведения о методе, представленном в статье, не стесняйтесь, напишите мне сообщение в Твиттере, моя учетная запись связана с моим профилем на Medium.

Надеюсь, вам понравилось это бумажное объяснение. Если у вас есть какие-либо комментарии к статье или вы видите какие-либо ошибки, не стесняйтесь оставлять комментарии.

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

Использованная литература:

[1] Реализация SimCLR на GitHub: https://github.com/google-research/simclr

[2] Чен, Тинг и др. Простая структура для контрастного обучения визуальным представлениям. Международная конференция по машинному обучению. ПМЛР, 2020. https://arxiv.org/pdf/2002.05709.pdf