Метрическое обучение¶
Метрическое обучение (англ. 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 →


