Forstå Ranking Tap, Kontrastive Tap, Margin Tap, Triplet Tap, Hengsel Tap og alle de forvirrende navnene

Etter suksessen med innlegget Mitt Forstå Kategorisk Kryss-Entropi Tap, Binær Kryss-Entropi Tap, Softmax Tap, Logistisk Tap, Fokal Tap og alle de forvirrende navnene, og etter å ha sjekket At Triplet Tap overgår Kryss-Entropi Tap i mitt hovedforskningstema (Multi-Modal Henting) bestemte jeg meg for å skrive et lignende innlegg som forklarte Ranking Tap funksjoner.

Rangeringstap brukes i ulike områder, oppgaver og nevrale nettverkoppsett(Som Siamesiske Nett eller Triplettnett). Det er derfor de får forskjellige navn som Kontrastivt Tap, Margin Tap, Hengsel Tap eller Triplet Tap.

Ranking Loss Functions: Metric Learning

I Motsetning til andre tapsfunksjoner, Som For Eksempel Tap På Tvers Av Entropi Eller Gjennomsnittlig Kvadratfeiltap, hvis mål er å lære å forutsi direkte en etikett, en verdi eller et sett eller verdier gitt en inngang, er målet Med Ranking Loss å forutsi relative avstander mellom innganger. Denne oppgaven kalles ofte metrisk læring.

Ranking Loss funksjoner er svært fleksible når det gjelder treningsdata: Vi trenger bare en likhetsscore mellom datapunkter for å bruke dem. Den poengsummen kan være binær (lik / ulik). For eksempel, tenk deg et ansiktsverifiseringsdatasett, hvor vi vet hvilke ansiktsbilder som tilhører samme person (lignende), og hvilke ikke (ulik). Ved Hjelp Av En Rangering Tap funksjon, kan vi trene EN CNN å antyde om to ansikt bilder tilhører samme person eller ikke.

for å bruke En Ranking Loss-funksjon trekker vi først ut funksjoner fra to (eller tre) inndatapunkter og får en innebygd representasjon for hver av dem. Deretter definerer vi en metrisk funksjon for å måle likheten mellom disse representasjonene, for eksempel euklidisk avstand. Til slutt trener vi funksjonen ekstraktorer for å produsere lignende representasjoner for begge innganger, i tilfelle inngangene er like, eller fjerne representasjoner for de to inngangene, i tilfelle de er forskjellige.
vi bryr oss ikke engang om verdiene til representasjonene, bare om avstandene mellom dem. Denne treningsmetodikken har imidlertid vist seg å produsere kraftige representasjoner for ulike oppgaver.

Ranking Tap Formulering

Forskjellige navn brukes For Ranking Tap, men deres formulering er enkel og invariant i de fleste tilfeller. Vi skiller mellom To Typer Rangeringstap for to forskjellige oppsett: Når vi bruker par treningsdatapunkter eller trillinger av treningsdatapunkter.
begge sammenligner avstander mellom representasjoner av treningsdataprøver.

hvis du foretrekker videoformat, laget jeg en video ut av dette innlegget. Også tilgjengelig på spansk:

Parvis Rangering Tap

Eksempel på en parvis rangering tap oppsett for å trene en netto for bilde ansiktsverifisering. I dette oppsettet deles vektene Til Cnn-Ene. Vi kaller det siamese garn. Men et parvis rangeringstap kan brukes i andre oppsett, eller med andre garn.

for positive par vil tapet være \(0\) bare når nettet produserer representasjoner for begge de to elementene i paret uten avstand mellom dem, og tapet (og derfor den tilsvarende nettoparameteroppdateringen) vil øke med den avstanden.

for negative par vil tapet være \(0\) når avstanden mellom representasjonene av de to parelementene er større enn marginen \(m\). Men når den avstanden ikke er større enn \(m\), vil tapet være positivt, og nettoparametere vil bli oppdatert for å produsere fjernere representasjon for de to elementene. Tapsverdien vil være høyst \(m\), når avstanden mellom \(r_a\) og \(r_n\) er \ (0\). Funksjonen til marginen er at når representasjonene produsert for et negativt par er fjernt nok, blir ingen innsats bortkastet på å forstørre den avstanden, slik at videre trening kan fokusere på vanskeligere par.

Triplet Rangering Tap

eksempel på en triplet rangering tap oppsett for å trene et nett for bilde ansikt verifisering. I dette oppsettet deles vektene Til Cnn-Ene. Vi kaller det triple nets.

