Обсуждение участника:Imil Baltaniazov

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
-
{{MediaWiki:NewUserMessage|Imil Baltaniazov}}
+
```wikitext
-
 
+
-
== Байесовская оптимизация ==
+
-
 
+
{{well|Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Imil Baltaniazov 15:00, 10 июля 2026 (MSD)}}
{{well|Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Imil Baltaniazov 15:00, 10 июля 2026 (MSD)}}
-
'''''Байесовская оптимизация''''' ({{lang-en|Bayesian optimization}}) — метод глобальной оптимизации чёрных ящиков, основанный на построении вероятностной [[суррогатная модель|суррогатной модели]] целевой функции и последовательном выборе точек для оценки на основе так называемой [[функция приобретения|функции приобретения]]. Метод предназначен для задач, в которых целевая функция дорого стоит вычислительно или ресурсно, не имеет аналитического выражения и недоступна для дифференцирования.
+
'''Контрастивное обучение''' (''contrastive learning'') — семейство методов [[Самообучение|самообучения]] (self-supervised learning), в которых модель обучается строить представления (embeddings) объектов исходя не из явных меток класса, а из отношений сходства между парами или наборами объектов. Основной принцип формулируется коротко: похожие объекты должны иметь близкие представления, непохожие — далёкие. Эта идея легла в основу современных методов предобучения в [[Компьютерное зрение|компьютерном зрении]], [[Обработка естественного языка|обработке естественного языка]] и мультимодальном обучении, включая модели типа [[CLIP]].
== Введение ==
== Введение ==
-
Многие задачи в науке об анализе данных и инженерии сводятся к оптимизации функции, вычисление значения которой сопряжено с высокими затратами: запуск дорогостоящего эксперимента, длительное обучение [[нейронная сеть|нейронной сети]], симуляция физического процесса. В таких условиях классические методы оптимизации, требующие большого числа обращений к функции или знания её градиента, оказываются малопригодны. Байесовская оптимизация предлагает альтернативный подход: вместо того чтобы исследовать пространство параметров вслепую или по фиксированной сетке, метод на каждом шаге использует всю накопленную информацию о поведении функции, чтобы принять обоснованное решение о том, где провести следующее, потенциально самое информативное измерение.
+
Идея обучения по парам «похоже/непохоже» восходит к работам по метрическому обучению начала 1990-х годов, где сиамские нейронные сети применялись для верификации подписей (Bromley et al., 1993). Формальный вид современного контрастивного лосса был предложен в работе Hadsell, Chopra и LeCun (2006) «Dimensionality Reduction by Learning an Invariant Mapping», где для задачи снижения размерности использовалась функция потерь, притягивающая пары точек с одинаковой меткой окрестности и отталкивающая пары с разными метками — с использованием отступа (margin), аналогично более поздним триплет-лоссам.
-
Наибольшую известность байесовская оптимизация получила как инструмент настройки [[гиперпараметр|гиперпараметров]] моделей машинного обучения, однако область её применения существенно шире: автоматизированное проектирование экспериментов, робототехника, разработка лекарственных препаратов, оптимизация промышленных процессов и архитектур нейронных сетей. Общей чертой всех этих задач является то, что каждое обращение к целевой функции — это дорогостоящее действие, число которых должно быть минимизировано.
+
Второй важный этап — работа ван ден Оорда и соавторов (Oord et al., 2018) «Representation Learning with Contrastive Predictive Coding», введшая функцию потерь InfoNCE и связавшая контрастивное обучение с оценкой взаимной информации между связанными фрагментами данных (например, соседними отрезками аудиосигнала). Это дало теоретическое обоснование того, почему контрастивные цели вообще позволяют извлекать полезные представления без разметки.
-
В основе метода лежит идея, восходящая к работам Й. Мокуса (J. Mockus) конца 1970-х годов и получившая широкое развитие с появлением алгоритма Efficient Global Optimization (EGO) в конце 1990-х. В последнее десятилетие байесовская оптимизация стала стандартным инструментом автоматического машинного обучения ([[AutoML]]) и лежит в основе многих популярных библиотек подбора гиперпараметров.
+
Третий, решающий для практики этап — статья Chen et al. (2020) «A Simple Framework for Contrastive Learning of Visual Representations» (SimCLR), показавшая, что при достаточно сильных аугментациях, большом размере батча и добавлении небольшой проекционной головки простая контрастивная цель на изображениях позволяет получить представления, по качеству приближающиеся к представлениям, полученным при обучении с учителем на ImageNet. После этой работы контрастивное обучение стало одним из основных подходов к предобучению без разметки, породив линейку методов — MoCo, BYOL, SimSiam — и в дальнейшем — мультимодальные модели вроде CLIP.
== Постановка задачи ==
== Постановка задачи ==
-
Рассматривается задача поиска глобального максимума функции <tex>f</tex>, заданной на компактном множестве <tex>\mathcal{X} \subseteq \mathbb{R}^d</tex>:
+
Формально задача ставится так: имеется набор немаркированных данных <tex>X = \{x_1, \dots, x_N\}</tex> (изображения, тексты, графы, аудиозаписи). Требуется найти функцию-энкодер <tex>f_\theta: X \to \mathbb{R}^d</tex>, отображающую объект в вектор фиксированной размерности так, чтобы это представление было полезно для широкого круга последующих задач (downstream tasks) — классификации, кластеризации, поиска ближайших соседей, дообучения (fine-tuning).
-
:: <tex>x^{*} = \arg\max_{x \in \mathcal{X}} f(x)</tex>
+
В отличие от обучения с учителем, где обучающий сигнал задаётся парами <tex>(x, y)</tex> с истинной меткой <tex>y</tex>, в контрастивном обучении сигнал формируется искусственно, из самой структуры данных: каждому объекту сопоставляется один или несколько «позитивных» связанных объектов (например, другая аугментация той же картинки) и множество «негативных» — не связанных с ним объектов. Обучение сводится к минимизации функции потерь, зависящей только от взаимного расположения представлений в пространстве embedding, без обращения к внешней разметке.
-
Без ограничения общности рассматривается задача максимизации; задача минимизации сводится к ней заменой <tex>f</tex> на <tex>-f</tex>. Функция <tex>f</tex> называется '''чёрным ящиком''' ({{lang-en|black box}}), если выполнены следующие условия:
+
Качество полученных представлений принято оценивать протоколом линейной оценки (linear evaluation protocol): веса энкодера замораживаются, поверх представления <tex>h = f_\theta(x)</tex> обучается только линейный классификатор с использованием размеченных данных, и измеряется точность этого классификатора. Такой протокол позволяет сравнивать разные методы предобучения независимо от архитектуры «головы» классификатора.
-
* аналитическое выражение функции неизвестно, доступны только её значения в запрашиваемых точках («оракульный» доступ);
+
== Интуитивная идея ==
-
* градиент <tex>\nabla f</tex> недоступен и не может быть эффективно вычислен;
+
-
* каждое обращение к функции требует значительных затрат времени, вычислительных ресурсов или денег;
+
-
* наблюдения могут быть зашумлены: <tex>y_i = f(x_i) + \varepsilon_i</tex>, где <tex>\varepsilon_i \sim \mathcal{N}(0,\sigma_n^2)</tex>.
+
-
Задача состоит в том, чтобы найти точку, максимально близкую к <tex>x^*</tex>, использовав как можно меньше обращений к <tex>f</tex>. Именно ограниченность бюджета оценок отличает постановку задачи байесовской оптимизации от классических задач непрерывной оптимизации, где число вычислений функции и градиента практически не ограничено.
+
Рассмотрим простой пример. Пусть есть фотография кота. Применим к ней случайный кроп, поворот, изменение цветового баланса — получим другую картинку, которая всё ещё, безусловно, изображает кота. Эти две аугментированные версии одного изображения образуют '''позитивную пару''': сеть должна научиться отображать их в близкие точки пространства представлений, несмотря на то что попиксельно эти изображения могут сильно различаться.
-
=== Сравнение с сеточным и случайным поиском ===
+
Возьмём теперь произвольную другую фотографию из обучающей выборки — например, изображение автомобиля. Пара «кот — автомобиль» образует '''негативную пару''': их представления должны быть далеки друг от друга.
-
Наиболее простые альтернативы байесовской оптимизации при подборе параметров [[сеточный поиск]] ({{lang-en|grid search}}) и [[случайный поиск]] ({{lang-en|random search}}). Их принципиальное отличие в том, что они не используют информацию о ранее полученных значениях функции при выборе следующей точки.
+
Удобная механическая аналогия пружины и резинки в пространстве представлений. Позитивные пары соединены резинкой, которая стягивает их друг к другу; негативные пары соединены пружиной, которая их расталкивает. В равновесии объекты, похожие по смыслу, образуют плотные кластеры, а разнородные объекты расходятся — при этом сети ни разу не сообщалось явно, что перед ней «кот» или «автомобиль»: вся структура выучена из самой геометрии притяжения и отталкивания.
-
{| class="wikitable"
+
Важно, что позитивные пары не обязаны получаться только аугментацией одного изображения. В видео позитивной парой могут быть соседние кадры; в тексте — соседние предложения или фрагменты одного документа; в мультимодальных данных — изображение и подписывающий его текст.
-
|-
+
-
! Критерий !! Сеточный поиск !! Случайный поиск !! Байесовская оптимизация
+
-
|-
+
-
| Использование истории наблюдений || Нет || Нет || Да
+
-
|-
+
-
| Стратегия выбора точек || Равномерная сетка || Случайная || На основе модели
+
-
|-
+
-
| Масштабируемость по размерности || Плохая (экспонента) || Средняя || Хорошая (до ~20)
+
-
|-
+
-
| Учёт неравнозначности параметров || Нет || Нет || Да
+
-
|-
+
-
| Эффективность при малом бюджете || Низкая || Средняя || Высокая
+
-
|-
+
-
| Теоретические гарантии сходимости || Нет || Нет || Да (GP-UCB)
+
-
|-
+
-
| Возможность параллелизации || Да (тривиально) || Да (тривиально) || Ограничена
+
-
|-
+
-
| Сложность реализации и настройки || Низкая || Низкая || Высокая
+
-
|}
+
-
Случайный поиск, как показали Бергстра и Бенжио (Bergstra, Bengio, 2012), как правило превосходит сеточный за счёт того, что не тратит ресурсы на менее значимые измерения пространства. Байесовская оптимизация идёт дальше: она направленно исследует область, руководствуясь текущими представлениями о форме функции, что даёт заметный выигрыш именно при малом бюджете вычислений.
+
== Математическая формализация ==
-
== Интуитивная идея ==
+
Пусть энкодер <tex>f_\theta</tex> отображает объект <tex>x</tex> в представление <tex>h = f_\theta(x)</tex>. Рассмотрим три исторически последовательных формулировки контрастивного лосса.
-
Представим геодезиста, который ищет самую высокую точку неизвестной, покрытой туманом местности. Единственный доступный ему инструмент — дорогостоящее бурение: в произвольной точке можно пробурить скважину и точно узнать высоту рельефа именно в этой точке, но каждое бурение стоит времени и денег, поэтому число скважин строго ограничено.
+
'''Triplet Loss.''' Функция была популяризирована в задачах метрического обучения, в частности в работе FaceNet (Schroff et al., 2015). Для тройки (якорь <tex>a</tex>, позитив <tex>p</tex>, негатив <tex>n</tex>) и функции расстояния <tex>d(u,v) = \|u - v\|_2</tex> лосс задаётся как:
-
После нескольких первых, случайно расположенных скважин геодезист строит приближённую карту местности — не единственную «наиболее вероятную» поверхность, а целое семейство правдоподобных поверхностей, согласующихся с уже полученными измерениями. В точках рядом с уже пробуренными скважинами карта достаточно уверенная — рельеф там хорошо предсказывается. В удалённых, ещё не исследованных областях карта крайне неопределённа: там может скрываться как равнина, так и высочайшая вершина.
+
:: <tex>\mathcal{L}_{triplet}(a,p,n) = \max\bigl(0,\; d(f(a),f(p))^2 - d(f(a),f(n))^2 + \alpha\bigr)</tex>
-
Выбирая место следующей скважины, геодезист балансирует между двумя стратегиями. Он может бурить там, где карта предсказывает наибольшую высоту (эксплуатация уже накопленных знаний), либо там, где неопределённость максимальна и потенциально скрывается сюрприз (исследование). Именно эта комбинация — «бурить там, где, по нашим представлениям, скорее всего находится вершина, с поправкой на то, что неисследованные места могут преподнести неожиданность» и есть суть байесовской оптимизации. Роль карты играет [[суррогатная модель]] (обычно [[гауссовский процесс]]), а роль правила выбора следующей скважины — [[функция приобретения]].
+
где <tex>\alpha</tex> — гиперпараметр отступа (margin). Лосс штрафует ситуацию, когда позитив не отделён от негатива хотя бы на величину <tex>\alpha</tex>; при выполнении неравенства с запасом градиент равен нулю. Существенный практический недостаток триплет-лосса сильная зависимость от стратегии подбора триплетов (triplet mining): случайно выбранные тройки быстро становятся тривиальными (лосс равен нулю), и для эффективного обучения требуется добывать «трудные» негативы.
-
== Компоненты метода ==
+
'''InfoNCE.''' Введена в работе Oord et al. (2018) в рамках метода Contrastive Predictive Coding. В отличие от триплет-лосса, сопоставляет один позитив сразу множеству негативов через softmax:
-
=== Суррогатная модель: гауссовский процесс ===
+
:: <tex>\mathcal{L}_{InfoNCE} = -\,\mathbb{E}\left[\log \frac{\exp\bigl(f(x)^{\top} f(x^{+})/\tau\bigr)}{\displaystyle\sum_{x_i \in \{x^+, x_1,\dots,x_{N-1}\}} \exp\bigl(f(x)^{\top} f(x_i)/\tau\bigr)}\right]</tex>
-
Наиболее распространённой суррогатной моделью в байесовской оптимизации выступает [[гауссовский процесс]] (Gaussian Process, GP) распределение вероятностей на пространстве функций, полностью определяемое функцией среднего <tex>m(x)</tex> и ковариационной функцией (ядром) <tex>k(x,x')</tex>:
+
где <tex>x^+</tex> — позитивный пример, <tex>x_1,\dots,x_{N-1}</tex> негативные примеры, <tex>\tau</tex> — параметр температуры. Авторы показали, что минимизация этого выражения эквивалентна максимизации нижней оценки взаимной информации <tex>I(x; x^+)</tex> между двумя связанными представлениями данных — отсюда название InfoNCE (information noise-contrastive estimation).
-
:: <tex>f(x) \sim \mathcal{GP}\big(m(x),\, k(x,x')\big)</tex>
+
'''NT-Xent (SimCLR).''' В работе Chen et al. (2020) используется нормализованная температурная кросс-энтропия (normalized temperature-scaled cross entropy). Из батча размера <tex>N</tex> с помощью двух независимых случайных аугментаций формируется <tex>2N</tex> представлений; для каждой позитивной пары <tex>(i,j)</tex>, полученной из одного исходного изображения, лосс имеет вид:
-
На практике часто принимают <tex>m(x)=0</tex>, а всю содержательную информацию о гладкости и масштабе изменчивости функции кодируют в ядре. Типичный выбор — квадратично-экспоненциальное (гауссово) ядро
+
:: <tex>\ell_{i,j} = -\log \frac{\exp\bigl(\mathrm{sim}(z_i,z_j)/\tau\bigr)}{\displaystyle\sum_{k=1}^{2N}\mathbb{1}_{[k\neq i]}\,\exp\bigl(\mathrm{sim}(z_i,z_k)/\tau\bigr)}</tex>
-
:: <tex>k(x,x') = \sigma_f^2 \exp\left(-\frac{\|x-x'\|^2}{2\ell^2}\right)</tex>
+
где <tex>\mathrm{sim}(u,v) = \dfrac{u^{\top}v}{\|u\|\,\|v\|}</tex> — косинусное сходство, а <tex>z_i = g(f_\theta(x_i))</tex> — представление после проекционной головки. Итоговый лосс на батч — среднее <tex>\ell_{i,j}</tex> по всем <tex>2N</tex> позитивным парам (в обе стороны). Все остальные <tex>2N-2</tex> представления в батче выступают негативами для пары <tex>(i,j)</tex> — так называемые in-batch negatives.
-
или семейство ядер Матерна, обеспечивающих менее жёсткое предположение о гладкости. Параметры ядра — длина корреляции <tex>\ell</tex>, дисперсия сигнала <tex>\sigma_f^2</tex> и дисперсия шума <tex>\sigma_n^2</tex> — подбираются максимизацией логарифма маргинального правдоподобия:
+
Температура <tex>\tau</tex> играет роль настройки «жёсткости» распределения softmax: малые значения <tex>\tau</tex> сильнее штрафуют близкие негативы (эффект, близкий к hard negative mining), но одновременно делают обучение более чувствительным к шуму и переобучению на конкретных негативах внутри батча.
-
:: <tex>\log p(\mathbf{y}\mid X) = -\frac{1}{2}\mathbf{y}^\top (K+\sigma_n^2 I)^{-1}\mathbf{y} - \frac{1}{2}\log\left|K+\sigma_n^2 I\right| - \frac{t}{2}\log 2\pi</tex>
+
== Архитектурные решения ==
-
Ключевое свойство гауссовского процесса состоит в том, что при условии на уже полученные наблюдения <tex>\mathcal{D}_t = \{(x_i,y_i)\}_{i=1}^{t}</tex> апостериорное распределение значения функции в произвольной точке <tex>x</tex> вновь является гауссовским, с явно выражаемыми параметрами:
+
'''Сиамские сети''' (Siamese networks) — базовая архитектурная схема контрастивного обучения: два (или более) прохода одного и того же энкодера с общими весами <tex>f_\theta</tex> применяются к разным входам (например, к двум аугментациям одного изображения), после чего представления сравниваются функцией расстояния или сходства. Название закрепилось за архитектурой ещё в работах по верификации подписей и лиц 1990–2000-х годов.
-
:: <tex>\mu_t(x) = \mathbf{k}_t(x)^\top \big(K_t + \sigma_n^2 I\big)^{-1} \mathbf{y}_{1:t}</tex>
+
'''Проекционная головка.''' Ключевое наблюдение SimCLR состоит в том, что контрастивный лосс лучше вычислять не непосредственно на представлении <tex>h = f_\theta(x)</tex>, которое затем используется в последующих задачах, а на выходе дополнительной небольшой сети — проекционной головки <tex>g(\cdot)</tex>, обычно двухслойного MLP с нелинейностью ReLU: <tex>z = g(h)</tex>. После предобучения головка <tex>g</tex> отбрасывается, для последующих задач используется <tex>h</tex>. Объяснение эффекта: контрастивная цель заставляет модель отбрасывать информацию, инвариантную относительно применённых аугментаций (например, цвет объекта, если применялось цветовое искажение) — такая информация может быть полезна для последующих задач, но вредна для контрастивной цели. Проекционная головка «принимает удар на себя», сохраняя более общее представление в <tex>h</tex>.
-
:: <tex>\sigma_t^2(x) = k(x,x) - \mathbf{k}_t(x)^\top \big(K_t + \sigma_n^2 I\big)^{-1} \mathbf{k}_t(x)</tex>
+
'''Симметричные и асимметричные архитектуры.''' В симметричной схеме (SimCLR) оба входа проходят через один и тот же энкодер с общими весами, и градиент течёт по обеим ветвям одинаково. В асимметричных схемах ветви различаются: например, в MoCo один энкодер (query encoder) обучается градиентным спуском, а второй (key encoder) обновляется через экспоненциальное скользящее среднее (momentum, EMA) весов первого энкодера и не получает градиента напрямую — это стабилизирует представления негативов, накапливаемых в очереди. В BYOL и SimSiam асимметрия усиливается ещё сильнее: на «онлайн»-ветви добавляется дополнительная сеть-предиктор, а на «целевой» ветви применяется остановка градиента (stop-gradient) — при этом негативные примеры вовсе не требуются.
-
где <tex>\mathbf{k}_t(x) = \big[k(x,x_1),\dots,k(x,x_t)\big]^\top</tex>, <tex>K_t</tex> — матрица Грама с элементами <tex>[K_t]_{ij}=k(x_i,x_j)</tex>, а <tex>\mathbf{y}_{1:t}=[y_1,\dots,y_t]^\top</tex>. Функция <tex>\mu_t(x)</tex> задаёт текущую наилучшую оценку значения функции, а <tex>\sigma_t^2(x)</tex> — меру неопределённости этой оценки, естественным образом убывающую вблизи уже исследованных точек.
+
== Стратегии аугментации данных ==
-
=== Функция приобретения ===
+
Выбор аугментаций определяет, какие инварианты выучит модель, и является одним из решающих факторов качества контрастивного обучения.
-
Апостериорное распределение GP само по себе не указывает, куда направить следующее измерение. Эту роль играет [[функция приобретения]] <tex>a(x)</tex> — скалярная функция, вычисляемая из <tex>\mu_t(x)</tex> и <tex>\sigma_t(x)</tex>, значение которой велико в точках, перспективных для оценки. Следующая точка выбирается как
+
'''Изображения.''' В экспериментах SimCLR показано, что сильнее всего на качество влияет комбинация случайного кропа с масштабированием (random resized crop) и цветовых искажений (color jitter, случайное преобразование яркости, контраста, насыщенности и оттенка). По отдельности ни один из этих видов аугментации не даёт сравнимого эффекта: случайный кроп без изменения цвета позволяет модели решать задачу по одним лишь статистикам цвета, не выучивая содержательных признаков формы и текстуры. Дополнительно применяются размытие по Гауссу, перевод в оттенки серого, горизонтальное отражение; в ряде более поздних методов (BYOL) добавляется соляризация.
-
:: <tex>x_{t+1} = \arg\max_{x \in \mathcal{X}} a(x \mid \mathcal{D}_t)</tex>
+
'''Текст.''' Используются маскирование токенов, обратный перевод (back-translation), синонимическая замена слов, случайные удаление/вставка/перестановка слов (техника EDA), а также кроппинг фрагментов документа. Отдельный интересный приём — метод SimCSE, где две «разные» версии одного и того же предложения получаются простым повторным пропуском через энкодер с включённым dropout: разные случайные маски dropout дают немного разные представления одного и того же текста, которые и образуют позитивную пару.
-
Эта вспомогательная задача оптимизации сама по себе не является дорогостоящей (функция приобретения вычисляется аналитически из GP), поэтому её решают классическими методами — многостартовым L-BFGS, CMA-ES или плотным перебором.
+
'''Графы.''' В графовом контрастивном обучении (например, GraphCL) применяются случайное удаление рёбер и узлов, маскирование атрибутов узлов, сэмплирование подграфов и аугментации на основе диффузии графа или случайных блужданий — каждая операция должна сохранять содержательную структуру графа, не разрушая его смысловую связность.
-
Пусть <tex>f^{+}=\max_i y_i</tex> — наилучшее из наблюдённых значений (инкумбент), а <tex>\Phi</tex> и <tex>\phi</tex> функция распределения и плотность стандартного нормального распределения.
+
Общий принцип: аугментация должна быть достаточно сильной, чтобы задача не решалась тривиальными «короткими путями» (shortcuts), но не настолько сильной, чтобы разрушить семантику, важную для последующих задач. Подбор набора аугментаций во многом эмпирическая, специфичная для модальности процедура.
-
'''Вероятность улучшения''' (Probability of Improvement, PI), предложенная Кушнером (Kushner, 1964):
+
== Проблема коллапса представлений ==
-
:: <tex>\mathrm{PI}(x) = \Phi\!\left(\frac{\mu_t(x) - f^{+} - \xi}{\sigma_t(x)}\right)</tex>
+
'''Коллапс представлений''' (representation collapse) — вырожденное решение, при котором энкодер отображает все входы в одну и ту же (или почти одну и ту же) точку пространства представлений. При таком решении расстояние между любыми позитивными парами тривиально минимально, однако представление не несёт никакой информации об исходных данных и бесполезно для последующих задач. Проблема возникает потому, что цель «сблизить позитивы» сама по себе не имеет механизма, препятствующего вырождению — константное отображение формально идеально решает эту часть задачи.
-
'''Ожидаемое улучшение''' (Expected Improvement, EI), введённое Мокусом и популяризированное в алгоритме EGO (Jones, Schonlau, Welch, 1998):
+
Основные способы борьбы с коллапсом:
-
:: <tex>\mathrm{EI}(x) = \begin{cases} \big(\mu_t(x)-f^{+}-\xi\big)\,\Phi(z) + \sigma_t(x)\,\phi(z), & \sigma_t(x)>0 \\ 0, & \sigma_t(x)=0 \end{cases}</tex>
+
* '''Явные негативные примеры.''' В InfoNCE-подобных лоссах наличие негативов создаёт отталкивающую силу: минимизация лосса требует не просто сближения позитива, а его отличимости от множества негативов через softmax, что делает константное решение невыгодным. Для устойчивой оценки такого softmax требуется достаточно большое число негативов — отсюда потребность SimCLR в больших батчах либо MoCo в очереди (queue) накопленных представлений.
-
где <tex>z = \dfrac{\mu_t(x)-f^{+}-\xi}{\sigma_t(x)}</tex>.
+
* '''Остановка градиента (stop-gradient).''' В BYOL и особенно наглядно в SimSiam показано, что коллапса можно избежать вовсе без негативных примеров: достаточно асимметрии между двумя ветвями сети (дополнительный предиктор на одной ветви) и остановки градиента на другой ветви. Полного теоретического объяснения этому явлению до конца не дано, но эмпирически и по ряду теоретических аргументов (аналогия с EM-алгоритмом попеременной оптимизации) показано, что такая схема устойчиво избегает вырождения.
-
'''Верхняя доверительная граница''' (Upper Confidence Bound, GP-UCB), обоснованная теоретически Шринивасом с соавторами (Srinivas et al., 2010):
+
* '''Нормализация.''' L2-нормализация представлений (проекция на единичную гиперсферу) в сочетании с батч-нормализацией внутри проекционной головки и предиктора эмпирически связана со стабильностью обучения и, по ряду наблюдений, помогает избегать коллапса — хотя более поздние работы (в частности, эксперименты SimSiam) показывают, что одной нормализации без stop-gradient недостаточно.
-
:: <tex>\mathrm{UCB}(x) = \mu_t(x) + \sqrt{\beta_t}\,\sigma_t(x)</tex>
+
* '''Явная регуляризация ковариации.''' Отдельное направление — методы Barlow Twins (Zbontar et al., 2021) и VICReg (Bardes et al., 2022), которые вместо контрастивного или предикторного лосса напрямую штрафуют вырождение: требуют, чтобы дисперсия каждой компоненты представления по батчу была не ниже порога, и одновременно минимизируют корреляцию между разными компонентами вектора представления.
-
Во всех формулах параметр <tex>\xi \geqslant 0</tex> (для PI и EI) или <tex>\beta_t</tex> (для UCB) управляет соотношением исследования и эксплуатации: увеличение параметра смещает предпочтение в сторону точек с высокой неопределённостью. При зашумлённых наблюдениях в качестве инкумбента <tex>f^{+}</tex> корректнее использовать не наилучшее наблюдённое значение <tex>y_i</tex>, а наилучшее значение апостериорного среднего <tex>\mu_t(x_i)</tex>.
+
== Основные методы ==
{| class="wikitable"
{| class="wikitable"
 +
! Метод !! Год !! Нужны негативные примеры !! Momentum-энкодер !! Механизм против коллапса !! Требования к батчу
|-
|-
-
! Функция !! Учитывает !! Склонность !! Параметр !! Теоретические гарантии
+
| SimCLR || 2020 || Да (in-batch) || Нет || Негативные примеры + проекционная головка || Очень большой (2048–8192)
|-
|-
-
| PI || Вероятность превышения максимума || Эксплуатация || <tex>\xi</tex> || Нет
+
| MoCo (v1/v2) || 2019/2020 || Да (очередь) || Да || Негативные примеры из очереди + momentum-энкодер || Умеренный (очередь заменяет большой батч)
|-
|-
-
| EI || Вероятность и величину улучшения || Сбалансирована || <tex>\xi</tex> || Нет
+
| BYOL || 2020 || Нет || Да || Асимметрия «онлайн/цель» + предиктор + stop-gradient || Умеренный
|-
|-
-
| UCB || Среднее + бонус за неопределённость || Исследование || <tex>\beta_t</tex> || Да (сублинейный regret)
+
| SimSiam || 2021 || Нет || Нет || Только предиктор + stop-gradient || Умеренный
|}
|}
-
== Математическая схема ==
+
'''SimCLR''' (Chen et al., 2020) — симметричная сиамская схема с общей энкодер-проекцией на обеих ветвях, использующая NT-Xent-лосс с in-batch негативами; для достижения качественных представлений требует очень больших батчей, поскольку число негативов ограничено размером батча.
-
Байесовская оптимизация представляет собой последовательный процесс байесовского обновления. На шаге <tex>t</tex> апостериорное распределение <tex>p(f\mid \mathcal{D}_{t-1})</tex>, полученное по формулам предыдущего раздела, используется для выбора точки <tex>x_t</tex> максимизацией функции приобретения. После получения наблюдения <tex>y_t=f(x_t)+\varepsilon_t</tex> набор данных пополняется: <tex>\mathcal{D}_t = \mathcal{D}_{t-1}\cup\{(x_t,y_t)\}</tex>, и апостериорное распределение пересчитывается это и есть байесовское обновление, применяемое последовательно T раз при бюджете в T измерений.
+
'''MoCo''' (He et al., 2019; версия v2 — Chen et al., 2020) решает проблему больших батчей за счёт отдельной очереди (dictionary) представлений-негативов, накапливаемых из предыдущих итераций, и momentum-энкодера ключевой сети, чьи веса не обучаются градиентом напрямую, а обновляются как экспоненциальное скользящее среднее весов основной (query) сети. Это позволяет держать большое число негативов (десятки тысяч) при умеренном размере батча.
-
Качество стратегии принято характеризовать величиной '''регрета'''. Простой регрет после <tex>T</tex> шагов:
+
'''BYOL''' («Bootstrap Your Own Latent», Grill et al., 2020) полностью отказывается от негативных примеров: онлайн-сеть с дополнительным предиктором обучается предсказывать представление, выдаваемое целевой (target) сетью — копией с momentum-обновлением весов и остановленным градиентом — на другой аугментации того же изображения. Лосс — по существу регрессионный (нормализованная среднеквадратичная ошибка), а не классификационный.
-
:: <tex>r_T = f(x^{*}) - \max_{t\leqslant T} f(x_t)</tex>
+
'''SimSiam''' (Chen & He, 2021) показывает, что для избежания коллапса momentum-энкодер не обязателен: достаточно простой сиамской сети с общими весами, предиктора на одной ветви и остановки градиента на другой — без негативов, без очереди, без momentum-обновления.
-
Кумулятивный регрет:
+
== Связь с CLIP и мультимодальными моделями ==
-
:: <tex>R_T = \sum_{t=1}^{T} \big[f(x^{*}) - f(x_t)\big]</tex>
+
Контрастивный принцип естественно обобщается на пары объектов разной модальности. Модель [[CLIP]] (Radford et al., 2021, «Learning Transferable Visual Models From Natural Language Supervision») обучает одновременно энкодер изображений и энкодер текста на большом корпусе пар (изображение, подпись), используя, по существу, ту же схему, что и NT-Xent: внутри батча позитивной парой считается соответствующая друг другу пара «изображение — подпись», негативами — все остальные комбинации изображений и подписей внутри батча; лосс вычисляется симметрично — как по строкам, так и по столбцам матрицы косинусных сходств.
-
Стратегия называется «безрегретной» ({{lang-en|no-regret}}), если <tex>R_T/T \to 0</tex> при <tex>T\to\infty</tex>, что влечёт сходимость простого регрета к нулю. Для GP-UCB Шринивас с соавторами (2010) доказали следующий результат: если для конечного (или дискретизированного) множества <tex>\mathcal{X}</tex> положить
+
Результат такого предобучения — общее пространство представлений, в котором изображение и описывающий его текст оказываются близки. Это позволяет решать задачи zero-shot классификации: класс объекта определяется путём сравнения представления изображения с представлениями текстовых промптов вида «фотография {класс}» без какого-либо дообучения на целевом наборе данных. Подход CLIP послужил основой для последующих мультимодальных контрастивных моделей (например, ALIGN) и широко используется как источник эмбеддингов для задач мультимодального поиска и в качестве управляющего сигнала в генеративных моделях изображений.
-
:: <tex>\beta_t = 2\log\!\left(\frac{|\mathcal{X}|\,t^2\pi^2}{6\delta}\right)</tex>
+
== Пример: обучение представлений на CIFAR-10 с SimCLR ==
-
то с вероятностью не менее <tex>1-\delta</tex> кумулятивный регрет ограничен как
+
Проиллюстрируем типичный пайплайн на примере CIFAR-10 (условные, ориентировочные цифры). В качестве энкодера берётся сеть уменьшенной глубины (например, ResNet-18, адаптированный под разрешение 32×32). Предобучение проводится без меток в течение порядка 200–500 эпох с батчем размера 256–512 (небольшое разрешение CIFAR-10 позволяет обойтись без экстремально больших батчей, характерных для ImageNet), с аугментациями: случайный кроп с изменением масштаба, горизонтальное отражение, цветовые искажения, перевод в оттенки серого. Используется проекционная головка — двухслойный MLP, лосс — NT-Xent с температурой порядка 0.5.
-
:: <tex>R_T \leqslant \sqrt{C_1\, T\, \beta_T\, \gamma_T}</tex>
+
После предобучения энкодер замораживается, поверх представления <tex>h</tex> обучается линейный классификатор на полном размеченном наборе CIFAR-10. Ориентировочно такой протокол позволяет получить точность в районе 90% и выше, при том что полностью контролируемое обучение сравнимой по размеру сети на CIFAR-10 обычно даёт порядка 93–95% — то есть контрастивное предобучение без единой метки позволяет приблизиться к качеству обучения с учителем.
-
где <tex>C_1 = 8/\log(1+\sigma_n^{-2})</tex>, а <tex>\gamma_T</tex> — максимальный информационный выигрыш ({{lang-en|maximum information gain}}), характеризующий сложность класса функций, порождаемого ядром GP. Для гауссова ядра <tex>\gamma_T = O\big((\log T)^{d+1}\big)</tex>, для ядра Матерна с параметром гладкости <tex>\nu</tex> — <tex>\gamma_T = O\big(T^{\frac{d(d+1)}{2\nu+d(d+1)}}\log T\big)</tex>. Поскольку в обоих случаях <tex>\gamma_T</tex> растёт медленнее <tex>T</tex>, оценка гарантирует сублинейный рост <tex>R_T</tex> и, следовательно, сходимость GP-UCB к глобальному оптимуму.
+
На практике реализовывать подобный пайплайн с нуля не обязательно: библиотека PyTorch Lightning частности, надстройки вроде Lightning Bolts и сторонняя библиотека lightly) предоставляет готовые реализации SimCLR, MoCo, BYOL и SimSiam с настраиваемыми аугментациями и логированием; экосистема Hugging Face предоставляет предобученные контрастивные модели (в частности, чекпоинты CLIP) и библиотеку sentence-transformers для текстовых представлений, обучаемых по контрастивным и близким к ним схемам.
-
 
+
-
== Алгоритм ==
+
-
 
+
-
Ниже приведена обобщённая псевдокодовая схема, справедливая для большинства реализаций байесовской оптимизации на основе гауссовского процесса.
+
-
 
+
-
<pre>
+
-
Вход: чёрный ящик f, область поиска X, бюджет T,
+
-
размер начального плана n0, функция приобретения a
+
-
 
+
-
1. Сформировать начальный план {x_1, ..., x_n0}
+
-
(например, латинский гиперкуб или последовательность Соболя)
+
-
2. Для i = 1 .. n0: вычислить y_i = f(x_i)
+
-
3. D <- {(x_1,y_1), ..., (x_n0,y_n0)}
+
-
 
+
-
4. Для t = n0+1 .. T:
+
-
4.1 Обучить гауссовский процесс на D:
+
-
подобрать гиперпараметры ядра максимизацией
+
-
маргинального правдоподобия
+
-
4.2 Вычислить апостериорные mu(x), sigma^2(x) по формулам GP
+
-
4.3 x_t <- argmax_{x in X} a(x | D) // вспомогательная оптимизация
+
-
4.4 y_t <- f(x_t) // дорогостоящее обращение к оракулу
+
-
4.5 D <- D U {(x_t, y_t)}
+
-
 
+
-
5. Вернуть x+ = argmax_{(x_i,y_i) in D} y_i
+
-
</pre>
+
-
 
+
-
== Пример: настройка гиперпараметров градиентного бустинга для кредитного скоринга ==
+
-
 
+
-
Рассмотрим типовую задачу [[кредитный скоринг|кредитного скоринга]]: построение бинарного классификатора, предсказывающего вероятность дефолта заёмщика, с использованием модели [[градиентный бустинг|градиентного бустинга]] (например, XGBoost, LightGBM или CatBoost). В качестве целевой метрики обычно выступает [[площадь под ROC-кривой]] (AUC), оцениваемая по [[кросс-валидация|кросс-валидации]]. Один запуск обучения с фиксированным набором гиперпараметров и последующей k-блочной кросс-валидацией может занимать от нескольких минут до часов — это и есть «дорогой чёрный ящик» в терминах задачи.
+
-
 
+
-
{| class="wikitable"
+
-
|-
+
-
! Гиперпараметр !! Диапазон !! Тип !! Шкала
+
-
|-
+
-
| learning_rate (темп обучения) || [0.01, 0.3] || Непрерывный || Логарифмическая
+
-
|-
+
-
| max_depth (глубина дерева) || [3, 10] || Целочисленный || Линейная
+
-
|-
+
-
| n_estimators (число деревьев) || [100, 1000] || Целочисленный || Линейная
+
-
|-
+
-
| subsample (доля объектов) || [0.5, 1.0] || Непрерывный || Линейная
+
-
|-
+
-
| colsample_bytree (доля признаков) || [0.5, 1.0] || Непрерывный || Линейная
+
-
|-
+
-
| min_child_weight || [1, 50] || Целочисленный || Линейная
+
-
|-
+
-
| reg_lambda (L2-регуляризация) || [1e-3, 10] || Непрерывный || Логарифмическая
+
-
|-
+
-
| reg_alpha (L1-регуляризация) || [1e-3, 10] || Непрерывный || Логарифмическая
+
-
|}
+
-
 
+
-
Целевая функция в этом случае — <tex>f(\theta) = \mathrm{AUC}_{\mathrm{CV}}(\theta)</tex>, где <tex>\theta</tex> — вектор из восьми перечисленных гиперпараметров, а оптимизация ведётся на максимум. Типичная схема запуска: начальный план из 10–15 точек по латинскому гиперкубу, далее 30–50 итераций байесовской оптимизации с GP-суррогатом (ядро Матерна 5/2) и функцией приобретения EI.
+
-
 
+
-
Ниже приведён иллюстративный пример типичной динамики, наблюдаемой при сравнении со случайным поиском на подобных задачах — конкретные числа условны и предназначены для демонстрации характера сходимости, а не воспроизводят результаты определённого эксперимента.
+
-
 
+
-
{| class="wikitable"
+
-
|-
+
-
! Число обращений к f !! Лучший AUC, случайный поиск !! Лучший AUC, байесовская оптимизация
+
-
|-
+
-
| 10 || 0,752 || 0,768
+
-
|-
+
-
| 25 || 0,769 || 0,784
+
-
|-
+
-
| 50 || 0,778 || 0,791
+
-
|-
+
-
| 100 || 0,784 || 0,793
+
-
|-
+
-
| 200 || 0,788 || 0,794
+
-
|}
+
-
 
+
-
Характерная картина: байесовская оптимизация достигает качества, сопоставимого с результатом случайного поиска при существенно большем бюджете, уже за первые несколько десятков итераций — это и есть проявление её выборочной эффективности ({{lang-en|sample efficiency}}), особенно ценной при дорогой целевой функции. Сходный вывод — превосходство байесовской оптимизации над случайным поиском при настройке гиперпараметров моделей машинного обучения — получен Снук с соавторами (Snoek, Larochelle, Adams, 2012).
+
== Достоинства и ограничения ==
== Достоинства и ограничения ==
'''Достоинства:'''
'''Достоинства:'''
-
 
+
* не требует разметки данных, использует внутреннюю структуру самих данных;
-
* высокая эффективность по числу обращений к целевой функции, особенно значимая при дорогих вычислениях;
+
* даёт универсальные представления, переносимые на разные последующие задачи — классификацию, детекцию, поиск, кластеризацию;
-
* корректная работа с зашумлёнными наблюдениями благодаря вероятностной природе модели;
+
* хорошо масштабируется с ростом объёма непомеченных данных и вычислительных ресурсов;
-
* явная количественная оценка неопределённости, позволяющая осмысленно управлять балансом исследования и эксплуатации;
+
* не зависит от качества и полноты человеческой разметки, а значит устойчиво к её отсутствию или неполноте;
-
* отсутствие требования к дифференцируемости или явной аналитической форме целевой функции;
+
* единый принцип «притяжение — отталкивание» переносится между модальностями — изображениями, текстом, графами, аудио, мультимодальными парами.
-
* возможность включения априорных знаний через выбор ядра, функции среднего или ограничений;
+
-
* хорошая применимость к экспериментальным и симуляционным задачам, где каждое измерение стоит дорого.
+
'''Ограничения:'''
'''Ограничения:'''
-
 
+
* сильная чувствительность к выбору и силе аугментаций: неудачный набор либо тривиализирует задачу, либо разрушает полезную семантику;
-
* кубическая сложность обучения гауссовского процесса по числу наблюдений (<tex>O(t^3)</tex>), что без разреженных аппроксимаций ограничивает практический бюджет итераций несколькими сотнями–тысячами;
+
* методам с явными негативами (SimCLR, MoCo) требуются большие батчи или банки памяти, что увеличивает вычислительные затраты;
-
* заметная деградация качества при высокой размерности пространства поиска (свыше примерно 15–20 непрерывных переменных без специальных приёмов);
+
* риск коллапса представлений, требующий дополнительных архитектурных приёмов (stop-gradient, momentum-энкодер, регуляризация ковариации);
-
* чувствительность к выбору ядра и способу настройки его гиперпараметров;
+
* нет формальной гарантии, что инварианты, навязанные аугментациями, совпадают с инвариантами, нужными для конкретной целевой задачи;
-
* последовательная по своей природе процедура, затрудняющая тривиальную параллелизацию (хотя существуют пакетные, batch-модификации);
+
* более низкая интерпретируемость по сравнению с обучением на явно размеченных признаках — сложно диагностировать, какая именно информация закодирована в представлении;
-
* нетривиальная работа с дискретными, категориальными и условными (conditional) параметрами без специальных модификаций ядра или кодирования;
+
* обучение чувствительно к гиперпараметрам температуре, составу аугментаций, длительности предобучения и размеру батча.
-
* вспомогательная задача максимизации функции приобретения сама может быть многоэкстремальной и требовать многостартовой оптимизации.
+
-
 
+
-
== Варианты расширений ==
+
-
 
+
-
; Многомерная оптимизация
+
-
: При росте размерности пространства поиска стандартный GP-подход теряет эффективность. Для смягчения проблемы применяют случайные вложения меньшей размерности (метод REMBO), аддитивные модели GP, а также методы, сужающие область поиска до доверительного региона на каждой итерации (TuRBO).
+
-
 
+
-
; Оптимизация с ограничениями
+
-
: Если помимо целевой функции присутствуют дорогостоящие ограничения <tex>c(x)\leqslant 0</tex>, применяется модификация функции приобретения — например, взвешивание EI вероятностью допустимости точки, оцениваемой отдельным GP-классификатором ограничения (constrained EI).
+
-
 
+
-
; Многокритериальная оптимизация
+
-
: При нескольких одновременно оптимизируемых целях вместо единственной точки ищется [[множество Парето|множество Парето-оптимальных]] решений. Используются функции приобретения вроде ожидаемого прироста гиперобъёма (Expected Hypervolume Improvement, EHVI) или скаляризационные подходы (ParEGO).
+
-
 
+
-
; Мультифидельная оптимизация (BOHB)
+
-
: Когда доступны дешёвые приближённые оценки функции (например, обучение на подвыборке данных или при малом числе эпох), их можно использовать наряду с дорогими точными измерениями. Алгоритм BOHB (Falkner, Klein, Hutter, 2018) сочетает бандитскую схему распределения ресурсов Hyperband с байесовской моделью выбора конфигураций, ускоряя сходимость по сравнению с обычной GP-оптимизацией.
+
-
 
+
-
; Поиск архитектур нейронных сетей (NAS)
+
-
: Байесовская оптимизация применяется и для поиска архитектур [[нейронная сеть|нейронных сетей]] здесь пространство поиска дискретно, комбинаторно велико, а оценка каждой точки (обучение сети) крайне дорога. Для работы с такими пространствами используют специальные ядра, определённые на графах архитектур (например, на основе расстояния оптимального переноса, как в NASBOT), либо комбинируют байесовскую оптимизацию с методами разделения весов и другими техниками ускорения оценки кандидатов.
+
== См. также ==
== См. также ==
-
 
+
* [[Самообучение]]
-
* [[Оптимизация]]
+
* [[Компьютерное зрение]]
-
* [[Гауссовский процесс]]
+
* [[Обработка естественного языка]]
-
* [[Гиперпараметр]]
+
* [[CLIP]]
-
* [[Кросс-валидация]]
+
* [[SimCLR]]
-
* [[Градиентный бустинг]]
+
* [[MoCo]]
-
* [[Регуляризация]]
+
-
* [[Переобучение]]
+
-
* [[Случайный поиск]]
+
-
* [[Сеточный поиск]]
+
-
* [[Автоматическое машинное обучение]]
+
== Литература ==
== Литература ==
-
 
+
# Hadsell R., Chopra S., LeCun Y. Dimensionality Reduction by Learning an Invariant Mapping // CVPR. — 2006.
-
* Mockus J. On Bayesian methods for seeking the extremum // Optimization Techniques IFIP Technical Conference. — 1975.
+
# Oord A. van den, Li Y., Vinyals O. Representation Learning with Contrastive Predictive Coding // arXiv:1807.03748. — 2018.
-
* Jones D. R., Schonlau M., Welch W. J. Efficient Global Optimization of Expensive Black-Box Functions // Journal of Global Optimization. — 1998. — Vol. 13. — P. 455–492.
+
# Chen T., Kornblith S., Norouzi M., Hinton G. A Simple Framework for Contrastive Learning of Visual Representations // ICML. — 2020.
-
* Rasmussen C. E., Williams C. K. I. Gaussian Processes for Machine Learning. — MIT Press, 2006.
+
# He K., Fan H., Wu Y., Xie S., Girshick R. Momentum Contrast for Unsupervised Visual Representation Learning // CVPR. — 2020.
-
* Brochu E., Cora V. M., de Freitas N. A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning. — arXiv:1012.2599, 2010.
+
# Grill J.-B., Strub F., Altché F. et al. Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning // NeurIPS. — 2020.
-
* Srinivas N., Krause A., Kakade S., Seeger M. Gaussian Process Optimization in the Bandit Setting: No Regret and Experimental Design // Proceedings of ICML. — 2010.
+
# Chen X., He K. Exploring Simple Siamese Representation Learning // CVPR. — 2021.
-
* Bergstra J., Bengio Y. Random Search for Hyper-Parameter Optimization // Journal of Machine Learning Research. — 2012. — Vol. 13. — P. 281–305.
+
# Radford A., Kim J.W., Hallacy C. et al. Learning Transferable Visual Models From Natural Language Supervision // ICML. — 2021.
-
* Snoek J., Larochelle H., Adams R. P. Practical Bayesian Optimization of Machine Learning Algorithms // Advances in Neural Information Processing Systems (NeurIPS). — 2012.
+
# Schroff F., Kalenichenko D., Philbin J. FaceNet: A Unified Embedding for Face Recognition and Clustering // CVPR. — 2015.
-
* Shahriari B., Swersky K., Wang Z., Adams R. P., de Freitas N. Taking the Human Out of the Loop: A Review of Bayesian Optimization // Proceedings of the IEEE. — 2016. — Vol. 104, № 1. — P. 148–175.
+
# Wu Z., Xiong Y., Yu S.X., Lin D. Unsupervised Feature Learning via Non-Parametric Instance Discrimination // CVPR. — 2018.
-
* Falkner S., Klein A., Hutter F. BOHB: Robust and Efficient Hyperparameter Optimization at Scale // Proceedings of ICML. — 2018.
+
# Zbontar J., Jing L., Misra I., LeCun Y., Deny S. Barlow Twins: Self-Supervised Learning via Redundancy Reduction // ICML. — 2021.
-
* Frazier P. I. A Tutorial on Bayesian Optimization. — arXiv:1807.02811, 2018.
+
[[Категория:Машинное обучение]]
[[Категория:Машинное обучение]]
-
[[Категория:Методы оптимизации]]
+
[[Категория:Глубокое обучение]]
-
[[Категория:Автоматическое машинное обучение]]
+
[[Категория:Самообучение]]
-
[[Категория:Байесовские методы]]
+
```
-
[[Категория:Настройка гиперпараметров]]
+

