Открыть сервис

Метрическое обучение

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

История

Метрическое обучение как самостоятельная область начало формироваться в начале 2000-х годов, хотя отдельные подходы, такие как обучение с помощью расстояния Махаланобиса, использовались и ранее. Первые значимые работы были связаны с задачей обучения метрике Махаланобиса (Mahalanobis metric learning), где параметрическая матрица преобразования подбиралась таким образом, чтобы объекты одного класса сближались, а разных — отдалялись. В 2002 году появился алгоритм Large Margin Nearest Neighbor (LMNN), предложенный Килианом Вайнбергером и Лоуренсом Сойером, который стал одним из наиболее влиятельных методов. В 2010-е годы с развитием глубоких нейронных сетей метрическое обучение получило новый импульс: появились подходы на основе сиамских сетей, триплетных сетей и контрастивных потерь, широко применяемые в компьютерном зрении, обработке естественного языка и рекомендательных системах.

Формальная постановка

Пусть имеется множество объектов \( X \) и множество меток \( Y \). Требуется построить функцию расстояния \( d(x_i, x_j) \), которая для пары объектов \( x_i, x_j \in X \) возвращает неотрицательное число, минимальное для семантически близких объектов и максимальное для далёких. В параметрическом метрическом обучении расстояние задаётся как:

\[ d(x_i, x_j) = \sqrt{(x_i - x_j)^T M (x_i - x_j)} \]

где \( M \) — симметричная положительно полуопределённая матрица размера \( d \times d \). Если \( M \) — единичная матрица, то \( d \) совпадает с евклидовым расстоянием. Обучение заключается в подборе \( M \) по обучающей выборке таким образом, чтобы минимизировать некоторую функцию потерь, отражающую желаемые свойства метрики.

Классификация методов

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

По типу метрики

  • Линейное метрическое обучениеметрика задаётся линейным преобразованием пространства (матрица \( M \)). Примеры: LMNN, Information-Theoretic Metric Learning (ITML), Relevant Component Analysis (RCA).
  • Нелинейное метрическое обучение — метрика строится с помощью нелинейных преобразований, например, через ядерные функции (kernel metric learning) или нейронные сети (deep metric learning). Примеры: сиамские сети, триплетные сети, сети с контрастивными потерями.

По типу обучающей информации

  • Парное обучение — используется информация о парах объектов: «похожи» (positive pair) или «непохожи» (negative pair). Функция потерь, например, контрастивная (contrastive loss), штрафует за большое расстояние между похожими объектами и за малое — между непохожими.
  • Триплетное обучение — используется тройка объектов: якорь (anchor), положительный пример (positive) и отрицательный пример (negative). Цель — сделать расстояние от якоря до положительного примера меньше, чем до отрицательного, на некоторый запас (margin). Функция потерь — триплетная (triplet loss).
  • Обучение по спискам — используется информация о ранжировании объектов внутри группы (например, все объекты одного класса должны быть ближе друг к другу, чем к объектам других классов). Пример: Structured Loss, N-pair loss, Multi-Similarity loss.

По архитектуре модели

  • Сиамские сети — две или более подсети с общими весами, которые обрабатывают пары или тройки объектов и вычисляют их векторные представления (эмбеддинги). Метрика затем вычисляется как расстояние между эмбеддингами.
  • Сети с контрастивным обучением — разновидность сиамских сетей, где используется контрастивная функция потерь. Широко применяются в задачах обучения представлений без учителя (self-supervised learning).
  • Методы на основе прототипов — для каждого класса строится один или несколько прототипов (центроидов), и расстояние до прототипа определяет принадлежность объекта к классу. Пример: Prototypical Networks.

Применение

Метрическое обучение находит применение в широком спектре задач, где требуется измерение семантического сходства.

