Контрастивное обучение — это парадигма обучения представлений, направленная на обучение функции встраивания f: X → ℝ^d, так чтобы похожие примеры (положительная пара) находились близко друг к другу в пространстве признаков, а разные примеры (отрицательная пара) — далеко.
Формально часто используется InfoNCE-функция потерь, которая для положительной пары (x, x^+) и множества отрицательных примеров {x^-_k} определяется как:
L = - \log \frac{\exp(\mathrm{sim}(f(x), f(x^+)) / \tau)}{\exp(\mathrm{sim}(f(x), f(x^+)) / \tau) + \sum_k \exp(\mathrm{sim}(f(x), f(x^-_k)) / \tau)}
Здесь \mathrm{sim}(\cdot, \cdot) — функция сходства, например скалярное произведение, а \tau > 0 — параметр температуры для масштабирования.
Минимизируя эту функцию потерь, модель обучается группировать положительные пары и разделять отрицательные, что приводит к получению информативных представлений.
Контрастивное обучение лежит в основе многих современных методов самообучения с учителем, таких как SimCLR (Chen et al., 2020) и MoCo (He et al., 2020), которые достигают передовых результатов в обработке изображений.
Определение:
«Контрастивное обучение — это метод обучения, при котором встраивание обучается так, чтобы похожие точки данных находились в пространстве признаков ближе друг к другу, чем непохожие, с целенаправленным использованием положительных и отрицательных пар.»
Источник:
Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020). A Simple Framework for Contrastive Learning of Visual Representations. В материалах 37-й Международной конференции по машинному обучению (ICML).