Understanding Ranking Loss, Contrastive Loss, Marginal Loss, Triplet Loss, sarana Loss and all those confusing names

after the success of my post Understanding Categorical Cross-Entropy Loss, Binary Cross-Entropy Loss, Softmax Loss, Logistic Loss, Focal Loss and all those confusing names, and after checking that Triplet Loss outperforms Cross-Entropy Loss in my main research topic (Multi-Modal Retrieval) I decided to write a similar post explaining Ranking loss functions.

Ranking-häviöitä käytetään eri alueilla, tehtävissä ja neuroverkkojen asetelmissa (kuten siamilaiset verkot tai Triplettiverkot). Siksi ne saavat eri nimiä, kuten Contrastive Loss, Marginal Loss, Hinge Loss tai Triplet Loss.

Tappiofunktioiden paremmuusjärjestys: metrinen oppiminen

toisin kuin muut tappiofunktiot, kuten ristiin entropian menetys tai keskimääräinen Neliövirhehäviö, joiden tavoitteena on oppia ennustamaan suoraan merkintä, arvo tai joukko tai arvot, jotka on annettu syöte, häviöiden paremmuusjärjestyksen tavoitteena on ennustaa syötteiden välisiä suhteellisia etäisyyksiä. Tämä tehtävä, jos sitä usein kutsutaan metriseksi oppimiseksi.

ranking loss-toiminnot ovat hyvin joustavia harjoitustietojen suhteen: tarvitsemme vain samankaltaisuuspisteet käyttääksemme niitä. Pisteet voivat olla binäärisiä (samanlaisia / erilaisia). Kuvitelkaa esimerkiksi kasvojen todentamisaineisto, jossa tiedämme, mitkä kasvokuvat kuuluvat samalle henkilölle (samanlainen) ja mitkä eivät (erilainen). Käyttämällä Ranking tappio toiminto, voimme kouluttaa CNN päätellä, jos kaksi kasvokuvaa kuuluvat samalle henkilölle vai ei.

käyttääksemme Ranking Loss-funktiota poimimme ensin ominaisuuksia kahdesta (tai kolmesta) syöttödatapisteestä ja saamme niistä jokaisesta upotetun edustuksen. Sitten määrittelemme metrisen funktion, jolla mitataan samankaltaisuutta näiden esitysten välillä, esimerkiksi euklidian etäisyys. Lopuksi koulutamme ominaisuusloukut tuottamaan samanlaisia esityksiä molemmille panoksille, jos panokset ovat samanlaisia, tai kaukaisia esityksiä kahdelle panokselle, jos ne ovat erilaisia.
emme edes välitä edustustojen arvoista, ainoastaan niiden välisistä etäisyyksistä. Tämä koulutusmenetelmä on kuitenkin osoittanut tuottavansa tehokkaita representaatioita eri tehtäviin.

Ranking-Häviöformulaatio

häviöiden paremmuusjärjestyksestä käytetään eri nimiä, mutta niiden muotoilu on useimmissa tapauksissa yksinkertainen ja invariantti. Erotamme kahdenlaisia Ranking tappiot kaksi erilaista asetelmia: kun käytämme pareittain koulutuksen tiedot pistettä tai kolmoset koulutuksen tiedot pistettä.
molemmat vertaavat koulutustietojen otosten kuvausten välisiä etäisyyksiä.

jos haluat videon formaatin, tein videon tästä postauksesta. Saatavilla myös espanjaksi:

Pairwise Ranking Loss

esimerkki pairwise ranking loss setup kouluttaa verkon kuvan kasvot todentamista. Tässä setup, painot CNNs jaetaan. Kutsumme sitä siamilaisiksi verkoiksi. Mutta pairwise ranking tappio voidaan käyttää muissa asetelmia, tai muiden verkkojen.

positiivisille pareille tappio on \(0\) vain silloin, kun netto tuottaa edustustot molemmille pareille, joiden välillä ei ole etäisyyttä, ja tappio (ja siksi vastaava nettoparametrien päivitys) kasvaa kyseisen etäisyyden myötä.

negatiivisilla pareilla häviö on \(0\), kun kahden parielementin esitysten välinen etäisyys on suurempi kuin marginaali \(m\). Mutta kun tämä etäisyys ei ole suurempi kuin \(m\), tappio on positiivinen, ja nettoparametrit päivitetään tuottamaan etäisempi esitys näille kahdelle elementille. Tappion arvo on korkeintaan \(m\), kun \(r_a\) ja \(r_n\) välinen etäisyys on \(0\). Marginaalin funktio on se, että kun negatiiviselle parille tuotetut representaatiot ovat riittävän etäällä, tuon etäisyyden suurentamiseen ei tuhlata ponnistuksia, joten jatkokoulutuksessa voidaan keskittyä vaikeampiin pareihin.

triplatuplan Ranking-tappio

esimerkki triplet ranking loss setup kouluttaa verkon kuvan kasvot todentamista. Tässä setup, painot CNNs jaetaan. Kutsumme sitä kolmoisverkoksi.

analysoidaan 3 tilannetta tämän tappion:

lähde: https://omoindrot.github.io/triplet-loss. Kolmen “negatiivityypin” edustus ankkurille ja positiiviselle parille.

negatiivien valinta

tripletin Ranking-tappion kokeneen koulutuksen tärkeä päätös on negatiivien valinta tai tripletin louhinta. Valitulla strategialla on suuri vaikutus koulutuksen tehokkuuteen ja lopulliseen suorituskykyyn. Selvää on, että helpoilla kolmosilla treenaamista kannattaa välttää, sillä niiden menetys on \(0\).

ensimmäisissä strategioissa käytettiin offline-kolmiolouhintaa, mikä tarkoittaa, että kolmoset määritellään koulutuksen alussa tai jokaisella jaksolla. Myöhemmin ehdotettiin online triplet mining, eli kolmoset määritellään jokaiselle erälle koulutuksen aikana, ja tuloksena oli parempi harjoittelun tehokkuus ja suorituskyky.
optimaalinen tapa negatiivien valintaan riippuu suuresti tehtävästä. Mutta en aio saada sitä tässä viestissä, koska sen tavoitteena on vain yleiskatsaus eri nimiä ja lähestymistapoja Ranking tappiot. Katso Oliver moindrotin blogikirjoituksesta syvempi analyysi tripletin louhinnasta.

Triplet Loss in deep learning otettiin käyttöön hienorakeisen Kuvan samankaltaisuuden oppimisessa Deep rankingin ja Facenetin kanssa: yhtenäinen Upotus kasvojentunnistukseen ja klusterointiin.

tämä github sisältää mielenkiintoisia tontteja malli koulutettu Mnist Cross-Entropy Loss, Pairwise Ranking Loss ja Triplet Ranking Loss, ja Pytorch koodi näitä koulutuksia.

muut nimitykset, joita käytetään häviöiden luokittelusta

häviöiden paremmuusjärjestyksestä, ovat essentialistisesti edellä mainittuja, ja niitä käytetään monissa eri aplikaatioissa, joissa on sama muotoilu tai pieniä variaatioita. Niistä käytetään kuitenkin eri nimiä, mikä voi olla hämmentävää. Tässä selitän, miksi näitä nimiä käytetään.

  • Sijoitustappio: Nimi tulee tiedonhakukentästä, jossa halutaan kouluttaa malleja laittamaan kohteet tiettyyn järjestykseen.
  • Marginaalitappio: tämä nimi tulee siitä, että nämä häviöt käyttävät marginaalia otosten edustustojen etäisyyksien vertailuun.
  • Contrastive Loss: Contrastive tarkoittaa sitä, että nämä tappiot lasketaan vastakkain kahden tai useamman datapisteen esityksestä. Tätä nimeä käytetään usein Pairwise Ranking Loss, mutta en ole koskaan nähnyt käyttää sitä setup kolmoset.
  • Triplet Loss: käytetään usein häviön nimenä, kun käytetään triplet-harjoituspareja.
  • Saranahäviö: tunnetaan myös nimellä max-Marginal objective. Sitä käytetään SVMs: n kouluttamiseen luokittelua varten. Se on samanlainen muotoilu siinä mielessä, että se optimoi kunnes marginaali. Siksi tätä nimeä käytetään joskus tappioiden rankingissa.

siamilaiset ja triplettiverkot

siamilaiset ja triplettiverkot ovat harjoitusasetelmia, joissa käytetään Pairwise Ranking Loss-ja Triplet Ranking Loss-järjestelmiä. Mutta niitä tappioita voidaan käyttää myös muissa asetelmissa.
näissä asetelmissa pari-tai triplanäytteiden kuvaukset lasketaan identtisillä verkoilla jaetuilla painoilla (samalla CNN: llä).

siamilaiset verkot

on rakennettu kahdella samanlaisella Cnnn: llä, joilla on yhteiset painot (molemmissa Cnnn: issä on samat painot). Jokainen näistä verkoista käsittelee kuvan ja tuottaa esityksen. Näitä esityksiä verrataan ja niiden välinen etäisyys lasketaan. Sitten, Pairwise Ranking tappio käytetään kouluttaa verkon siten, että etäisyys edustustojen tuottaa samanlaisia kuvia on pieni, ja etäisyys edustustojen dis-samankaltaisia kuvia on suuri.

Koska siamilaisessa nettoasetuksessa parin molempien elementtien edustustot lasketaan samalla CNN: llä, ollen \(f (x)\) että CNN, voimme kirjoittaa Pairwisen Ranking-tappion seuraavasti:

Triplettiverkot

ajatus muistuttaa siamilaista verkkoa, mutta triplettiverkossa on kolme haaraa (kolme cnns: ää yhteispainoilla). Mallia koulutetaan antamalla vastaavalle ankkurikuvalle samanaikaisesti positiivinen ja negatiivinen kuva sekä käyttämällä tripletin Ranking-tappiota. Näin verkko oppii paremmin, mitkä kuvat ovat samanlaisia ja erilaisia kuin ankkurin kuva.

