Открыть сервис

Контрастное обучение

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

Принцип работы

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

Функция потерь

Наиболее распространённой функцией потерь в контрастном обучении является NT-Xent (Normalized Temperature-scaled Cross-Entropy Loss), также известная как InfoNCE. Она вычисляется для каждого положительного примера в мини-батче и штрафует модель за то, что она не отличает его от всех остальных (отрицательных) примеров в батче. Формула в общем виде:

\[ L_i = -\log \frac{\exp(\text{sim}(z_i, z_j) / \tau)}{\sum_{k=1}^{2N} \mathbb{1}_{[k \neq i]} \exp(\text{sim}(z_i, z_k) / \tau)} \]

где \( z_i \) и \( z_j \) — представления положительной пары, \( \text{sim} \) — косинусное сходство, \( \tau \) — температурный параметр, а знаменатель суммирует сходства со всеми остальными примерами в батче (включая отрицательные).

История развития

Основы контрастного обучения были заложены в работах по обучению с учителем, где использовались контрастные потери для задач распознавания лиц (например, Triplet Loss в архитектуре FaceNet, 2015). Однако прорыв в области самообучения произошёл в 2018–2020 годах.

Ключевые архитектуры

  • SimCLR (Chen et al., 2020) — простая и эффективная архитектура, использующая аугментации (обрезка, цветовое искажение) для создания положительных пар и большой размер батча для получения достаточного количества отрицательных примеров. Показала, что простая нормализация и нелинейный проектор (MLP) значительно улучшают качество представлений.
  • MoCo (Momentum Contrast, He et al., 2019–2020) — вводит очередь из предыдущих представлений и модель с моментумом (медленно обновляемую копию основной сети), что позволяет использовать больше отрицательных примеров без увеличения размера батча. MoCo v3 (2021) упростила архитектуру, отказавшись от очереди.
  • BYOL (Bootstrap Your Own Latent, Grill et al., 2020) — не требует отрицательных примеров. Использует две сети (онлайн и целевая), где онлайн-сеть обучается предсказывать представления целевой сети, а целевая сеть обновляется как экспоненциальное скользящее среднее онлайн-сети. Показала, что контрастное обучение возможно без явного отталкивания от отрицательных примеров.
  • SimSiam (Chen & He, 2021) — упрощает BYOL, полностью отказавшись от моментум-энкодера и очереди, используя только stop-gradient для предотвращения коллапса представлений.

Применение

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

Компьютерное зрение

  • Предобучение визуальных энкодеров: модели, обученные контрастно на миллионах неразмеченных изображений (например, ImageNet без меток), затем дообучаются на небольших размеченных наборах для классификации, детекции объектов или сегментации. Это позволяет достигать качества, сравнимого с обучением с учителем, при использовании лишь 1–10% размеченных данных.
  • Распознавание лиц и объектов: контрастные потери (Triplet Loss, ArcFace) используются для обучения эмбеддингов, устойчивых к вариациям освещения, ракурса и возраста.
  • Медицинская визуализация: обучение на неразмеченных снимках (рентген, МРТ, КТ) для последующего анализа патологий, где разметка требует участия экспертов и крайне ограничена.

Обработка естественного языка (NLP)

  • SimCSE (Gao et al., 2021) — метод контрастного обучения для получения семантических представлений предложений. Положительные пары создаются путём пропуска одного и того же предложения через модель дважды с разными dropout-масками (или с помощью обратного перевода). Показывает значительное улучшение на задачах семантического сходства и поиска.
  • Предобучение языковых моделей: контрастные цели используются в некоторых вариантах BERT (например, ConSERT) для улучшения качества эмбеддингов.

Мультимодальное обучение

  • CLIP (Contrastive Language-Image Pre-training, OpenAI, 2021) — обучается на парах «изображение — текст» из интернета, контрастно сближая представления правильных пар и отталкивая неправильные. Позволяет выполнять zero-shot классификацию изображений по текстовым описаниям и генерацию текста по изображению.
  • ALIGN (Google, 2021) — аналогичный подход, использующий шумные пары (изображение и альтернативный текст, например, из alt-тегов), что позволяет обучаться на ещё более масштабных данных.

Рекомендательные системы

Контрастное обучение применяется для улучшения качества рекомендаций, особенно в условиях холодного старта и разреженных данных. Положительные пары формируются из взаимодействий пользователя с товаром (например, клик и покупка), а отрицательные — из случайных товаров. Примеры: SGL (Self-supervised Graph Learning) для графовых рекомендательных систем.

Преимущества и недостатки

Преимущества

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

Недостатки

  • Чувствительность к аугментациям: выбор стратегии аугментации (например, какие преобразования применять к изображениям) критически важен и может сильно влиять на результат. Неудачный выбор может привести к коллапсу представлений (все объекты отображаются в одну точку).
  • Зависимость от размера батча: многие методы (SimCLR) требуют больших батчей (тысячи примеров) для получения достаточного количества отрицательных примеров, что увеличивает требования к памяти и вычислительным ресурсам.
  • Сложность с отрицательными примерами: в некоторых задачах (например, в рекомендательных системах) трудно корректно определить, какие примеры действительно являются отрицательными (пользователь мог не кликнуть на товар не потому, что он ему не нравится, а потому, что он его не видел).
  • Проблема коллапса: при неправильной настройке модель может сойтись к тривиальному решению, где все представления одинаковы (например, константа). Методы вроде BYOL и SimSiam решают эту проблему с помощью stop-gradient, но требуют тщательной настройки.

Интересные факты

  • Контрастное обучение лежит в основе многих современных моделей, которые используются в промышленности, включая CLIP (OpenAI) и DALL-E (OpenAI). В России аналогичные разработки ведутся, например, в «Сбере» (модель Kandinsky) и «Яндексе» (модель YandexART), однако конкретные детали архитектур и методов обучения часто не раскрываются.
  • В 2021 году контрастное обучение было признано одной из самых перспективных технологий в области ИИ по версии MIT Technology Review.
  • Метод SimCLR показал, что простая комбинация случайной обрезки и цветового искажения изображений даёт лучшие результаты, чем более сложные аугментации, такие как вращение или размытие.

Критика

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

Источники

  • Chen T., Kornblith S., Norouzi M., Hinton G. A Simple Framework for Contrastive Learning of Visual Representations (SimCLR). — ICML, 2020.
  • He K., Fan H., Wu Y., Xie S., Girshick R. Momentum Contrast for Unsupervised Visual Representation Learning (MoCo). — CVPR, 2020.
  • Grill J. B., Strub F., Altché F., et al. Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning (BYOL). — NeurIPS, 2020.
  • Chen X., He K. Exploring Simple Siamese Representation Learning (SimSiam). — CVPR, 2021.
  • Gao T., Yao X., Chen D. SimCSE: Simple Contrastive Learning of Sentence Embeddings. — EMNLP, 2021.
  • Radford A., Kim J. W., Hallacy C., et al. Learning Transferable Visual Models From Natural Language Supervision (CLIP). — ICML, 2021.
  • Jia C., Yang Y., Xia Y., et al. Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision (ALIGN). — ICML, 2021.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →