Forståelse Ranking tab, Contrastive tab, Margin tab, Triplet tab, hængsel tab og alle de forvirrende navne

efter succesen med mit indlæg forståelse kategorisk Cross-entropi tab, binært Cross-entropi tab, Softmaks tab, logistisk tab, fokalt tab og alle de forvirrende navne, og efter at have kontrolleret, at Triplet tab overgår Cross-entropi tab i mit hovedforskningsemne (Multi-Modal hentning) besluttede jeg at skrive et lignende indlæg, der forklarede Ranking tab funktioner.

Ranking tab bruges i forskellige områder, opgaver og neurale netværk opsætninger (som Siamese net eller Triplet Net). Derfor modtager de forskellige navne som kontrastivt tab, Margintab, Hængseltab eller Triplet-tab.

rangering af Tabsfunktioner: metrisk læring

i modsætning til andre tabsfunktioner, såsom tab på tværs af entropi eller gennemsnitligt Kvadratfejlstab, hvis mål er at lære at forudsige direkte en etiket, en værdi eller et sæt eller værdier, der er givet et input, er målet med rangering af tab at forudsige relative afstande mellem input. Denne opgave kaldes ofte metrisk læring.

Ranking tab funktioner er meget fleksible med hensyn til træningsdata: vi har bare brug for en lighedsscore mellem datapunkter for at bruge dem. Denne score kan være binær (lignende / ulige). Forestil dig som et eksempel et datasæt til ansigtsverifikation, hvor vi ved, hvilke ansigtsbilleder der hører til den samme person (lignende), og hvilke ikke (forskellige). Ved hjælp af en Rangeringstabsfunktion kan vi træne en CNN til at udlede, om to ansigtsbilleder tilhører den samme person eller ej.

for at bruge en Ranking Tab funktion vi først udtrække funktioner fra to (eller tre) input datapunkter og få en integreret repræsentation for hver af dem. Derefter definerer vi en metrisk funktion til måling af ligheden mellem disse repræsentationer, for eksempel euklidisk afstand. Endelig træner vi funktionsekstraktorerne til at producere lignende repræsentationer for begge indgange, hvis indgangene er ens eller fjerne repræsentationer for de to indgange, hvis de er forskellige.
vi er ikke engang interesserede i repræsentationernes værdier, kun om afstanden mellem dem. Denne træningsmetode har imidlertid vist sig at producere stærke repræsentationer for forskellige opgaver.

Ranking tab formulering

forskellige navne bruges til Ranking tab, men deres formulering er enkel og invariant i de fleste tilfælde. Vi skelner mellem to slags Rangeringstab for to forskellige opsætninger: når vi bruger par træningsdatapunkter eller trillinger af træningsdatapunkter.
begge sammenligner afstande mellem repræsentationer af træningsdataprøver.

hvis du foretrækker videoformat, lavede jeg en video ud af dette indlæg. Fås også på spansk:

parvis Ranking tab

eksempel på en parvis placering af tabsopsætning for at træne et net til verifikation af billedansigt. I denne opsætning deles vægten af CNNs. Vi kalder det siamesiske net. Men en parvis ranking tab kan bruges i andre opsætninger, eller med andre net.

for positive par vil tabet kun være \(0\), når nettet producerer repræsentationer for begge de to elementer i parret uden afstand mellem dem, og tabet (og derfor den tilsvarende netparameteropdatering) vil stige med den afstand.

for negative par vil tabet være \(0\), når afstanden mellem repræsentationerne af de to parelementer er større end margenen \(m\). Men når denne afstand ikke er større end \(m\), vil tabet være positivt, og nettoparametre vil blive opdateret for at producere mere fjern repræsentation for disse to elementer. Tabsværdien vil højst være \(m\), når afstanden mellem \(r_a\) og \(r_n\) er \(0\). Margenens funktion er, at når repræsentationerne produceret for et negativt par er fjernt nok, spildes ingen indsats for at udvide denne afstand, så videreuddannelse kan fokusere på vanskeligere par.

Triplet Ranking tab

eksempel på en triplet ranking tab setup til at træne et net til billede ansigt verifikation. I denne opsætning deles vægten af CNNs. Vi kalder det triple net.

lad os analysere 3 situationer med dette tab:

kilde: https://omoindrot.github.io/triplet-loss. Repræsentation af tre” typer af negativer ” for et anker og positivt par.

negativer udvælgelse

en vigtig beslutning af en uddannelse med Triplet Ranking tab er negativer udvælgelse eller triplet minedrift. Den valgte strategi vil have stor indflydelse på træningseffektiviteten og den endelige præstation. En åbenbar forståelse er, at træning med lette tripletter bør undgås, da deres resulterende tab vil være \(0\).

første strategier brugt offline triplet minedrift, hvilket betyder, at tripletter er defineret i begyndelsen af træningen eller ved hver epoke. Senere, online triplet minedrift, hvilket betyder, at tripletter er defineret for hver batch under træningen, blev foreslået og resulterede i bedre træningseffektivitet og ydeevne.
den optimale måde at vælge negativer på er meget afhængig af opgaven. Men jeg vil ikke komme ind på det i dette indlæg, da dets mål kun er Oversigt over de forskellige navne og tilgange til rangering af tab. Se Oliver moindrot blogindlæg for en dybere analyse af triplet minedrift.

Triplet-tab i dyb læring blev introduceret i læring af finkornet Billedlighed med dyb placering og FaceNet: en samlet indlejring til ansigtsgenkendelse og klyngedannelse.

denne github indeholder nogle interessante plot fra en model, der er trænet på MNIST med tab på tværs af entropi, parvis Rangeringstab og tab af Tripletrangering, og Pytorch-kode til disse træninger.

andre navne, der bruges til rangering af tab

Rangeringstab er essentialy dem, der er forklaret ovenfor, og bruges i mange forskellige aplikationer med den samme formulering eller mindre variationer. Der bruges dog forskellige navne til dem, hvilket kan være forvirrende. Her forklarer jeg, hvorfor disse navne bruges.

  • Ranking tab: Dette navn kommer fra feltet informationssøgning, hvor vi vil træne modeller til at rangere varer i en bestemt rækkefølge.
  • Margintab: dette navn stammer fra det faktum, at disse tab bruger en margen til at sammenligne prøver repræsentationer afstande.
  • Contrastive Loss: Contrastive refererer til det faktum, at disse tab beregnes kontrasterende to eller flere datapunkter repræsentationer. Dette navn bruges ofte til Parvis Ranking tab, men jeg har aldrig set bruge det i en opsætning med trillinger.
  • Triplet-tab: bruges ofte som tabsnavn, når triplet-træningspar anvendes.
  • Hængseltab: også kendt som maks-margin-mål. Det bruges til træning af SVM ‘ er til klassificering. Den har en lignende formulering i den forstand, at den optimerer indtil en margen. Derfor bruges dette navn undertiden til rangering af tab.

Siamese og tripletnet

Siamese og tripletnet er træningsopsætninger, hvor parvis Rangeringstab og Tripletrangeringstab anvendes. Men disse tab kan også bruges i andre opsætninger.
i disse opsætninger beregnes repræsentationerne for træningsprøverne i parret eller triplet med identiske net med delte vægte (med samme CNN).

Siamesiske Net

er bygget af to identiske CNN ‘er med delte vægte (begge CNN’ er har de samme vægte). Hvert af disse net behandler et billede og producerer en repræsentation. Disse repræsentationer sammenlignes, og en afstand mellem dem beregnes. Derefter bruges et parvis Rangeringstab til at træne netværket, således at afstanden mellem repræsentationer produceret af lignende billeder er lille, og afstanden mellem repræsentationer af dis-Lignende Billeder er stor.

Da repræsentationerne for begge elementer i parret i en siamesisk netopsætning beregnes af det samme CNN, idet det er \(f)\) At CNN, kan vi skrive det parvise Rangeringstab som:

Tripletnet

ideen ligner et siamesisk net, men et tripletnet har tre grene (tre CNN ‘ er med delte vægte). Modellen trænes ved samtidig at give et positivt og et negativt billede til det tilsvarende ankerbillede og ved hjælp af et Triplet Ranking tab. Det lader nettet lære bedre, hvilke billeder der ligner og adskiller sig fra ankerbilledet.

i tilfælde af tripletnet, da det samme CNN \(f)\) bruges til at beregne repræsentationerne for de tre tripletelementer, kan vi skrive Tripletrangeringstabet som :

Ranking tab for Multimodal hentning

i min forskning har jeg brugt Triplet Ranking tab til multimodal hentning af billeder og tekst. Træningsdataene består af et datasæt af billeder med tilhørende tekst. Målet er at lære indlejringer af billederne og ordene i samme rum til tværmodal hentning. For at gøre det lærer vi først og fryser ordindlejringer udelukkende fra teksten ved hjælp af algoritmer som f.eks Ord2vec eller handske. Derefter, vi sigter mod at træne en CNN til at integrere billederne i det samme rum: Ideen er at lære at integrere et billede og dets tilhørende billedtekst på samme punkt i det multimodale indlejringsrum.

den første tilgang til at gøre det var at træne en CNN til direkte at forudsige tekstindlejringer fra billeder ved hjælp af et tab på tværs af entropi. Resultaterne var rart, men senere fandt vi ud af, at ved hjælp af en Triplet Ranking tab resultater var bedre.

opsætningen er følgende: Vi bruger faste tekstindlejringer (handske), og vi lærer kun billedrepræsentationen (CNN). Så ankerprøven \(A\) er billedet, den positive prøve \(p\) er teksten, der er knyttet til det billede, og den negative prøve \(n\) er teksten til et andet “negativt” billede. For at vælge den negative tekst udforskede vi forskellige online negative minestrategier ved hjælp af afstandene i handskerummet med den positive tekstindlejring. Trillinger minedrift er særlig fornuftig i dette problem, da der ikke er etablerede klasser. I betragtning af mangfoldigheden af billederne har vi mange lette tripletter. Men vi skal være forsigtige minedrift hårde negativer, da teksten, der er knyttet til et andet billede, også kan være gyldig for et ankerbillede.

Triplet Ranking tab uddannelse af en multimodal hentning pipeline. Teksthandskeindlejringerne er faste, og vi træner CNN til at integrere billedet tættere på dets positive tekst end den negative tekst.

ved hjælp af denne opsætning beregnede vi nogle kvantitative resultater for at sammenligne Triplet Ranking Tabstræning med Cross-entropi Tabstræning. Jeg vil ikke forklare eksperimentoplysninger her, men opsætningen er den samme som den, der bruges i (papir, blogpost). Grundlæggende foretager vi nogle tekstforespørgsler og evaluerer billedet ved hjælp af teksthentningsydelse, når vi lærer af sociale mediedata på en selvovervåget måde. Resultater ved hjælp af en Triplet Ranking tab er betydeligt bedre end at bruge en Cross-entropi tab.

Billede hentning af tekst gennemsnitlig præcision på InstaCities1M.

en anden fordel ved at bruge et Triplet Ranking tab i stedet for et Cross-entropi tab eller gennemsnitligt firkantet Fejltab for at forudsige tekstindlejringer, er, at vi kan lægge forudberegnede og faste tekstindlejringer til side, som i regressionssagen bruger vi som ground-truth for out-modeller. Det gør det muligt at bruge RNN, LSTM til at behandle teksten, som vi kan træne sammen med CNN, og som fører til bedre repræsentationer.

lignende tilgange bruges til træning af multimodale hentningssystemer og billedtekstsystemer i COCO, for eksempel herinde.

Ranking tab lag i dyb læring rammer

Caffe

  • Constrastive tab lag. Begrænset til Parvis Ranking tab beregning. Bruges til at træne siamesiske netværk.

  • PyCaffe Triplet Ranking Tab Lag. Af David Lu at træne triplet netværk.

PyTorch

  • CosineEmbeddingLoss. Det er et parvis Ranking tab, der bruger cosinus afstand som afstandsmåling. Input er funktionerne i parelementerne, etiketten, der angiver, om det er et positivt eller et negativt par, og margenen.

  • MarginRankingLoss. Ligner den tidligere, men bruger euklidisk afstand.

  • TripletMarginLoss. En Triplet Ranking tab ved hjælp euklidisk afstand.

Tensorstrøm

  • contrastive_loss. Parvis Ranking Tab.

  • triplet_semihard_loss. Triplet tab med semi-hård negativ minedrift.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.