Triplettverlust
Triplet-Verlust ist eine Verlustfunktion für Deep Learning, die sich auf die Minimierung der Distanz zwischen dem Ankerpunkt und der positiven Probe mit derselben Identität und die Minimierung der Distanz zwischen dem Ankerpunkt und der negativen Probe mit unterschiedlichen Identitäten bezieht.
Der Begriff „Triplett“ bezieht sich auf drei Datenpunkte:Ankerpunkt,PünktlichkeitUndNegativer Punkt. Der Anker ist der zentrale Datenpunkt, an dem die Einbettung gelernt werden soll, die positiven Punkte sind Datenpunkte, die dem Anker ähnlich sind (z. B. Bilder derselben Person), und die negativen Punkte sind Datenpunkte, die sich völlig vom Anker unterscheiden. Unterscheidet sich von Ankern (z. B. Bilder von nicht verwandten Personen).
Mathematisch kann der Triplettverlust wie folgt ausgedrückt werden:

- f() stellt die Funktion dar, die für die Generierung der Einbettung verantwortlich ist.
- a = Ankerbild
- p steht für positives Bild
- n steht für Negativbild
- Ɑ stellt den Rand-Hyperparameter dar, der die Untergrenze des Intervalls zwischen positiven und negativen Einbettungsabständen festlegt.
Der Kern der Triplett-Verlustfunktion liegt im Rand α, einem Hyperparameter, der die erforderliche Mindestdifferenz zwischen den quadrierten Abständen der positiven und negativen Ankereinbettungen festlegt. Durch die Auferlegung dieses Spielraums fördert die Verlustfunktion eine ideale Verteilung zwischen positiven und negativen Abständen und schafft so eine Umgebung, die das Erlernen aussagekräftiger Darstellungen fördert. Diese positiven und negativen Distanzen werden mithilfe einer Distanzmetrik (normalerweise der euklidischen Distanz) berechnet.
Triplet Loss basiert auf dem grundlegenden Ziel, das Einbetten der intrinsischen Beziehungen zwischen wichtigen Datenpunkten zu erlernen. Dies unterscheidet sich von herkömmlichen Verlustfunktionen, die hauptsächlich für Aufgaben wie Klassifizierung oder Wertvorhersage konzipiert sind. In Szenarien wie der Gesichtserkennung, in denen subtile Unterschiede in den Gesichtszügen entscheidend sind, sind Einbettungen (oder Kodierungen), die Personen auf eine Weise unterscheiden können, die mit Rohpixeln nicht ohne Weiteres erreichbar ist, von unschätzbarem Wert.
Triplet Loss stellt eine Lösung für diese Herausforderung dar. Indem wir das neuronale Netzwerk dazu anregen, Einbettungen basierend auf dem Kontext positiver und negativer Beispiele im Verhältnis zu Ankerinstanzen zu lernen, öffnen wir die Tür zum Erhalt diskriminierender Merkmale, die von Natur aus die Essenz von Datenbeziehungen erfassen.
Dreifache Auswahlstrategie
Die Wahl des richtigen Tripletts ist für die Wirksamkeit von Triplet Loss von entscheidender Bedeutung. In der Praxis kann die zufällige Auswahl von Tripletts zu langsamer Konvergenz oder suboptimalen Lösungen führen. Daher werden mehrere Strategien angewendet, um informative Drillinge effektiv auszuwählen:
- Online-Triplett-Mining:Anstatt alle möglichen Triplets zu verwenden, wählt das Online-Triplet-Mining Triplets basierend auf dem Verlustwert aus. Für die Gradientenberechnung werden nur die anspruchsvollsten Tripletts verwendet, also solche mit Verlustwerten nahe Null. Dieser Ansatz beschleunigt die Konvergenz und konzentriert den Lernprozess auf schwierige Beispiele.
- Hard Negative Mining:Die für das Triplett ausgewählten negativen Proben sollten schwieriger von den Ankerproben zu unterscheiden sein als die positiven Proben. Beim Hard Negative Mining werden negative Beispiele ausgewählt, die den Grenzwert am stärksten verletzen. Dadurch wird sichergestellt, dass das Netzwerk aus schwierigen Fällen effektiver lernt.
- Halbharte Negativausgrabung:Ziel ist es, ein Gleichgewicht zwischen zufällig ausgewählten Negativen und harten Negativen zu finden. Ein halbhartes Negativ ist ein Negativ, das weiter vom Ankerpunkt entfernt ist als ein Positiv, aber dennoch einen positiven Verlustwert aufweist. Sie bieten einen Mittelweg, der dem Netzwerk hilft, besser zu verallgemeinern, ohne zu einer einfachen Lösung zu konvergieren.
Triplet-Loss-Variante
Die Grundformel von Triplet Loss wurde mehrfach geändert und verbessert, um ihre Wirksamkeit zu verbessern:
- Batch-Schwerpunkt-Triplettverlust:Anstatt für jedes positive Ankerpaar das schwierigste negative Beispiel auszuwählen, berücksichtigt diese Methode die schwierigsten negativen Beispiele in einem Stapel von Trainingsbeispielen. Dadurch werden Variationen innerhalb einer Charge berücksichtigt und die Rechenleistung kann verbessert werden.
- Kontrastverlust:Der Triplettverlust kann als Erweiterung des Kontrastverlusts betrachtet werden, wobei anstelle von Tripletts Paare verankerter positiver und verankerter negativer Beispiele berücksichtigt werden.
- Vierfacher Verlust:Bei dieser Erweiterung wird dem Triplett ein zweites positives Beispiel hinzugefügt, wodurch die Beziehung zwischen dem Anker und dem positiven Beispiel weiter betont wird.
- Proxy-basierte Verluste:Bei agentenbasierten Methoden wird eine Reihe von Agentenvektoren gelernt, die unterschiedliche Kategorien darstellen. Diese Proxys fungieren als Orientierungspunkte im Einbettungsraum und erleichtern die Bildung von Tripletts und das Erlernen aussagekräftiger Darstellungen.
Anwendung des Triplettverlusts
Triplet Loss findet Anwendung in verschiedenen Bereichen, insbesondere wenn das Erlernen aussagekräftiger Einbettungen entscheidend ist:
- Gesichtserkennung: Eine der ersten Anwendungen von Triplet Loss war im Bereich der Computervision, insbesondere der Gesichtserkennung. Durch das Erlernen von Einbettungen, die die Varianz innerhalb einer Person minimieren und die Varianz zwischen Personen maximieren, hilft Triplet Loss dabei, robuste und diskriminierende Gesichtseinbettungen zu erstellen.
- Bildabruf: Triplet Loss kann zum Erstellen inhaltsbasierter Bildabrufsysteme verwendet werden. Bilder werden als Einbettungen kodiert und beim Abrufen ähnlicher Bilder wird es zum Problem, Einbettungen zu finden, die der Einbettung des Abfragebildes sehr ähnlich sind.
- Neuidentifizierung der Person:In Szenarien wie der Videoüberwachung kann der Triplettverlust genutzt werden, um Modelle zu entwickeln, die dieselbe Person in verschiedenen Kameraansichten erkennen können, selbst bei unterschiedlicher Beleuchtung und Pose.
- Informationsabruf:Bei der Verarbeitung natürlicher Sprache kann der Triplet-Verlust angepasst werden, um Einbettungen von Textdokumenten zu lernen und so eine auf Ähnlichkeiten basierende Suche und Clusterung zu ermöglichen.
Verweise
【1】https://encord.com/glossary/triplet-loss-definition/