Контрастивное обучение представлениям — это метод самоконтролируемого обучения, направленный на обучение функции вложения \( f: \mathcal{X} \to \mathbb{R}^d \), так чтобы похожие входные данные \( x_i, x_j \) находились близко друг к другу в пространстве признаков, а непохожие — дальше.
Формально часто используется функция потерь InfoNCE, определяемая как:
\[ L_i = -\log \frac{\exp(\mathrm{sim}(f(x_i), f(x_j^+)) / \tau)}{\sum_{k=1}^{N} \exp(\mathrm{sim}(f(x_i), f(x_k)) / \tau)} \]
Здесь \( x_j^+ \) обозначает положительный пример для \( x_i \), \( x_k \) — отрицательные примеры, \( \mathrm{sim} \) — функцию сходства (например, косинусное сходство), а \( \tau \) — температурную константу.
Процесс обучения оптимизирует функцию \( f \), так чтобы положительные пары были ближе, а отрицательные — дальше друг от друга.
Контрастивное обучение лежит в основе многих современных методов самоконтролируемого обучения, таких как SimCLR, MoCo или BYOL, которые позволяют получать мощные представления без обширной разметки.
Определение:
«Контрастивное обучение представлениям — это подход самоконтролируемого обучения, который создаёт информативное вложение путём максимизации сходства между положительными парами данных и минимизации сходства между отрицательными парами.»
Источник:
Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020). A Simple Framework for Contrastive Learning of Visual Representations. Proceedings of the 37th International Conference on Machine Learning (ICML).