Контрастное обучение
Контрастное обучение — это парадигма машинного обучения, относящаяся к методам самообучения (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 →