Версия 12:01, 10 июля 2026

```wikitext

Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Imil Baltaniazov 15:00, 10 июля 2026 (MSD)


Контрастивное обучение (contrastive learning) — семейство методов самообучения (self-supervised learning), в которых модель обучается строить представления (embeddings) объектов исходя не из явных меток класса, а из отношений сходства между парами или наборами объектов. Основной принцип формулируется коротко: похожие объекты должны иметь близкие представления, непохожие — далёкие. Эта идея легла в основу современных методов предобучения в компьютерном зрении, обработке естественного языка и мультимодальном обучении, включая модели типа CLIP.

Содержание

Введение

Идея обучения по парам «похоже/непохоже» восходит к работам по метрическому обучению начала 1990-х годов, где сиамские нейронные сети применялись для верификации подписей (Bromley et al., 1993). Формальный вид современного контрастивного лосса был предложен в работе Hadsell, Chopra и LeCun (2006) «Dimensionality Reduction by Learning an Invariant Mapping», где для задачи снижения размерности использовалась функция потерь, притягивающая пары точек с одинаковой меткой окрестности и отталкивающая пары с разными метками — с использованием отступа (margin), аналогично более поздним триплет-лоссам.

Второй важный этап — работа ван ден Оорда и соавторов (Oord et al., 2018) «Representation Learning with Contrastive Predictive Coding», введшая функцию потерь InfoNCE и связавшая контрастивное обучение с оценкой взаимной информации между связанными фрагментами данных (например, соседними отрезками аудиосигнала). Это дало теоретическое обоснование того, почему контрастивные цели вообще позволяют извлекать полезные представления без разметки.

Третий, решающий для практики этап — статья Chen et al. (2020) «A Simple Framework for Contrastive Learning of Visual Representations» (SimCLR), показавшая, что при достаточно сильных аугментациях, большом размере батча и добавлении небольшой проекционной головки простая контрастивная цель на изображениях позволяет получить представления, по качеству приближающиеся к представлениям, полученным при обучении с учителем на ImageNet. После этой работы контрастивное обучение стало одним из основных подходов к предобучению без разметки, породив линейку методов — MoCo, BYOL, SimSiam — и в дальнейшем — мультимодальные модели вроде CLIP.

Постановка задачи

Формально задача ставится так: имеется набор немаркированных данных X = \{x_1, \dots, x_N\} (изображения, тексты, графы, аудиозаписи). Требуется найти функцию-энкодер f_\theta: X \to \mathbb{R}^d, отображающую объект в вектор фиксированной размерности так, чтобы это представление было полезно для широкого круга последующих задач (downstream tasks) — классификации, кластеризации, поиска ближайших соседей, дообучения (fine-tuning).

В отличие от обучения с учителем, где обучающий сигнал задаётся парами (x, y) с истинной меткой y, в контрастивном обучении сигнал формируется искусственно, из самой структуры данных: каждому объекту сопоставляется один или несколько «позитивных» связанных объектов (например, другая аугментация той же картинки) и множество «негативных» — не связанных с ним объектов. Обучение сводится к минимизации функции потерь, зависящей только от взаимного расположения представлений в пространстве embedding, без обращения к внешней разметке.

Качество полученных представлений принято оценивать протоколом линейной оценки (linear evaluation protocol): веса энкодера замораживаются, поверх представления h = f_\theta(x) обучается только линейный классификатор с использованием размеченных данных, и измеряется точность этого классификатора. Такой протокол позволяет сравнивать разные методы предобучения независимо от архитектуры «головы» классификатора.

Интуитивная идея

Рассмотрим простой пример. Пусть есть фотография кота. Применим к ней случайный кроп, поворот, изменение цветового баланса — получим другую картинку, которая всё ещё, безусловно, изображает кота. Эти две аугментированные версии одного изображения образуют позитивную пару: сеть должна научиться отображать их в близкие точки пространства представлений, несмотря на то что попиксельно эти изображения могут сильно различаться.

Возьмём теперь произвольную другую фотографию из обучающей выборки — например, изображение автомобиля. Пара «кот — автомобиль» образует негативную пару: их представления должны быть далеки друг от друга.

Удобная механическая аналогия — пружины и резинки в пространстве представлений. Позитивные пары соединены резинкой, которая стягивает их друг к другу; негативные пары соединены пружиной, которая их расталкивает. В равновесии объекты, похожие по смыслу, образуют плотные кластеры, а разнородные объекты расходятся — при этом сети ни разу не сообщалось явно, что перед ней «кот» или «автомобиль»: вся структура выучена из самой геометрии притяжения и отталкивания.

Важно, что позитивные пары не обязаны получаться только аугментацией одного изображения. В видео позитивной парой могут быть соседние кадры; в тексте — соседние предложения или фрагменты одного документа; в мультимодальных данных — изображение и подписывающий его текст.

Математическая формализация

Пусть энкодер f_\theta отображает объект x в представление h = f_\theta(x). Рассмотрим три исторически последовательных формулировки контрастивного лосса.

Triplet Loss. Функция была популяризирована в задачах метрического обучения, в частности в работе FaceNet (Schroff et al., 2015). Для тройки (якорь a, позитив p, негатив n) и функции расстояния d(u,v) = \|u - v\|_2 лосс задаётся как:

\mathcal{L}_{triplet}(a,p,n) = \max\bigl(0,\; d(f(a),f(p))^2 - d(f(a),f(n))^2 + \alpha\bigr)

где \alpha — гиперпараметр отступа (margin). Лосс штрафует ситуацию, когда позитив не отделён от негатива хотя бы на величину \alpha; при выполнении неравенства с запасом градиент равен нулю. Существенный практический недостаток триплет-лосса — сильная зависимость от стратегии подбора триплетов (triplet mining): случайно выбранные тройки быстро становятся тривиальными (лосс равен нулю), и для эффективного обучения требуется добывать «трудные» негативы.

InfoNCE. Введена в работе Oord et al. (2018) в рамках метода Contrastive Predictive Coding. В отличие от триплет-лосса, сопоставляет один позитив сразу множеству негативов через softmax:

\mathcal{L}_{InfoNCE} = -\,\mathbb{E}\left[\log \frac{\exp\bigl(f(x)^{\top} f(x^{+})/\tau\bigr)}{\displaystyle\sum_{x_i \in \{x^+, x_1,\dots,x_{N-1}\}} \exp\bigl(f(x)^{\top} f(x_i)/\tau\bigr)}\right]

где x^+ — позитивный пример, x_1,\dots,x_{N-1} — негативные примеры, \tau — параметр температуры. Авторы показали, что минимизация этого выражения эквивалентна максимизации нижней оценки взаимной информации I(x; x^+) между двумя связанными представлениями данных — отсюда название InfoNCE (information noise-contrastive estimation).

NT-Xent (SimCLR). В работе Chen et al. (2020) используется нормализованная температурная кросс-энтропия (normalized temperature-scaled cross entropy). Из батча размера N с помощью двух независимых случайных аугментаций формируется 2N представлений; для каждой позитивной пары (i,j), полученной из одного исходного изображения, лосс имеет вид:

\ell_{i,j} = -\log \frac{\exp\bigl(\mathrm{sim}(z_i,z_j)/\tau\bigr)}{\displaystyle\sum_{k=1}^{2N}\mathbb{1}_{[k\neq i]}\,\exp\bigl(\mathrm{sim}(z_i,z_k)/\tau\bigr)}

где \mathrm{sim}(u,v) = \dfrac{u^{\top}v}{\|u\|\,\|v\|} — косинусное сходство, а z_i = g(f_\theta(x_i)) — представление после проекционной головки. Итоговый лосс на батч — среднее \ell_{i,j} по всем 2N позитивным парам (в обе стороны). Все остальные 2N-2 представления в батче выступают негативами для пары (i,j) — так называемые in-batch negatives.

Температура \tau играет роль настройки «жёсткости» распределения softmax: малые значения \tau сильнее штрафуют близкие негативы (эффект, близкий к hard negative mining), но одновременно делают обучение более чувствительным к шуму и переобучению на конкретных негативах внутри батча.

Архитектурные решения

Сиамские сети (Siamese networks) — базовая архитектурная схема контрастивного обучения: два (или более) прохода одного и того же энкодера с общими весами f_\theta применяются к разным входам (например, к двум аугментациям одного изображения), после чего представления сравниваются функцией расстояния или сходства. Название закрепилось за архитектурой ещё в работах по верификации подписей и лиц 1990–2000-х годов.

Проекционная головка. Ключевое наблюдение SimCLR состоит в том, что контрастивный лосс лучше вычислять не непосредственно на представлении h = f_\theta(x), которое затем используется в последующих задачах, а на выходе дополнительной небольшой сети — проекционной головки g(\cdot), обычно двухслойного MLP с нелинейностью ReLU: z = g(h). После предобучения головка g отбрасывается, для последующих задач используется h. Объяснение эффекта: контрастивная цель заставляет модель отбрасывать информацию, инвариантную относительно применённых аугментаций (например, цвет объекта, если применялось цветовое искажение) — такая информация может быть полезна для последующих задач, но вредна для контрастивной цели. Проекционная головка «принимает удар на себя», сохраняя более общее представление в h.

Симметричные и асимметричные архитектуры. В симметричной схеме (SimCLR) оба входа проходят через один и тот же энкодер с общими весами, и градиент течёт по обеим ветвям одинаково. В асимметричных схемах ветви различаются: например, в MoCo один энкодер (query encoder) обучается градиентным спуском, а второй (key encoder) обновляется через экспоненциальное скользящее среднее (momentum, EMA) весов первого энкодера и не получает градиента напрямую — это стабилизирует представления негативов, накапливаемых в очереди. В BYOL и SimSiam асимметрия усиливается ещё сильнее: на «онлайн»-ветви добавляется дополнительная сеть-предиктор, а на «целевой» ветви применяется остановка градиента (stop-gradient) — при этом негативные примеры вовсе не требуются.

Стратегии аугментации данных

Выбор аугментаций определяет, какие инварианты выучит модель, и является одним из решающих факторов качества контрастивного обучения.

Изображения. В экспериментах SimCLR показано, что сильнее всего на качество влияет комбинация случайного кропа с масштабированием (random resized crop) и цветовых искажений (color jitter, случайное преобразование яркости, контраста, насыщенности и оттенка). По отдельности ни один из этих видов аугментации не даёт сравнимого эффекта: случайный кроп без изменения цвета позволяет модели решать задачу по одним лишь статистикам цвета, не выучивая содержательных признаков формы и текстуры. Дополнительно применяются размытие по Гауссу, перевод в оттенки серого, горизонтальное отражение; в ряде более поздних методов (BYOL) добавляется соляризация.

Текст. Используются маскирование токенов, обратный перевод (back-translation), синонимическая замена слов, случайные удаление/вставка/перестановка слов (техника EDA), а также кроппинг фрагментов документа. Отдельный интересный приём — метод SimCSE, где две «разные» версии одного и того же предложения получаются простым повторным пропуском через энкодер с включённым dropout: разные случайные маски dropout дают немного разные представления одного и того же текста, которые и образуют позитивную пару.

Графы. В графовом контрастивном обучении (например, GraphCL) применяются случайное удаление рёбер и узлов, маскирование атрибутов узлов, сэмплирование подграфов и аугментации на основе диффузии графа или случайных блужданий — каждая операция должна сохранять содержательную структуру графа, не разрушая его смысловую связность.

Общий принцип: аугментация должна быть достаточно сильной, чтобы задача не решалась тривиальными «короткими путями» (shortcuts), но не настолько сильной, чтобы разрушить семантику, важную для последующих задач. Подбор набора аугментаций — во многом эмпирическая, специфичная для модальности процедура.

Проблема коллапса представлений

Коллапс представлений (representation collapse) — вырожденное решение, при котором энкодер отображает все входы в одну и ту же (или почти одну и ту же) точку пространства представлений. При таком решении расстояние между любыми позитивными парами тривиально минимально, однако представление не несёт никакой информации об исходных данных и бесполезно для последующих задач. Проблема возникает потому, что цель «сблизить позитивы» сама по себе не имеет механизма, препятствующего вырождению — константное отображение формально идеально решает эту часть задачи.

Основные способы борьбы с коллапсом:

  • Явные негативные примеры. В InfoNCE-подобных лоссах наличие негативов создаёт отталкивающую силу: минимизация лосса требует не просто сближения позитива, а его отличимости от множества негативов через softmax, что делает константное решение невыгодным. Для устойчивой оценки такого softmax требуется достаточно большое число негативов — отсюда потребность SimCLR в больших батчах либо MoCo в очереди (queue) накопленных представлений.
  • Остановка градиента (stop-gradient). В BYOL и особенно наглядно в SimSiam показано, что коллапса можно избежать вовсе без негативных примеров: достаточно асимметрии между двумя ветвями сети (дополнительный предиктор на одной ветви) и остановки градиента на другой ветви. Полного теоретического объяснения этому явлению до конца не дано, но эмпирически и по ряду теоретических аргументов (аналогия с EM-алгоритмом попеременной оптимизации) показано, что такая схема устойчиво избегает вырождения.
  • Нормализация. L2-нормализация представлений (проекция на единичную гиперсферу) в сочетании с батч-нормализацией внутри проекционной головки и предиктора эмпирически связана со стабильностью обучения и, по ряду наблюдений, помогает избегать коллапса — хотя более поздние работы (в частности, эксперименты SimSiam) показывают, что одной нормализации без stop-gradient недостаточно.
  • Явная регуляризация ковариации. Отдельное направление — методы Barlow Twins (Zbontar et al., 2021) и VICReg (Bardes et al., 2022), которые вместо контрастивного или предикторного лосса напрямую штрафуют вырождение: требуют, чтобы дисперсия каждой компоненты представления по батчу была не ниже порога, и одновременно минимизируют корреляцию между разными компонентами вектора представления.

Основные методы

Метод Год Нужны негативные примеры Momentum-энкодер Механизм против коллапса Требования к батчу
SimCLR 2020 Да (in-batch) Нет Негативные примеры + проекционная головка Очень большой (2048–8192)
MoCo (v1/v2) 2019/2020 Да (очередь) Да Негативные примеры из очереди + momentum-энкодер Умеренный (очередь заменяет большой батч)
BYOL 2020 Нет Да Асимметрия «онлайн/цель» + предиктор + stop-gradient Умеренный
SimSiam 2021 Нет Нет Только предиктор + stop-gradient Умеренный

SimCLR (Chen et al., 2020) — симметричная сиамская схема с общей энкодер-проекцией на обеих ветвях, использующая NT-Xent-лосс с in-batch негативами; для достижения качественных представлений требует очень больших батчей, поскольку число негативов ограничено размером батча.

MoCo (He et al., 2019; версия v2 — Chen et al., 2020) решает проблему больших батчей за счёт отдельной очереди (dictionary) представлений-негативов, накапливаемых из предыдущих итераций, и momentum-энкодера — ключевой сети, чьи веса не обучаются градиентом напрямую, а обновляются как экспоненциальное скользящее среднее весов основной (query) сети. Это позволяет держать большое число негативов (десятки тысяч) при умеренном размере батча.

BYOL («Bootstrap Your Own Latent», Grill et al., 2020) полностью отказывается от негативных примеров: онлайн-сеть с дополнительным предиктором обучается предсказывать представление, выдаваемое целевой (target) сетью — копией с momentum-обновлением весов и остановленным градиентом — на другой аугментации того же изображения. Лосс — по существу регрессионный (нормализованная среднеквадратичная ошибка), а не классификационный.

SimSiam (Chen & He, 2021) показывает, что для избежания коллапса momentum-энкодер не обязателен: достаточно простой сиамской сети с общими весами, предиктора на одной ветви и остановки градиента на другой — без негативов, без очереди, без momentum-обновления.

Связь с CLIP и мультимодальными моделями

Контрастивный принцип естественно обобщается на пары объектов разной модальности. Модель CLIP (Radford et al., 2021, «Learning Transferable Visual Models From Natural Language Supervision») обучает одновременно энкодер изображений и энкодер текста на большом корпусе пар (изображение, подпись), используя, по существу, ту же схему, что и NT-Xent: внутри батча позитивной парой считается соответствующая друг другу пара «изображение — подпись», негативами — все остальные комбинации изображений и подписей внутри батча; лосс вычисляется симметрично — как по строкам, так и по столбцам матрицы косинусных сходств.

Результат такого предобучения — общее пространство представлений, в котором изображение и описывающий его текст оказываются близки. Это позволяет решать задачи zero-shot классификации: класс объекта определяется путём сравнения представления изображения с представлениями текстовых промптов вида «фотография {класс}» без какого-либо дообучения на целевом наборе данных. Подход CLIP послужил основой для последующих мультимодальных контрастивных моделей (например, ALIGN) и широко используется как источник эмбеддингов для задач мультимодального поиска и в качестве управляющего сигнала в генеративных моделях изображений.

Пример: обучение представлений на CIFAR-10 с SimCLR

Проиллюстрируем типичный пайплайн на примере CIFAR-10 (условные, ориентировочные цифры). В качестве энкодера берётся сеть уменьшенной глубины (например, ResNet-18, адаптированный под разрешение 32×32). Предобучение проводится без меток в течение порядка 200–500 эпох с батчем размера 256–512 (небольшое разрешение CIFAR-10 позволяет обойтись без экстремально больших батчей, характерных для ImageNet), с аугментациями: случайный кроп с изменением масштаба, горизонтальное отражение, цветовые искажения, перевод в оттенки серого. Используется проекционная головка — двухслойный MLP, лосс — NT-Xent с температурой порядка 0.5.

После предобучения энкодер замораживается, поверх представления h обучается линейный классификатор на полном размеченном наборе CIFAR-10. Ориентировочно такой протокол позволяет получить точность в районе 90% и выше, при том что полностью контролируемое обучение сравнимой по размеру сети на CIFAR-10 обычно даёт порядка 93–95% — то есть контрастивное предобучение без единой метки позволяет приблизиться к качеству обучения с учителем.

На практике реализовывать подобный пайплайн с нуля не обязательно: библиотека PyTorch Lightning (в частности, надстройки вроде Lightning Bolts и сторонняя библиотека lightly) предоставляет готовые реализации SimCLR, MoCo, BYOL и SimSiam с настраиваемыми аугментациями и логированием; экосистема Hugging Face предоставляет предобученные контрастивные модели (в частности, чекпоинты CLIP) и библиотеку sentence-transformers для текстовых представлений, обучаемых по контрастивным и близким к ним схемам.

Достоинства и ограничения

Достоинства:

  • не требует разметки данных, использует внутреннюю структуру самих данных;
  • даёт универсальные представления, переносимые на разные последующие задачи — классификацию, детекцию, поиск, кластеризацию;
  • хорошо масштабируется с ростом объёма непомеченных данных и вычислительных ресурсов;
  • не зависит от качества и полноты человеческой разметки, а значит устойчиво к её отсутствию или неполноте;
  • единый принцип «притяжение — отталкивание» переносится между модальностями — изображениями, текстом, графами, аудио, мультимодальными парами.

Ограничения:

  • сильная чувствительность к выбору и силе аугментаций: неудачный набор либо тривиализирует задачу, либо разрушает полезную семантику;
  • методам с явными негативами (SimCLR, MoCo) требуются большие батчи или банки памяти, что увеличивает вычислительные затраты;
  • риск коллапса представлений, требующий дополнительных архитектурных приёмов (stop-gradient, momentum-энкодер, регуляризация ковариации);
  • нет формальной гарантии, что инварианты, навязанные аугментациями, совпадают с инвариантами, нужными для конкретной целевой задачи;
  • более низкая интерпретируемость по сравнению с обучением на явно размеченных признаках — сложно диагностировать, какая именно информация закодирована в представлении;
  • обучение чувствительно к гиперпараметрам — температуре, составу аугментаций, длительности предобучения и размеру батча.

См. также

Литература

  1. Hadsell R., Chopra S., LeCun Y. Dimensionality Reduction by Learning an Invariant Mapping // CVPR. — 2006.
  2. Oord A. van den, Li Y., Vinyals O. Representation Learning with Contrastive Predictive Coding // arXiv:1807.03748. — 2018.
  3. Chen T., Kornblith S., Norouzi M., Hinton G. A Simple Framework for Contrastive Learning of Visual Representations // ICML. — 2020.
  4. He K., Fan H., Wu Y., Xie S., Girshick R. Momentum Contrast for Unsupervised Visual Representation Learning // CVPR. — 2020.
  5. Grill J.-B., Strub F., Altché F. et al. Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning // NeurIPS. — 2020.
  6. Chen X., He K. Exploring Simple Siamese Representation Learning // CVPR. — 2021.
  7. Radford A., Kim J.W., Hallacy C. et al. Learning Transferable Visual Models From Natural Language Supervision // ICML. — 2021.
  8. Schroff F., Kalenichenko D., Philbin J. FaceNet: A Unified Embedding for Face Recognition and Clustering // CVPR. — 2015.
  9. Wu Z., Xiong Y., Yu S.X., Lin D. Unsupervised Feature Learning via Non-Parametric Instance Discrimination // CVPR. — 2018.
  10. Zbontar J., Jing L., Misra I., LeCun Y., Deny S. Barlow Twins: Self-Supervised Learning via Redundancy Reduction // ICML. — 2021.

```

Личные инструменты