Самообучаемое обучение
Материал из MachineLearning.
Самообучаемое обучение (self-supervised learning, CSSL) — это парадигма машинного обучения, в рамках которой модель обучается различать схожие и различные объекты без использования внешней разметки. В отличие от обучения с учителем, контрастивные методы формируют сигнал учителя на основе структуры самих данных: они сближают представления аугментированных версий одного и того же объекта (положительные пары) и отдаляют представления разных объектов (отрицательные пары) [1][1].
Преимущество контрастивного подхода заключается в способности извлекать дискриминативные признаки из огромных массивов неразмеченных данных. Это делает его основой для построения универсальных моделей в компьютерном зрении, NLP и других областях, где размеченные данные являются дефицитным ресурсом [1][1].
Терминология и базовые понятия
- Якорь (anchor): Исходный объект
, от которого строится положительная пара.
- Положительная пара (positive pair): Два семантически схожих объекта: например, две случайные аугментации одного изображения
и
или два соседних кадра в видео [1].
- Отрицательная пара (negative pair): Объекты, которые не должны быть близки в пространстве представлений. Обычно это любые два разных объекта из батча или очереди [1][1].
- Энкодер (encoder): Нейросеть
, отображающая входной сигнал
в вектор представления (эмбеддинг)
.
- Проекционная головка (projection head): Дополнительный MLP (обычно однослойный или двухслойный)
, который отображает представление
в пространство, где вычисляется контрастивная функция потерь
. Во многих работах проекционная головка используется только во время обучения и отбрасывается на этапе оценки [1].
- Температурный параметр (
): Скалярный гиперпараметр, контролирующий "резкость" распределения сходств в функции потерь. Малые значения
заставляют модель сильнее наказывать близость к отрицательным примерам [1][1].
Исторический контекст
Контрастивное обучение берёт начало в методе triplet loss, предложенном для метрического обучения (Schroff et al., 2015), где модель обучалась на триплетах (якорь, положительный пример, отрицательный пример). Однако ранние подходы требовали сложной стратегии семплирования триплетов и были нестабильны.
Прорыв произошёл с переходом к сравнению внутри батча (in-batch negatives), когда все остальные объекты в мини-батче автоматически становятся отрицательными. Ключевые вехи:
- **CPC (Contrastive Predictive Coding)** [1] — применение контрастивного обучения к последовательным данным (аудио, текст, видео) через предсказание будущих скрытых состояний.
- **SimCLR** (Chen et al., 2020) [1][1] — простая и эффективная архитектура, показавшая, что сильные аугментации и большой размер батча являются ключевыми факторами успеха.
- **MoCo** (He et al., 2020) [1][1] — введение механизма очереди и momentum-энкодера, что позволило использовать миллионы отрицательных примеров без увеличения размера батча.
- **BYOL** (Grill et al., 2020) [1][1] — отказ от отрицательных примеров: метод использует асимметричную архитектуру (teacher-student) и stop-gradient, чтобы избежать коллапса представлений.
- **SwAV** (Caron et al., 2020) [1][1] — кластеризационный подход, который не требует попарного сравнения всех объектов в батче, что делает его более эффективным.
Сравнение этих методов на наборе данных ImageNet показало, что они способны достигать качества, сравнимого с обучением под наблюдением [1][1]. На медицинских наборах данных (например, ЭКГ) контрастивное обучение также демонстрирует значительный прирост качества по сравнению с обучением с нуля [1].
Математическая постановка
Пусть дан батч из объектов. Для каждого объекта
с помощью случайных аугментаций генерируются два представления:
и
, которые образуют положительную пару. Все остальные
аугментированных объекта в батче считаются отрицательными по отношению к
.
Энкодер отображает аугментированные объекты в представления, а проекционная головка
— в пространство, где вычисляется контрастивная функция потерь.
InfoNCE и NT-Xent
Основой большинства современных контрастивных методов является функция потерь InfoNCE (Noise Contrastive Estimation) [1]. Для пары , являющейся положительной, в батче размера
используется NT-Xent (Normalized Temperature-scaled Cross Entropy) — вариант InfoNCE:
где ,
— косинусное сходство,
— температурный параметр, а
и
— положительный и отрицательный примеры соответственно [1]. Знаменатель суммирует сходство якоря со всеми остальными примерами в батче, кроме себя.
Теоретическая интерпретация. InfoNCE минимизирует дивергенцию Кульбака-Лейблера между истинным апостериорным распределением и моделью, аппроксимирующей это распределение [1]. Можно показать, что асимптотическая форма InfoNCE является оценкой взаимной информации между и его аугментированной версией [1]. Однако недавние работы [1] показывают, что стандартная InfoNCE не учитывает корреляции между объектами в непрерывных данных (временные ряды, видео), и предлагают модификации, адаптированные для зависимых данных.
Связь с взаимной информацией
В пределе бесконечного числа отрицательных примеров InfoNCE минимизирует расхождение Кульбака-Лейблера между истинной апостериорной вероятностью и моделью
. Это приводит к максимизации взаимной информации
между представлениями
и
[1].
Ключевые алгоритмы
SimCLR
SimCLR (Simple Framework for Contrastive Learning) [1] использует максимально простую архитектуру: 1. Для каждого изображения случайным образом генерируются две аугментации (например, обрезание, изменение цвета). 2. Обе аугментации пропускаются через общий энкодер (обычно ResNet) и проекционную головку (MLP). 3. Вычисляется NT-Xent loss между всеми парами в батче. 4. Ключевые особенности: большой батч (до 8192), сильные аугментации данных, нормализация представлений.
SimCLR показал, что качество представлений растёт с увеличением размера батча и числа шагов обучения [1].
MoCo (Momentum Contrast)
MoCo решает проблему ограниченного размера батча, используя динамическую очередь отрицательных примеров [1]. Архитектура состоит из:
- Энкодер запроса (
), который кодирует текущий объект.
- Энкодер ключа (
), который кодирует объекты в очереди. Этот энкодер обновляется с помощью экспоненциального скользящего среднего (EMA) от энкодера запроса:
где — коэффициент импульса (обычно 0.999).
Очередь хранит представления последних объектов (например, 65536), что позволяет использовать большое количество отрицательных примеров без увеличения размера батча [1]. MoCo v3 представляет собой модернизацию с использованием трансформерных энкодеров.
BYOL
BYOL (Bootstrap Your Own Latent) [1] отказывается от отрицательных примеров, что радикально отличает его от контрастивных методов. Он использует две сети:
- Online сеть (ученик) с параметрами
.
- Target сеть (учитель) с параметрами
, обновляемыми через EMA:
.
Цель — предсказать представление учителя для аугментированной версии того же изображения. При этом градиенты останавливаются на сети учителя (stop-gradient), что предотвращает коллапс представлений. BYOL достигает качества, сравнимого с SimCLR, но без отрицательных примеров, что упрощает обучение [1]. Эмпирические исследования показывают, что BYOL особенно эффективен для задач, требующих тонкой временной гранулярности (например, AVA) [1].
SwAV
SwAV (Swapping Assignments between Views) [1] объединяет контрастивное обучение с кластеризацией. Вместо попарного сравнения представлений, SwAV сравнивает кластерные назначения двух аугментированных версий одного изображения. Это позволяет избежать больших матриц попарного сходства и делает метод более масштабируемым. SwAV использует механизм swapped prediction — предсказание кластерного кода одной аугментации на основе другой.
Компоненты
Аугментации
Выбор аугментаций критически важен для контрастивного обучения [1][1]. Для изображений стандартными являются случайное обрезание и изменение размера, цветовые искажения (яркость, контраст, насыщенность), повороты и гауссово размытие. Для видео добавляются временные аугментации (например, замедление, перестановка кадров) [1].
Исследования показывают [1], что:
- Для MoCo наиболее важны цветовые аугментации.
- Для SimCLR и SwAV — временные аугментации.
- Усиление цветовых аугментаций улучшает переносимость на UCF101, но не на K400.
Stop-gradient
В BYOL и его вариантах (SimSiam) используется операция stop-gradient, которая предотвращает обновление весов учителя. Это является ключевым механизмом, предотвращающим коллапс (вырождение) представлений, когда все объекты отображаются в одну точку [1].
Momentum encoder
Используется в MoCo и BYOL для создания стабильной цели. Параметры momentum-энкодера обновляются медленно (через EMA), что обеспечивает согласованность представлений во времени и служит дополнительной регуляризацией [1].
Очередь (Queue)
Ключевой компонент MoCo, позволяющий хранить представления из предыдущих батчей. Это делает возможным использование сотен тысяч отрицательных примеров без увеличения размера батча. Очередь обновляется по принципу FIFO (first in, first out) [1].
Сравнение с генеративными методами
Генеративные методы (GAN, VAE, авторегрессионные модели) стремятся восстановить распределение данных , обучаясь генерировать объекты, неотличимые от реальных [1]. Они позволяют синтезировать новые данные, но часто требуют сложной настройки и страдают от нестабильности обучения (особенно GAN).
Контрастивные методы, напротив, являются дискриминативными: они не генерируют данные, а только учат различать объекты [1][1]. Это делает их более стабильными и эффективными для задач, где важны представления для последующей классификации, детекции или поиска [1]. Современные гибридные подходы пытаются объединить преимущества обеих парадигм [1].
Выбор отрицательных пар
Стратегия формирования отрицательных пар является одним из ключевых различий между методами [1][1].
- In-batch negatives (SimCLR): Все остальные объекты в текущем батче считаются отрицательными. Эффективно при больших размерах батча [1].
- Memory bank / Queue (MoCo): Отрицательные примеры хранятся в динамической очереди, что позволяет использовать их больше и разнообразнее.
- Нет отрицательных примеров (BYOL): Используется асимметричная архитектура и stop-gradient.
- Кластерные назначения (SwAV): Отрицательные примеры определяются через сравнение кластерных кодов.
Эмпирические исследования на видео-данных [1] показывают, что метод с отрицательными примерами (MoCo) лучше работает для задач с длинной временной зависимостью (Charades), в то время как метод без отрицательных примеров (BYOL) лучше для задач с более тонкой временной структурой (AVA). Это указывает на то, что выбор стратегии зависит от природы downstream-задачи.
Оценка качества
Качество представлений оценивается с помощью downstream-задач:
- Линейное тестирование (Linear Probing): Поверх замороженного энкодера обучается линейный классификатор. Это стандартный протокол, измеряющий качество представлений "как есть" [1][1].
- Тонкая настройка (Fine-tuning): Энкодер дообучается на целевой задаче. Позволяет адаптировать представления, но не даёт чистую оценку изначального качества [1].
- k-NN: Использование метода k-ближайших соседей в пространстве представлений.
Например, на наборе данных ImageNet линейный классификатор поверх представлений, обученных MoCo, достигает точности 69.0%, что лишь на 5.7% ниже, чем у полностью обученной под наблюдением модели [1]. На датасетах ЭКГ контрастивные методы дают прирост в среднем на 5-10% по метрике F1 по сравнению с обучением с нуля [1].
Применения
- Компьютерное зрение: Классификация изображений, детекция объектов, сегментация, поиск изображений [1][1].
- Видеоаналитика: Распознавание действий, обнаружение событий [1].
- Медицинская диагностика: Классификация заболеваний по рентгеновским снимкам, ЭКГ, МРТ. Особенно эффективно при ограниченном количестве размеченных данных [1][1].
- Обработка естественного языка: Обучение контекстных эмбеддингов слов (например, в моделях типа BERT используется контрастивный компонент в некоторых вариантах).
- Несбалансированные датасеты: Контрастивное обучение помогает улучшить качество распознавания редких классов [1].
Ограничения и открытые вопросы
1. Чувствительность к аугментациям: Качество сильно зависит от выбора аугментаций, который часто подбирается эмпирически [1][1]. 2. Вычислительная сложность: Требуют больших батчей (SimCLR) или очередей (MoCo), что предъявляет высокие требования к памяти и времени обучения [1]. 3. Проблема коллапса: Без специальных техник (stop-gradient, momentum encoder) модель может выродиться [1]. 4. Теоретическое обоснование: Несмотря на связь с максимизацией взаимной информации, эта связь неполна и не объясняет всех эмпирических успехов [1][1]. 5. Зависимости в данных: Стандартная InfoNCE не учитывает семантические корреляции между объектами в непрерывных данных, что требует специальных модификаций [1]. 6. Интерпретируемость: Как и для большинства глубоких нейросетей, интерпретация выученных признаков остаётся сложной [1].
Практические рекомендации
1. Выбор метода: Начинайте с SimCLR для простоты, если есть достаточно вычислительных ресурсов (большие батчи). Для ограниченных ресурсов используйте MoCo или BYOL [1].
2. Аугментации: Для изображений обязательно включайте случайное обрезание и цветовые искажения. Для видео — временные аугментации [1].
3. Размер батча и очередь: Для SimCLR используйте максимально возможный батч. Для MoCo настройте размер очереди (K) не менее 4096 [1].
4. Температура (): Оптимальное значение обычно лежит в диапазоне 0.07–0.1 [1].
5. Проекционная головка: Используйте двухслойный MLP. При переходе к downstream-задачам головку отбрасывайте [1].
6. Оценка: Всегда проводите линейное тестирование и, если возможно, тонкую настройку для полной оценки [1].
7. Для несбалансированных данных: Рассмотрите стратегии динамического семплирования или hard negative mining [1].
См. также
- Самообучаемое обучение
- Автоэнкодер
- Трансферное обучение
- Обучение представлений
- SimCLR
- BYOL
- Информационная бутстреп-оценка
- Несбалансированные выборки
Примечания
Литература
- Jaiswal, A., Babu, A. R., Zadeh, M. Z., Banerjee, D., & Makedon, F. (2020). A Survey on Contrastive Self-supervised Learning. arXiv:2011.00362.
- Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020). A Simple Framework for Contrastive Learning of Visual Representations. ICML. (SimCLR)
- He, K., Fan, H., Wu, Y., Xie, S., & Girshick, R. (2020). Momentum Contrast for Unsupervised Visual Representation Learning. CVPR. (MoCo)
- Grill, J. B., et al. (2020). Bootstrap Your Own Latent. NeurIPS. (BYOL)
- Caron, M., et al. (2020). Unsupervised Learning of Visual Features by Contrasting Cluster Assignments. NeurIPS. (SwAV)
- Oord, A. v. d., Li, Y., & Vinyals, O. (2018). Representation Learning with Contrastive Predictive Coding. arXiv:1807.03748. (CPC, InfoNCE)
- Марусов А. Э., Зайцев А. А. (2025). Теоретически обоснованные контрастивные методы самообучения для непрерывных зависимых данных. Доклады РАН, 527, 192–205.
- Roy, S., Jadhav, R., & Meena, T. (2025). Contrastive learning strategies for better image classification with imbalanced datasets. Neurocomputing.
- "A critical analysis of self-supervision for video." (2021). arXiv:2104.14558. (Сравнение SimCLR, MoCo, BYOL, SwAV на видео)
- "Comparison results based on transfer learning on ECG datasets." (2025). Nature Scientific Reports.