kun kyseessä on kolmileveysverkot, koska samaa CNN \(f (x)\) käytetään laskemaan edustustot kolmelle kolmileveyselementille, voidaan kirjoittaa Kolmileveysasteen tappio seuraavasti :

Ranking Loss for Multi-Modal Retrieval

in my research, I ‘ ve been using Triplet Ranking Loss for multimodal retrieval of pictures and text. Harjoitustiedot koostuvat kuvatiedostosta, johon liittyy tekstiä. Tavoitteena on opetella kuvien ja sanojen upotukset samassa tilassa ristiinmodaalista hakua varten. Tätä varten opettelemme ja jäädytämme sanojen upotukset pelkästään tekstistä käyttäen algoritmeja, kuten Word2Vec tai GloVe. Sitten aiomme kouluttaa CNN: n upottamaan kuvat samaan tilaan.: Ideana on oppia upottamaan kuva ja siihen liittyvä kuvateksti samaan kohtaan multimodaalisessa upotustilassa.

ensimmäinen lähestymistapa siihen oli CNN: n kouluttaminen ennustamaan suoraan tekstiemissioita kuvista ristiin entropian häviön avulla. Tulokset olivat mukavia, mutta myöhemmin selvisi, että käyttämällä tripletti Ranking tappio tulokset olivat parempia.

asetelma on seuraava: käytämme kiinteitä tekstiupotuksia (käsine) ja opettelemme vain kuvan esittämisen (CNN). Ankkurinäyte \(A\) on siis kuva, positiivinen näyte \(p\) on kuvaan liittyvä teksti ja negatiivinen näyte \(n\) on toisen “negatiivisen” kuvan teksti. Negatiivisen tekstin valitsemiseksi tutkimme erilaisia nettikieltolouhintastrategioita käyttäen Käsinetilan etäisyyksiä positiivisen tekstin upotuksella. Kolmosten louhinta on tässä ongelmassa erityisen järkevää, koska vakiintuneita luokkia ei ole. Kuvien moninaisuuden vuoksi meillä on monta helppoa kolmosta. Kovanegatiiveja on kuitenkin kaivettava huolella, sillä toiseen kuvaan liittyvä teksti voi päteä myös ankkurikuvassa.

Triplet Ranking Loss training of a multi-modal retrieval pipeline. Tekstikäsine-upotukset on korjattu, ja koulutamme CNN: n upottamaan kuvan lähemmäs sen positiivista tekstiä kuin negatiivista tekstiä.

käyttämällä tätä setup laskimme joitakin kvantitatiivisia tuloksia verrata Triplet Ranking Loss training Cross-Entropy Loss training. En aio selittää kokeen yksityiskohtia täällä, mutta perustettu on sama kuin käytetty (paperi, blogpost). Periaatteessa teemme joitakin tekstikyselyitä ja arvioimme kuvaa tekstinhakusuorituksella, kun opettelemme sosiaalisen median tiedoista itseohjautuvasti. Tulokset käyttämällä Triplet Ranking tappio ovat huomattavasti parempia kuin käyttämällä Cross-Entropy tappio.

kuvan haku tekstillä keskimääräinen tarkkuus InstaCities1M.

toinen etu käyttämällä Triplet Ranking tappio sen sijaan rajat Entropia menetys tai keskimääräinen neliö virhe tappio ennustaa teksti upotukset, on, että voimme laittaa syrjään ennalta laskettu ja kiinteä teksti upotukset, joka regressio tapauksessa käytämme ground-totuus ulos malleja. Tämä mahdollistaa RNN: n, LSTM: n käytön tekstin käsittelyyn, jota voimme kouluttaa yhdessä CNN: n kanssa ja joka johtaa parempiin esityksiin.

vastaavia lähestymistapoja käytetään mm.Cocon monimuoto-hakujärjestelmien ja tekstitysjärjestelmien koulutuksessa.

Ranking Loss Layers in Deep Learning Frameworks

Caffe

  • Konstrastiivinen Häviökerros. Rajoitettu Pairwise Ranking tappio laskenta. Voidaan käyttää esimerkiksi siamilaisten verkkojen kouluttamiseen.

  • PyCaffe Triplet Ranking Tappio Kerros. David Lu kouluttaa triplet verkkojen.

PyTorch

  • Kosinemeddingloss. Se on Pairwise-Ranking-tappio, joka käyttää kosinietäisyyttä etäisyysmittarina. Tulot ovat ominaisuuksia pari elementtejä, etiketti osoittaa, jos se on positiivinen tai negatiivinen pari, ja marginaali.

  • Marginaalitappio. Samanlainen kuin edellinen, mutta käyttää eukleidian etäisyys.

  • TripletMarginLoss. Triplet-paremmuusjärjestyksen menetys euklidian-etäisyyden avulla.

TensorFlow

  • vastapaino. Pairwisen Ranking-Tappio.

  • triplet_semihard_loss. Triplettitappio puolikovalla miinuksella.

Vastaa

Sähköpostiosoitettasi ei julkaista.