Компьютерное зрение

  • Распознавание лиц — системы, такие как FaceNet, используют триплетные сети для построения эмбеддингов лиц, где расстояние между изображениями одного человека минимально, а разных — велико.
  • Поиск по изображению (image retrieval) — по запросу в виде изображения находятся семантически похожие изображения в базе данных.
  • Классификация с малым числом примеров (few-shot learning) — метрическое обучение позволяет обобщать на новые классы, имея всего несколько примеров каждого класса (например, Matching Networks, Prototypical Networks).
  • Отслеживание объектов (object tracking) — метрики сходства используются для сопоставления объектов на последовательных кадрах.

Обработка естественного языка

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

Рекомендательные системы

  • Коллаборативная фильтрация — метрики сходства между пользователями или товарами на основе их взаимодействий.
  • Поиск аналогов — нахождение товаров, похожих на заданный, по набору признаков.

Биоинформатика

  • Классификация белков — построение метрик на основе аминокислотных последовательностей или структур.
  • Анализ экспрессии геноввыделение групп генов со схожим профилем активности.

Робототехника и автономные системы

  • Обучение подражанию (imitation learning) — метрики сходства между траекториями движения.
  • Сопоставление карт и локализация — поиск соответствий между сенсорными данными и картой.

Связь с другими областями

Метрическое обучение тесно связано с:

  • Обучением представлений (representation learning) — метрика строится на основе векторных представлений, которые также обучаются.
  • Кластеризацией — многие алгоритмы кластеризации (например, k-средних) зависят от выбора метрики; метрическое обучение позволяет адаптировать её под данные.
  • Классификацией с использованием k-ближайших соседей (k-NN) — качество k-NN напрямую зависит от качества метрики.
  • Ранжированием (learning to rank) — метрики сходства используются для упорядочивания объектов по релевантности.
  • Контрастивным обучением (contrastive learning) — подход, где метрическое обучение применяется для обучения представлений без учителя, часто с использованием сиамских сетей и контрастивных потерь.

Критика и ограничения

  • Чувствительность к выбору пар/триплетов — в триплетном обучении качество сильно зависит от того, какие тройки объектов выбираются для обучения. Случайный выбор может приводить к медленной сходимости или низкому качеству. Разработаны стратегии семплирования (hard negative mining, semi-hard mining).
  • Проблема масштабирования — при большом числе классов (например, миллионы лиц) количество возможных пар или триплетов становится огромным, что требует специальных методов ускорения (например, использование очередей или приближённого поиска ближайших соседей).
  • Необходимость большого объёма размеченных данных — для обучения качественной метрики, особенно в глубоких моделях, требуется много парных или триплетных примеров.
  • Неоднозначность понятия «сходство» — в разных задачах семантическая близость может определяться по-разному, и метрика, обученная для одной задачи, может быть непригодна для другой.
  • Склонность к переобучению — особенно в случае малого числа примеров или сложных моделей, метрика может запомнить шумовые закономерности.

Примеры реализации

  • LMNN — классический алгоритм, реализованный в библиотеках scikit-learn (через metric_learn), MATLAB и Python.
  • FaceNet — глубокая нейронная сеть для распознавания лиц, использующая триплетную потерю. Реализации доступны в TensorFlow и PyTorch.
  • Siamese Network — базовая архитектура для парного обучения, часто используется в задачах верификации подписей, лиц, отпечатков пальцев.
  • ArcFace — современный метод распознавания лиц, основанный на модифицированной контрастивной потере с угловым запасом.

Источники

  • Weinberger, K. Q., & Saul, L. K. (2009). Distance metric learning for large margin nearest neighbor classification. Journal of Machine Learning Research, 10(Feb), 207–244.
  • Schroff, F., Kalenichenko, D., & Philbin, J. (2015). FaceNet: A unified embedding for face recognition and clustering. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.
  • Kulis, B. (2013). Metric learning: A survey. Foundations and Trends in Machine Learning, 5(4), 287–364.
  • Bellet, A., Habrard, A., & Sebban, M. (2013). A survey on metric learning for feature vectors and structured data. arXiv preprint arXiv:1306.6709.
  • Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). ArcFace: Additive angular margin loss for deep face recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →