# Triplet Losses and Friends ## Origins [*Deep Metric Learning via Lifted Structured Feature Embedding*](https://arxiv.org/abs/1511.06452)(Цитируется: 674) Одна из первых первых статей на тему триплет лоссов. Она охватывает интуицию, контрпримеры достаточно качественно, чтобы начать свое погружение в тему. (Увы мое погружение было с других статей) Итак, что такое триплет лосс, и остальные? ![](https://i.imgur.com/ibx0O69.png) * Контрастив лосс -- сравниваются пары положительные и отрицательные * Триплет лосс -- появляется понятие **Anchor**. Положительные и отрицательные пары создаются относительно него * Lifted Embedding -- то, что предложили авторы использовать в то время ### Фейл кейсы ![](https://i.imgur.com/g5PTFp3.png) В стате уделяется большое внимание тому, как выбирать пары в Lifted Embedding. Есть альтернативы: * Брать все пары в батче * Брать только сложные пары в батче Чтобы избежать косяков с легкими позитивами и негативами, батч лучше составлять исходя из ближайших соседей. Но и говорят, что перебарщивать и составлять пары из только сложных примеров не стоит. В общем случае при большом батч сайзе стратегия выбирать только сложные в батче хороша. ## Майнить или не Майнить ### Не майнить Можно сделать чуть другую голову для классификации https://arxiv.org/abs/1909.05235. К статье много вопросов и кажется она не релевантны для фейсрека. Что в ней? Вместо одного центройда в голове появляется несколько центройдов. При этом вводится регуляризация на дополнительные центройды. Визуализация ниже ![](https://i.imgur.com/6MrVVXz.png) Когда мы нашли симиларити до нескольких центройдов класса можно сделать либо максимум по симиларити, либо софтмакс. ![](https://i.imgur.com/c0orTcM.png) ### Майнить [*In Defense of the Triplet Loss Again: Learning Robust Person Re-Identification with Fast Approximated Triplet Loss and Label Distillation*](https://arxiv.org/abs/1912.07863) Майнить по всему датасету трудно, можно дедлать верхние оценки ![](https://i.imgur.com/XNVDhe4.png) ![](https://i.imgur.com/95S4J3M.png) Подсчет радиуса кластера позволяет получить верхнюю оценку, не высчитывая всех схожестей между объектами. (как он может быть предпосчитан, сходу не разобрался) --- [*In Defense of the Triplet Loss for Person Re-Identificatio*](https://arxiv.org/abs/1703.07737) Как ни странно в этой статье опять вспоминается подход 15го года. > Most similar to our batch hard and batch all losses is the Lifted Embedding loss Отличий я не сильно много нашел. По факту это выбор правильных сложных пар в батче как в старой статье. В контрибушены они выделяют экспериментальную секцию, где они завели триплет лоссы для ReID --- [*Attribute-aware Identity-hard Triplet Loss for Video-based Person Re-identificatio*](https://arxiv.org/abs/2006.07597) Главная мотивация этой статьи про то, что вариация внутри кластера достаточно сильная и это не очень хорошо. Разные позы, освещение вызывают нестабильности в обучении. Так схожесть будет определяться скорее позой, чем специфичными признаками. ![](https://i.imgur.com/4wuwb1N.png) Авторы дополнительно выделяют intra-class positive/negative > Based on the attribute distance, intra-class negative and intra-class positive can be picked out from the identity positives для этого они дополнительно предсказывают аттрибуты. Выливается это все в достаточно сложную процедуру обучения. Где в лосс подаются пары так, чтобы снизить разницу признаков между позитивными парами с разными аттрибутами. ![](https://i.imgur.com/x8fwYla.png) --- Завершу обзор вот этой статьей [*A theoretically sound upper bound on the triplet loss for improving the efficiency of deep distance metric learning*](https://arxiv.org/abs/1904.08720) Нечто похожее обсуждалось недавно на нашем брейншторме. Когда вместо сравнения с триплетом шло сравнение с центройдом ![](https://i.imgur.com/HZK1Fo9.png) Однако, с обучением центройдов что-то не гладко, они предлагают их инициализировать равномерно и не трогать.