SimCLR

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''Gemini''' и проверена участником ~~~~}} '''SimCLR''' (A Simple Framework for Contrastive ...)
 
(1 промежуточная версия не показана)
Строка 1: Строка 1:
{{well|Статья написана с использованием LLM '''Gemini''' и проверена участником [[Участник:Kirill Bazhutov|Kirill Bazhutov]] 20:47, 5 июля 2026 (MSD)}}
{{well|Статья написана с использованием LLM '''Gemini''' и проверена участником [[Участник:Kirill Bazhutov|Kirill Bazhutov]] 20:47, 5 июля 2026 (MSD)}}
-
'''SimCLR''' (A Simple Framework for Contrastive Learning of Visual Representations) — метод самоконтролируемого обучения (Self-supervised learning, SSL) для задач [[Компьютерное зрение|компьютерного зрения]], предложенный исследователями Google Research в 2020 году. В отличие от ряда других подходов того времени (например, [[Momentum Contrast|MoCo]]), SimCLR не использует банки памяти или очереди, а опирается на большие мини-пакеты, сильные аугментации данных и специально подобранную контрастивную [[Функция потерь|функцию потерь]].
+
'''SimCLR''' (A Simple Framework for Contrastive Learning of Visual Representations) — метод самоконтролируемого обучения (Self-supervised learning, SSL) для задач [[Компьютерное зрение|компьютерного зрения]], предложенный исследователями Google Research в 2020 году. В отличие от ряда других подходов того времени (например, [[MoCo|MoCo]]), SimCLR не использует банки памяти или очереди, а опирается на большие мини-пакеты, сильные аугментации данных и специально подобранную контрастивную [[Функция потерь|функцию потерь]].
== Архитектура метода ==
== Архитектура метода ==

Текущая версия

Статья написана с использованием LLM Gemini и проверена участником Kirill Bazhutov 20:47, 5 июля 2026 (MSD)


SimCLR (A Simple Framework for Contrastive Learning of Visual Representations) — метод самоконтролируемого обучения (Self-supervised learning, SSL) для задач компьютерного зрения, предложенный исследователями Google Research в 2020 году. В отличие от ряда других подходов того времени (например, MoCo), SimCLR не использует банки памяти или очереди, а опирается на большие мини-пакеты, сильные аугментации данных и специально подобранную контрастивную функцию потерь.

Содержание

Архитектура метода

Фреймворк SimCLR обучается на основе парадигмы контрастивного обучения (задачи различения экземпляров) и состоит из четырёх основных компонентов:

  1. Модуль стохастической аугментации данных: Каждое изображение x из мини-пакета подвергается двум случайным преобразованиям, в результате чего получаются два аугментированных вида x_i и x_j, образующих положительную пару. Авторы экспериментально показали, что критически важной для успеха SimCLR является композиция случайного вырезания с изменением размера (random crop and resize) и сильного цветового искажения (color jitter).
  2. Базовый энкодер (Base Encoder) f(\cdot): Нейронная сеть (обычно ResNet), извлекающая векторные представления из аугментированных изображений. На выходе получается вектор h_i = f(x_i), который является выходом слоя глобального усредняющего пулинга (global average pooling). Именно вектор h_i используется в дальнейшем для решения целевых задач (downstream tasks).
  3. Проекционный слой (Projection Head) g(\cdot): Нелинейный многослойный персептрон (MLP) с одним скрытым слоем и активацией ReLU, отображающий представление h_i в пространство меньшей размерности: z_i = g(h_i) = W^{(2)}\sigma(W^{(1)}h_i). Применение контрастивной функции потерь к z_i, а не к h_i, позволяет улучшить качество представлений h_i для последующих задач, поскольку часть инвариантностей, навязываемых контрастивной функцией потерь, переносится в пространство z_i.
  4. Контрастивная функция потерь NT-Xent: Вариант контрастивной функции потерь семейства InfoNCE, адаптированный для обучения внутри одного батча.

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

Для выборки из N изображений генерируется 2N аугментированных видов. Для каждого вида x_i существует ровно один парный ему вид x_j (положительная пара), полученный из того же исходного изображения. Остальные 2N - 2 видов в мини-пакете рассматриваются как отрицательные примеры.

В качестве меры сходства используется косинусное сходство:

\text{sim}(u, v) = \frac{u^T v}{\|u\| \|v\|}

Функция потерь NT-Xent (Normalized Temperature-scaled Cross Entropy) для положительной пары (i, j) определяется как:

\ell_{i,j} = -\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)}

где:

  • \mathbb{1}_{[k \neq i]} \in \{0, 1\} — функция-индикатор, равная единице при k \neq i и нулю в противном случае.
  • \tau — гиперпараметр температуры, контролирующий «жёсткость» распределения.

Итоговая функция потерь вычисляется по всем положительным парам в мини-пакете (как (i, j), так и (j, i)).

Вычислительные аспекты и оптимизация

Поскольку SimCLR не использует очереди отрицательных примеров (как MoCo), качество контрастивного обучения напрямую зависит от количества отрицательных примеров в знаменателе NT-Xent. Из-за этого метод существенно выигрывает от больших размеров мини-пакета (batch size) — от 256 до 8192 изображений.

Для устойчивого обучения с очень большими батчами авторы использовали оптимизатор LARS (Layer-wise Adaptive Rate Scaling), который адаптирует скорость обучения индивидуально для каждого слоя в зависимости от нормы его весов и градиентов, позволяя распределять вычисления на десятки TPU без разрушения сходимости.

Дальнейшее развитие: SimCLR v2

В 2020 году авторы представили SimCLR v2, который развил идеи базовой модели с упором на обучение при малой доле размеченных данных (semi-supervised learning). Основные нововведения:

  • Использование более глубоких и широких базовых энкодеров (ResNet-152 с селективным механизмом каналов).
  • Углубление проекционного слоя (MLP) до 3 и более слоёв, причем для целевых задач предлагалось использовать выход первого слоя MLP, а не только базового энкодера.
  • Интеграция механизма дистилляции знаний, где большая сеть сначала предобучается контрастивно, затем дообучается на малой доле размеченных данных, после чего её предсказания используются для дистилляции знаний в меньшую сеть на неразмеченных данных.

См. также

Литература

  • Oord A. v. d., Li Y., Vinyals O. Representation learning with contrastive predictive coding // arXiv preprint arXiv:1807.03748. — 2018.
  • Chen T., Kornblith S., Norouzi M., Hinton G. A Simple Framework for Contrastive Learning of Visual Representations // ICML. — 2020. — С. 1597–1607.
  • Chen T., Kornblith S., Swersky K., Norouzi M., Hinton G. Big Self-Supervised Models are Strong Semi-Supervised Learners // NeurIPS. — 2020. — С. 22243–22255.
  • You Y., Gitman I., Ginsburg B. Large Batch Training of Convolutional Networks // arXiv preprint arXiv:1708.03888. — 2017.
Личные инструменты