Контрастивное обучение
Материал из MachineLearning.
| | Статья написана с использованием LLM DeepSeek-V3 и проверена участником Д. Николаев 15:38, 10 июля 2026 (MSD) |
|
Контрастивное обучение (англ. contrastive learning) — раздел машинного обучения, а именно — подход к обучению представлений (англ. representation learning), в основе которого лежит сравнение пар объектов с целью выявления их сходства или различия. В процессе обучения модель стремится сблизить в пространстве признаков представления похожих объектов (положительные пары) и отдалить представления непохожих объектов (отрицательные пары). Такой подход позволяет извлекать содержательные признаки из данных без использования размеченных меток, что делает контрастивное обучение одним из ключевых методов самообучаемого обучения (англ. self-supervised learning).
История
Идея обучения путём сравнения объектов восходит к началу 1990-х годов. В 1992 году Сюзанна Беккер и Джеффри Хинтон предложили метод обучения инвариантных представлений путём максимизации взаимной информации между различными представлениями одной и той же сцены. В 1993 году Джейн Бромли с соавторами представили архитектуру сиамской нейронной сети (англ. Siamese neural network) — две идентичные сети с общими весами, предназначенные для метрического обучения.
Фундамент современного контрастивного обучения был заложен в 2005 году, когда Сумат Чопра, Рауль Хадселл и Ян Лекун предложили контрастивную парную функцию потерь (англ. contrastive pair loss) для дискриминативных моделей, решающих задачи распознавания и верификации. В 2012 году Михаэль Гутманн и Аапо Хювяринен представили оценку шумоконтрастирования (NCE, англ. Noise Contrastive Estimation) — метод оценки ненормированных статистических моделей путём сравнения распределения данных с распределением шума. Этот подход оказал значительное влияние на развитие контрастивного обучения в обработке естественного языка (NLP).
Важным этапом стало введение триплетной функции потерь (англ. triplet loss), которая использует тройки объектов: якорь (англ. anchor), положительный (англ. positive) и отрицательный (англ. negative) примеры. В 2018 году методы CPC (англ. Contrastive Predictive Coding) и DIM (англ. Deep InfoMax) установили связь между минимизацией контрастивной функции потерь и максимизацией нижней границы взаимной информации.
Современный этап развития контрастивного обучения связан с появлением таких архитектур, как SimCLR (2020) и MoCo (Моментум Контраст, англ. Momentum Contrast), которые продемонстрировали выдающиеся результаты в задачах компьютерного зрения, достигая качества, сопоставимого с обучением с учителем.
Математическая постановка
Пусть задано множество объектов . Цель контрастивного обучения — найти отображение
, которое переводит каждый объект
в векторное представление
в
-мерном евклидовом пространстве (латентном пространстве). Требуется, чтобы расстояние между представлениями похожих объектов было малым, а между представлениями непохожих — большим.
Для каждого обучающего примера (якоря, англ. anchor) выбирается положительный пример
(объект, семантически близкий к
) и один или несколько отрицательных примеров
(объекты, семантически далёкие от
). В самообучаемом обучении положительные примеры часто получают путём аугментации исходного объекта (например, случайное обрезание или изменение цвета изображения).
Обучение модели осуществляется путём минимизации контрастивной функции потерь
, которая штрафует модель за большое расстояние до положительных примеров и малое расстояние до отрицательных.
Контрастивная парная функция потерь
Классическая контрастивная парная функция потерь, предложенная Чопрой и соавторами, для пары объектов с бинарной меткой
(где
означает сходство, а
— различие) определяется следующим образом:
где ,
,
— евклидова норма, а
— гиперпараметр (поля), задающий минимальное желаемое расстояние между представлениями различных объектов.
Триплетная функция потерь
Триплетная функция потерь оперирует тройкой объектов: якорь , положительный пример
и отрицательный пример
. Функция потерь имеет вид:
где ,
,
, а
— гиперпараметр, задающий минимальное превышение расстояния до отрицательного примера над расстоянием до положительного.
ИнфоNCE (InfoNCE)
В современных методах, таких как SimCLR и MoCo, широко используется функция потерь InfoNCE (англ. Information Noise-Contrastive Estimation), основанная на оценке шумоконтрастирования. Для якоря , одного положительного примера
и множества
отрицательных примеров
функция потерь определяется как:
где — функция косинусного сходства
, а
— гиперпараметр температуры, регулирующий остроту распределения.
ИнфоNCE имеет интерпретацию как кросс-энтропия для задачи классификации: для каждого якоря модель должна правильно идентифицировать положительный пример среди множества отрицательных. Минимизация ИнфоNCE эквивалентна максимизации нижней границы взаимной информации между представлениями объекта и его аугментированной версией.
Архитектуры и системные аспекты
Сиамские сети
Сиамская нейронная сеть (англ. Siamese neural network) — архитектура, состоящая из двух (или более) идентичных подсетей с общими весами, которые обрабатывают пару (или тройку) входных объектов и выдают их представления. Обучение сиамских сетей с использованием контрастивных функций потерь позволяет выучить метрику сходства в латентном пространстве.
SimCLR
SimCLR (англ. Simple Framework for Contrastive Learning of Visual Representations) — фреймворк для контрастивного обучения визуальных представлений, предложенный в 2020 году. Ключевые особенности SimCLR:
- Использование композиций аугментаций данных для генерации положительных пар.
- Введение нелинейного проекционного модуля (англ. projection head) между представлением и функцией потерь.
- Использование больших размеров мини-пакетов (batch size) для обеспечения достаточного количества отрицательных примеров.
SimCLR продемонстрировал, что линейный классификатор, обученный на представлениях, полученных с помощью самообучаемого контрастивного обучения, достигает точности 76,5% на ImageNet, что сравнимо с полностью контролируемым ResNet-50.
MoCo
MoCo (Моментум Контраст, англ. Momentum Contrast) — фреймворк, предложенный Хэ Кайминем и соавторами. MoCo интерпретирует контрастивное обучение как задачу поиска в словаре (англ. dictionary look-up) и использует:
- Очередь (англ. queue) для хранения представлений отрицательных примеров из предыдущих мини-пакетов, что позволяет использовать большое количество отрицательных примеров без увеличения размера текущего мини-пакета.
- Скользящую среднюю (англ. moving-averaged) экспоненциально затухающую копию кодировщика (кодировщик импульса, англ. momentum encoder) для обеспечения согласованности представлений.
Системные аспекты масштабирования
Контрастивное обучение предъявляет высокие требования к вычислительным ресурсам и памяти. Эффективность методов сильно зависит от количества отрицательных примеров, что мотивирует использование больших мини-пакетов. Это создаёт следующие системные вызовы:
- Память: вычисление контрастивной функции потерь для больших мини-пакетов требует хранения матрицы сходства размера
, где
— размер мини-пакета, что может приводить к переполнению памяти на одном GPU.
- Распределённые вычисления: для обработки больших мини-пакетов используются распределённые стратегии, такие как разбиение вычислений на блоки (англ. tile-based computation).
- Федеративное обучение: контрастивное обучение может быть объединено с федеративным обучением (FCL, англ. Federated Contrastive Learning) для обучения на распределённых данных с сохранением конфиденциальности.
Применения
Контрастивное обучение нашло широкое применение в различных областях машинного обучения:
- Компьютерное зрение: классификация изображений, обнаружение объектов, сегментация, видеоаналитика. Модели на основе контрастивного обучения, такие как SimCLR и MoCo, устанавливают рекорды в задачах самообучаемого обучения.
- Обработка естественного языка: обучение векторных представлений слов (word embeddings), обучение языковых моделей, информационный поиск.
- Мультимодальное обучение: модели типа CLIP (англ. Contrastive Language–Image Pre-training) выравнивают представления изображений и текста, обучаясь на парах (изображение, подпись).
- Рекомендательные системы: обучение представлений пользователей и товаров.
- Медицинская диагностика: анализ медицинских изображений, обработка электронных медицинских записей.
Связь с другими концепциями
Контрастивное обучение тесно связано с:
- Метрическое обучение (англ. metric learning) — контрастивные функции потерь являются одним из основных инструментов метрического обучения.
- Оценка шумоконтрастирования (NCE) — статистический метод, лежащий в основе многих контрастивных функций потерь.
- Максимизация взаимной информации — теоретическая основа, объясняющая успех контрастивного обучения.
Современные направления исследований
Активные области исследований в контрастивном обучении включают:
- Разработку теоретических основ, объясняющих успех контрастивного обучения.
- Создание эффективных стратегий выбора положительных и отрицательных примеров.
- Разработку методов для работы с несбалансированными и зашумленными данными.
- Интеграцию контрастивного обучения с другими парадигмами, включая обучение с подкреплением и Федеративное обучение.
См. также
- Самостоятельное обучение
- Метрическое обучение
- Сиамская нейронная сеть
- Обучение представлений
- Аугментация данных
- Федеративное обучение
Литература
- Jaiswal, A., Babu, A. R., Zadeh, M. Z., Banerjee, D., & Makedon, F. A comprehensive survey on contrastive learning // Neurocomputing. — 2024. — Т. 610. — С. 128645.
- Le-Khac, P. H., Healy, G., & Smeaton, A. F. Contrastive representation learning: A framework and review // IEEE Access. — 2020. — С. 1-28.
- Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. A simple framework for contrastive learning of visual representations // Proceedings of the 37th International Conference on Machine Learning (ICML). — 2020. — С. 1597-1607.
- He, K., Fan, H., Wu, Y., Xie, S., & Girshick, R. Momentum contrast for unsupervised visual representation learning // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). — 2020. — С. 9729-9738.
- Chopra, S., Hadsell, R., & LeCun, Y. Learning a similarity metric discriminatively, with application to face verification // Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR). — 2005. — Т. 1. — С. 539-546.
- Gutmann, M., & Hyvärinen, A. Noise-contrastive estimation of unnormalized statistical models, with applications to natural image statistics // Journal of Machine Learning Research. — 2012. — Т. 13. — С. 307-361.
- Schroff, F., Kalenichenko, D., & Philbin, J. FaceNet: A unified embedding for face recognition and clustering // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2015. — С. 815-823.
- van den Oord, A., Li, Y., & Vinyals, O. Representation learning with contrastive predictive coding // arXiv:1807.03748 [cs.LG]. — 2018.
- Becker, S., & Hinton, G. E. Self-organizing neural network that discovers surfaces in random-dot stereograms // Nature. — 1992. — Т. 355. — № 6356. — С. 161-163.
- Bromley, J., Bentz, J. W., Bottou, L., Guyon, I., LeCun, Y., Moore, C., Säckinger, E., & Shah, R. Signature verification using a "siamese" time delay neural network // International Journal of Pattern Recognition and Artificial Intelligence. — 1993. — Т. 7. — № 4. — С. 669-688.
- Hjelm, R. D., Fedorov, A., Lavoie-Marchildon, S., Grewal, K., Bachman, P., Trischler, A., & Bengio, Y. Learning deep representations by mutual information estimation and maximization // arXiv:1808.06670 [cs.LG]. — 2018.