la oss analysere 3 situasjoner av dette tapet:

Kilde: https://omoindrot.github.io/triplet-loss. Representasjon av tre “typer negativer” for et anker og positivt par.

Negativer Utvalg

en viktig beslutning av en trening Med Triplet Rangering Tap er negativer utvalg eller triplet mining. Den valgte strategien vil ha stor innvirkning på treningseffektiviteten og den endelige ytelsen. En åpenbar forståelse er at trening Med Enkle Trillinger bør unngås, siden deres resulterende tap vil være \(0\).

Første strategier som brukes offline triplet mining, noe som betyr at trillinger er definert i begynnelsen av treningen, eller på hver epoke. Senere ble online triplet mining, noe som betyr at tripler er definert for hver batch under treningen, foreslått og resulterte i bedre treningseffektivitet og ytelse.
den optimale måten for negativer utvalg er svært avhengig av oppgaven. Men jeg kommer ikke til å komme inn i det i dette innlegget, siden målet er bare oversikt over de forskjellige navnene og tilnærmingene for Rangering Av Tap. Se Oliver moindrot blogginnlegg for en dypere analyse på triplet mining.

Triplett Tap i dyp læring ble introdusert I Læring Finkornet Bilde Likhet Med Deep Ranking Og FaceNet: En Enhetlig Innebygging For Ansiktsgjenkjenning og Clustering.

denne github inneholder noen interessante tomter fra en modell trent PÅ MNIST Med Kryss-Entropi Tap, Parvis Rangering Tap og Triplet Rangering Tap, Og Pytorch kode for disse treningene.

Andre navn som brukes For Rangeringstap

Rangeringstap er i hovedsak de som er forklart ovenfor, og brukes i mange forskjellige applikasjoner med samme formulering eller mindre variasjoner. Imidlertid brukes forskjellige navn for dem, noe som kan være forvirrende. Her forklarer jeg hvorfor disse navnene brukes.

  • Tap Av Rangering: Dette navnet kommer fra feltet informasjonsinnhenting, der vi ønsker å trene modeller for å rangere elementer i en bestemt rekkefølge.
  • Margin Tap: Dette navnet kommer fra det faktum at disse tapene bruker en margin for å sammenligne prøver representasjoner avstander.
  • Kontrastivt Tap: Kontrastivt refererer til det faktum at disse tapene beregnes i kontrast til to eller flere datapunktrepresentasjoner. Dette navnet brukes ofte Til Parvis Rangering Tap, men jeg har aldri sett å bruke det i et oppsett med trillinger.
  • Triplet Tap: ofte brukt som tap navn når triplet trening parene er ansatt.
  • Hengsel tap: Også kjent som max-margin mål. Den brukes til å trene Svm for klassifisering. Den har en lignende formulering i den forstand at den optimaliserer til en margin. Derfor er dette navnet noen ganger brukt til Å Rangere Tap.

Siamese og triplettnett

Siamese og triplettnett er treningsoppsett hvor Parvis Rangeringstap og Triplett Ranking Tap brukes. Men disse tapene kan også brukes i andre oppsett.
i disse oppsettene beregnes representasjonene for treningsprøvene i paret eller tripletten med identiske garn med delte vekter (med samme CNN).

Siamese Garn

er bygget av to identiske Cnn-Er med delte vekter (begge Cnn-Er har samme vekter). Hver av disse nettene behandler et bilde og produserer en representasjon. Disse representasjonene sammenlignes og en avstand mellom dem beregnes. Deretter brukes Et Parvis Rangeringstap til å trene nettverket, slik at avstanden mellom representasjoner produsert av lignende bilder er liten, og avstanden mellom representasjoner av dis-lignende bilder er stor.

siden i et siamesisk nettoppsett beregnes representasjonene for begge elementene i paret av samme CNN, som \(f (x)\) SOM CNN, kan vi skrive Parvis Ranking Tap som:

Triplettnett

ideen ligner på et siamesisk nett, men et triplettnett har tre grener (tre Cnn-Er med delte vekter). Modellen er opplært ved samtidig å gi et positivt og et negativt bilde til det tilsvarende ankerbildet, og ved Hjelp av Et Triplett Ranking Tap. Det gjør at nettet lærer bedre hvilke bilder som er like og forskjellige for ankerbildet.

