Статьи · arXiv 2002.05709
A Simple Framework for Contrastive Learning of Visual Representations
Опубликовано cs.LGcs.CVstat.ML arXivPDF
Кратко в трёх строках
- 🎯 Предыдущие контрастивные self-supervised методы полагались на сложные архитектурные решения, банки памяти или специализированные сети агрегации контекста.
- 🔧 SimCLR максимизирует согласие в скрытом пространстве между различно аугментированными версиями изображений, используя стандартные ResNet, нелинейную проекционную голову, большие мини-батчи для негативных примеров и лосс NT-Xent.
- 📈 Линейный классификатор поверх SimCLR ResNet-50 (4×) достигает точности top-1 в 76.5% на ImageNet, а дообучение всего на 1% меток обеспечивает точность top-5 в 85.8%.
Аннотация
В этой статье представлен SimCLR: простой фреймворк для контрастивного обучения визуальных представлений. Мы упрощаем предложенные ранее алгоритмы контрастивного самообучения (self-supervised learning), не требуя специализированных архитектур или банка памяти. Чтобы понять, за счет чего контрастивные задачи предсказания позволяют выучивать полезные представления, мы систематически исследуем основные компоненты нашего фреймворка. Мы показываем, что (1) композиция аугментаций данных играет решающую роль в формировании эффективных задач предсказания, (2) введение обучаемого нелинейного преобразования между представлением и функцией потерь контрастивного обучения существенно повышает качество выученных представлений, и (3) контрастивное обучение выигрывает от использования больших размеров батча и большего числа шагов обучения по сравнению с обучением с учителем. Объединив эти находки, мы смогли значительно превзойти предыдущие методы самообучения и полуавтоматического обучения (semi-supervised learning) на ImageNet. Линейный классификатор, обученный на представлениях, полученных с помощью SimCLR, достигает точности top-1 в 76.5%, что на 7% (относительно) превосходит предыдущий SOTA-результат и соответствует качеству модели ResNet-50, обученной с учителем. При дообучении всего на 1% размеченных данных мы достигли точности top-5 в 85.8%, превзойдя AlexNet при использовании в 100 раз меньшего количества меток.
Оригинальная аннотация (англ.)
This paper presents SimCLR: a simple framework for contrastive learning of visual representations. We simplify recently proposed contrastive self-supervised learning algorithms without requiring specialized architectures or a memory bank. In order to understand what enables the contrastive prediction tasks to learn useful representations, we systematically study the major components of our framework. We show that (1) composition of data augmentations plays a critical role in defining effective predictive tasks, (2) introducing a learnable nonlinear transformation between the representation and the contrastive loss substantially improves the quality of the learned representations, and (3) contrastive learning benefits from larger batch sizes and more training steps compared to supervised learning. By combining these findings, we are able to considerably outperform previous methods for self-supervised and semi-supervised learning on ImageNet. A linear classifier trained on self-supervised representations learned by SimCLR achieves 76.5% top-1 accuracy, which is a 7% relative improvement over previous state-of-the-art, matching the performance of a supervised ResNet-50. When fine-tuned on only 1% of the labels, we achieve 85.8% top-5 accuracy, outperforming AlexNet with 100X fewer labels.
Разбор статьи
Проблема и мотивация
Обучение визуальных представлений без участия человека обычно опирается на генеративное моделирование или эвристические вспомогательные задачи (pretext tasks), такие как решение пазлов (jigsaw puzzles), предсказание поворота или колоризация. Методы контрастивного обучения достигали более высоких результатов, но часто требовали применения специализированных архитектур для агрегации контекста (как PixelCNN в CPC), ограниченных рецептивных полей или явных банков памяти (memory banks, как в MoCo или InstDisc) для хранения отрицательных примеров. SimCLR решает эту проблему, демонстрируя, что простой фреймворк со стандартными энкодерами, формированием негативных пар внутри батча и продуманным дизайном аугментаций способен превзойти существующие методы без архитектурных ухищрений.
Ключевые идеи
- Композиция аугментаций определяет задачу предсказания: Вместо изменения архитектур сетей для навязывания контекстных предсказаний в пространстве, стохастическая композиция аугментаций данных — особенно случайное кадрирование (random cropping) в паре с цветовым искажением (color distortion) — предотвращает появление обходных путей (shortcuts, например сопоставление гистограмм цветов) и заставляет сеть извлекать семантические признаки.
- Более сильные аугментации полезны для контрастивного обучения: Такие преобразования, как агрессивный color jittering, снижающие качество при обучении с учителем, значительно улучшают контрастивное самообучение.
- Нелинейная проекционная голова: Добавление небольшого MLP между представлением энкодера и контрастивной функцией потерь повышает качество представлений. Поскольку обучается быть инвариантным к трансформациям, удаление после обучения сохраняет в чувствительную к трансформациям информацию, которая полезна для прикладных (downstream) задач.
- Масштабирование числа негативных примеров за счет больших батчей и долгого обучения: Вместо явного банка памяти SimCLR использует большие размеры батчей (до 8192), оптимизируемые с помощью LARS, обеспечивая тысячи негативных пар на каждую позитивную прямо внутри батча.
- Глобальная батч-нормализация (Global Batch Normalization): Чтобы модель не использовала статистику локальной батч-нормализации в рамках одного устройства как лазейку для поиска позитивных пар, среднее и дисперсия синхронизируются по всем распределенным ускорителям.
Метод
Для сэмплированного мини-батча из изображений каждый пример трансформируется двумя различными стохастическими аугментациями , образуя позитивную пару среди аугментированных сэмплов.
- Базовый энкодер: , извлекающий представления после слоя average pooling.
- Проекционная голова: , отображающая представления в 128-мерное скрытое пространство с помощью одного скрытого слоя и активации ReLU .
- Функция потерь NT-Xent: Косинусное сходство между нормализованными векторами определяется как . Для позитивной пары лосс вычисляется следующим образом: где — температурный гиперпараметр, а равна тогда и только тогда, когда . Общий лосс усредняется по всем парам в батче.
После обучения проекционная голова отбрасывается, а вектор используется для последующей линейной классификации или дообучения (fine-tuning).
Результаты
- Линейная оценка (Linear Evaluation) на ImageNet: SimCLR со стандартной архитектурой ResNet-50 достигает точности top-1 в 69.3% (соответствуя предыдущим self-supervised моделям или превосходя их). Масштабирование до ResNet-50 () дает 76.5% top-1, что сравнимо с полностью обученной с учителем стандартной ResNet-50.
- Полуавтоматическое дообучение (Semi-supervised Fine-tuning): При дообучении всего на 1% меток ImageNet ResNet-50 () достигает точности top-5 в 85.8% (и 63.0% top-1), превосходя AlexNet, обученный на 100% меток.
- Трансферное обучение (Transfer Learning): На 12 датасетах классификации естественных изображений дообученная модель SimCLR ResNet-50 () сравнивается по качеству или опережает supervised-бейзлайн на 10 из 12 датасетов.
- Абляция проекционной головы: Использование нелинейной проекционной головы превосходит линейную проекцию на +3%, а конфигурацию без проекции — более чем на 10% в задаче линейной оценки на ImageNet.
Ограничения и открытые вопросы
- Вычислительная сложность: Для достижения наилучших результатов требуются очень большие размеры мини-батчей (например, 4096 или 8192) и длительное обучение (до 1000 эпох), что требует крупных кластеров ускорителей (32–128 ядер TPU).
- Разрыв в архитектурах при переносе: Хотя ResNet-50 () догоняет или превосходит supervised-бейзлайны в трансферных тестах, стандартная ResNet-50 все еще отстает от обучения с учителем во всех задачах линейной оценки.
- Компромисс сохранения информации: Механизм, благодаря которому проекционная голова удерживает специфичную для преобразований информацию в , при этом обеспечивая инвариантность в , описан скорее эмпирически и требует более глубокого теоретического обоснования.
Ключевые термины
- SimCLR
- Простой фреймворк для контрастивного обучения визуальных представлений с использованием аугментаций данных, базового энкодера, нелинейной проекционной головы и нормализованной масштабированной по температуре кросс-энтропии.
- NT-Xent
- Normalized Temperature-scaled Cross Entropy loss — функция потерь кросс-энтропии с температурным масштабированием, применяемая к косинусному сходству позитивных и негативных пар внутри батча.
- Projection Head
- Небольшой многослойный перцептрон с одним скрытым слоем, применяемый после базового энкодера на этапе предобучения и отбрасываемый перед оценкой на прикладных задачах.
- Global BN
- Батч-нормализация, в которой среднее и дисперсия вычисляются по всем распределенным вычислительным устройствам, предотвращая утечку информации о схожести примеров через локальную статистику.
- Linear Evaluation Protocol
- Стандартный протокол оценки в self-supervised обучении, при котором поверх замороженного экстрактора признаков обучается линейный классификатор для измерения качества представлений.
- LARS
- Оптимизатор Layer-wise Adaptive Rate Scaling, используемый для стабилизации процесса оптимизации при масштабировании до очень больших размеров батча.
Вопросы
Почему добавление color jittering обязательно при использовании random cropping?
Случайные кропы одного и того же изображения обычно имеют практически одинаковые цветовые гистограммы. Без искажения цвета модель легко научится связывать позитивные пары исключительно по профилю распределения цвета, вместо того чтобы извлекать высокоуровневые семантические признаки.
Почему представление до проекционной головы ($h$) оказывается лучше, чем после нее ($z$)?
Контрастивный лосс обучает выходной вектор быть полностью инвариантным к примененным аугментациям. Нелинейная проекционная голова берет на себя потерю информации о специфике трансформаций (такой как цвет или ориентация), сохраняя в векторе более богатые и обобщаемые признаки.
Как SimCLR обходится без использования банка памяти?
SimCLR применяет очень большие размеры мини-батчей (от 256 до 8192). Батч размера дает негативных примеров для каждой позитивной пары непосредственно внутри самого батча, устраняя потребность в отдельном банке памяти или momentum-энкодере.
Зачем SimCLR требуется глобальная батч-нормализация (Global BN)?
Поскольку оба варианта аугментации одного изображения обычно попадают на одно и то же устройство, стандартная локальная батч-нормализация создает утечку информации: сеть распознает позитивные пары по схожести локальных статистик устройства. Синхронизация статистик BN по всем вычислительным узлам полностью устраняет эту лазейку.
Обзор на этой странице написан ИИ по тексту статьи и может содержать ошибки. Подробности смотрите в самой статье.