# Pèrdua de triplets

La pèrdua de triplets és una funció de pèrdua d'aprenentatge automàtic que s'utilitza àmpliament en l'aprenentatge d'una sola vegada, un entorn on els models s'entrenen per generalitzar de manera eficaç a partir d'exemples limitats. Va ser concebut pels investigadors de Google per al seu destacat algorisme FaceNet per a la detecció de cares.
La pèrdua de triplets està dissenyada per donar suport a l'aprenentatge mètric. És a dir, per ajudar els models d'entrenament per aprendre una incrustació (mapeig a un espai de característiques) on els punts de dades similars estiguin més a prop i els diferents més allunyats, permetent una discriminació robusta en condicions variades. En el context de la detecció de cares, els punts de dades corresponen a imatges.

## Definició

La funció de pèrdua es defineix utilitzant triplets de punts d'entrenament de la forma $(A,P,N)$. En cada triplet, $A$ (anomenat "punt d'ancoratge") denota un punt de referència d'una identitat particular, $P$ (anomenat "punt positiu") denota un altre punt de la mateixa identitat en el punt $A$, i $N$ (anomenat "punt negatiu") denota un punt d'una identitat diferent de la identitat en el punt $A$ i $P$.
Deixa $x$ ser algun punt i deixar $f(x)$ ser la incrustació de $x$ en l'espai euclidià de dimensions finites. S'ha de suposar que la norma L2 de $f(x)$ és la unitat (la norma L2 d'un vector $X$ en un espai euclidià de dimensions finites es denota per $\Vert X\Vert$.) Muntem $m$ triplets de punts del conjunt de dades d'entrenament. L'objectiu de l'entrenament aquí és assegurar-se que, després de l'aprenentatge, la següent condició (anomenada "restricció de triplets") sigui satisfeta per tots els triplets. $(A^{(i)},P^{(i)},N^{(i)})$ al conjunt de dades d'entrenament:
$\Vert f(A^{(i)})-f(P^{(i)})\Vert _{2}^{2}+\alpha <\Vert f(A^{(i)})-f(N^{(i)})\Vert _{2}^{2}$
La variable $\alpha$ és un hiperparàmetre anomenat marge i el seu valor s'ha d'establir manualment. Al sistema FaceNet, el seu valor es va establir com a 0,2.
Així, la forma completa de la funció a minimitzar és la següent:
$L=\sum _{i=1}^{m}\max {\Big\Vert f(A^{(i)})-f(P^{(i)})\Vert _{2}^{2}-\Vert f(A^{(i)})-f(N^{(i)})\Vert _{2}^{2}+\alpha ,0{\Big )}$

## Intuïció

Una línia de base per entendre l'eficàcia de la pèrdua de triplets és la pèrdua contrastiva, que opera en parells de mostres (en lloc de triplets). L'entrenament amb la pèrdua contrastiva apropa les incrustacions de parelles similars i separa les parelles diferents. El seu enfocament per parelles és avariciós, ja que considera cada parell de manera aïllada.
La pèrdua de triplets innova tenint en compte les distàncies relatives. El seu objectiu és que la incrustació d'un punt d'ancoratge (consulta) estigui més a prop dels punts positius que dels punts negatius (també tenint en compte el marge). No intenta optimitzar encara més les distàncies un cop es compleix aquest requisit. Això s'aproxima considerant simultàniament dos parells (àncora-positiu i àncora-negatiu), en lloc de cada parell de manera aïllada.

## Triplet "mineria"

Un detall crucial de la implementació quan s'entrena amb pèrdua de triplets és la "mineria" de triplets, que se centra en la selecció intel·ligent de triplets per a l'optimització. Aquest procés afegeix una capa addicional de complexitat en comparació amb la pèrdua de contrast.
Un enfocament ingenu per preparar les dades d'entrenament per a la pèrdua de triplets implica la selecció aleatòria de triplets del conjunt de dades. En general, el conjunt de triplets vàlids de la forma $(A^{(i)},P^{(i)},N^{(i)})$ és molt gran. Per accelerar la convergència de l'entrenament, és essencial centrar-se en els triplets desafiants. Al document de FaceNet, es van explorar diverses opcions, i finalment es van arribar a les següents. Per a cada parell àncora-positiu, l'algoritme només considera negatius semi-durs. Aquests són negatius que infringeixen el requisit del triplet (és a dir, són "durs"), però que es troben més lluny de l'àncora que el positiu (no massa dur). Reposat, per a cadascun $A^{(i)}$ i $P^{(i)}$, busquen $N^{(i)}$ tal que:
$\Vert f(A^{(i)})-f(P^{(i)})\Vert _{2}^{2}<\Vert f(A^{(i)})-f(N^{(i)})\Vert _{2}^{2}<\Vert f(A^{(i)})-f(P^{(i)})\Vert _{2}^{2}+\alpha$
La raó d'aquesta elecció de disseny és heurístic. Pot semblar desconcertant que el procés d'extracció descuit els negatius "molt durs" (és a dir, més a prop de l'àncora que del positiu). Els experiments realitzats pels dissenyadors de FaceNet van trobar que això sovint condueix a una convergència per degenerar mínims locals.
La mineria de triplets es realitza a cada pas d'entrenament, des dels punts de mostra continguts en el lot d'entrenament (això es coneix com a mineria en línia), després de calcular les incrustacions per a tots els punts del lot. Tot i que idealment es podria utilitzar tot el conjunt de dades, això és poc pràctic en general. Per donar suport a un gran espai de cerca per a triplets, els autors de FaceNet van utilitzar lots molt grans (1800 mostres). Els lots es construeixen seleccionant un gran nombre de punts de mostra de la mateixa categoria (40) i els negatius seleccionats aleatòriament.

## Extensions

La pèrdua de triplets s'ha ampliat per mantenir simultàniament una sèrie d'ordres de distància optimitzant un grau de rellevància continu amb una cadena (és a dir, escala ) de desigualtats de distància. Això condueix a Ladder Loss, que s'ha demostrat que ofereix millores de rendiment de la incrustació visual-semàntica per aprendre a classificar les tasques.
En el processament del llenguatge natural, la pèrdua de triplets és una de les funcions de pèrdua considerades per a l'ajustament BERT a l'arquitectura SBERT.
Altres extensions impliquen especificar diversos negatius (pèrdua de classificació de diversos negatius).

## Referències

* ↑ «Triplet Loss: Intro, Implementation, Use Cases» (en anglès). [Consulta: 10 març 2025].
* ↑ Sarıgöz, Yusuf. «Triplet Loss - Advanced Intro» (en anglès americà), 24-03-2022. [Consulta: 10 març 2025].
* ↑ Ph.D, Jyoti Dabass. «Triplet Loss Demystified: A Beginner’s Guide to Image Matching with Batch Tricks» (en anglès), 08-08-2024. [Consulta: 10 març 2025].
* ↑ «What is Triplet Loss? Its Purpose in Training ML Models» (en anglès). [Consulta: 10 març 2025].
* ↑ «Triplet Loss: Vector Collapse Prevention — Quaterion documentation» (en anglès). [Consulta: 10 març 2025].
* ↑ Zhou, Mo; Niu, Zhenxing; Wang, Le; Gao, Zhanning; Zhang, Qilin Proceedings of the AAAI Conference on Artificial Intelligence, 34, 7, 03-04-2020, pàg. 13050–13057. DOI: 10.1609/aaai.v34i07.7006. ISSN: 2374-3468 [Consulta: free].