når det gjelder triplettnett, siden samme CNN \(f(x)\) brukes til å beregne representasjonene for de tre triplettelementene, kan vi skrive Triplett Ranking Loss som :

Ranking Tap For Multi-Modal Henting

i min forskning har jeg brukt Triplet Ranking Tap for multimodal henting av bilder og tekst. Treningsdataene består av et datasett av bilder med tilhørende tekst. Målet er å lære embeddings av bildene og ordene i samme plass for kryss-modal gjenfinning. For å gjøre det, vi først lære og fryse ord embeddings fra utelukkende teksten, ved hjelp av algoritmer Som Word2Vec eller Hanske. Deretter tar vi sikte på å trene EN CNN for å legge inn bildene i samme rom: Ideen er å lære å legge inn et bilde og tilhørende bildetekst i samme punkt i multimodal embedding plass.

den første tilnærmingen til å gjøre det, var å trene EN CNN for å direkte forutsi tekstinnbygginger fra bilder ved Hjelp av Et Kryss-Entropi-Tap. Resultatene var fine, men senere fant vi ut at bruk Av En Triplett Rangering tap resultater var bedre.

oppsettet er følgende: vi bruker faste tekstinnbygginger (Hanske) og vi lærer bare bildepresentasjonen (CNN). Så ankerprøven \(a\) er bildet, den positive prøven \(p\) er teksten knyttet til bildet, og den negative prøven \(n\) er teksten til et annet “negativt” bilde. For å velge den negative teksten, utforsket vi forskjellige online negative gruve strategier, ved hjelp av avstandene I Hanskerommet med den positive teksten innebygging. Trillinger gruvedrift er spesielt fornuftig i dette problemet, siden det ikke er etablert klasser. Gitt mangfoldet av bildene, har vi mange enkle trillinger. Men vi må være forsiktige med å gruve hardt negativer, siden teksten som er knyttet til et annet bilde, også kan være gyldig for et ankerbilde.

Triplet Rangering Tap trening av en multi-modal gjenfinning rørledning. Teksten Hanske embeddings er løst, og vi trener CNN for å legge inn bildet nærmere sin positive tekst enn til den negative teksten.

Ved hjelp av dette oppsettet beregnet vi noen kvantitative resultater for å sammenligne Triplet Ranking Loss training med Cross-Entropy Loss training. Jeg skal ikke forklare eksperimentdetaljer her, men oppsettet er det samme som det som brukes i (papir, bloggpost). I utgangspunktet gjør vi noen tekstforespørsler og evaluerer bildet ved å hente tekst når vi lærer Fra Sosiale Medier på en selvstyrt måte. Resultater ved Hjelp Av En Triplet Rangering Tap er betydelig bedre enn å bruke En Cross-Entropi Tap.

Bildeinnhenting av tekst gjennomsnittlig presisjon På InstaCities1M.

En annen fordel ved å bruke Et Triplett Ranking Tap i stedet For Et Kryss-Entropi Tap eller Gjennomsnittlig Kvadratfeiltap for å forutsi tekstinnbygginger, er at vi kan legge til side forhåndsberegnede og faste tekstinnbygginger, som i regresjonssaken bruker vi som grunn sannhet for ut modeller. Det gjør det mulig å bruke RNN, LSTM til å behandle teksten, som vi kan trene sammen MED CNN, og som fører til bedre representasjoner.

Lignende tilnærminger brukes til å trene multimodale hentesystemer og bildesystemer I COCO, for eksempel her inne.

Rangering Tap Lag I Dyp Læring Rammer

Caffe

  • Constrastive Tap Lag. Begrenset Til Parvis Rangering tap beregning. Kan for eksempel brukes til å trene siamesiske nettverk.

  • PyCaffe Triplet Rangering Tap Lag. Av David Lu å trene triplet nettverk.

PyTorch

  • CosineEmbeddingLoss. Det er Et Parvis Rangeringstap som bruker cosinusavstand som avstandsmåling. Innganger er funksjonene til parelementene, etiketten som indikerer om det er et positivt eller et negativt par, og marginen.

  • MarginRankingLoss. Ligner på den tidligere, men bruker euklidisk avstand.

  • TripletMarginLoss. En Triplet Rangering Tap ved hjelp av euklidsk avstand.

TensorFlow

  • kontrastive_loss. Parvis Rangering Tap.

  • triplet_semihard_loss. Triplet tap med semi-hard negativ gruvedrift.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.