Megértése rangsor veszteség, kontrasztív veszteség, Margin veszteség, triplett veszteség, zsanér veszteség és mindazok zavaró nevek

sikere után az én post megértése kategorikus kereszt-entrópia veszteség, bináris kereszt-entrópia veszteség, Softmax veszteség, logisztikai veszteség, fokális veszteség és mindazokat zavaró neveket, és ellenőrzése után, hogy Triplet veszteség felülmúlja kereszt-entrópia veszteség az én fő kutatási téma (multimodális visszakeresés) úgy döntöttem, hogy írjon egy hasonló bejegyzést elmagyarázza rangsor veszteségek funkciókat.

a rangsorolási veszteségeket különböző területeken, feladatokban és neurális hálózatok beállításaiban használják (például sziámi hálók vagy hármas hálók). Ezért kapnak különböző neveket, például kontrasztos veszteséget, Margin veszteséget, Zsanérvesztést vagy hármas veszteséget.

rangsorolási Veszteségfüggvények: metrikus tanulás

más veszteségfüggvényekkel ellentétben, mint például a kereszt-entrópia veszteség vagy az átlagos Négyzethiba veszteség, amelynek célja megtanulni közvetlenül megjósolni egy címkét, egy értéket vagy egy bemenetet vagy értékeket, a veszteségek rangsorolásának célja a bemenetek közötti relatív távolságok előrejelzése. Ezt a feladatot gyakran metrikus tanulásnak nevezik.

a rangsorolási veszteségek funkciói nagyon rugalmasak a képzési adatok szempontjából: csak az adatpontok közötti hasonlósági pontszámra van szükségünk azok használatához. Ez a pontszám lehet bináris (hasonló / eltérő). Például képzeljünk el egy arcellenőrzési adatkészletet, ahol tudjuk, hogy melyik arckép tartozik ugyanahhoz a személyhez (hasonló), és melyik nem (eltérő). Rangsorolási veszteség funkció használatával kiképezhetjük a CNN-t arra a következtetésre, hogy két arckép ugyanahhoz a személyhez tartozik-e vagy sem.

a rangsorolási veszteség funkció használatához először két (vagy három) bemeneti adatpontból vonjuk ki a funkciókat, és mindegyikhez beágyazott ábrázolást kapunk. Ezután meghatározunk egy metrikus függvényt az ábrázolások hasonlóságának mérésére, például euklideszi távolság. Végül kiképezzük a funkciókivonókat, hogy hasonló ábrázolásokat állítsanak elő mindkét bemenetre, ha a bemenetek hasonlóak, vagy távoli ábrázolások a két bemenetre, ha különböznek egymástól.
nem is törődünk az ábrázolások értékeivel, csak a köztük lévő távolságokkal. Ez a képzési módszertan azonban bebizonyította, hogy erőteljes reprezentációkat hoz létre a különböző feladatokhoz.

rangsorolási veszteségek megfogalmazása

különböző neveket használnak a veszteségek rangsorolására, de megfogalmazásuk a legtöbb esetben egyszerű és invariáns. Kétféle rangsorolási veszteséget különböztetünk meg két különböző beállításnál: amikor képzési adatpontokat vagy képzési adatpontok hármasait használjuk.
mindkettő összehasonlítja a képzési adatminták ábrázolásai közötti távolságokat.

ha a videó formátumot részesíti előnyben, készítettem egy videót ebből a bejegyzésből. Spanyolul is elérhető:

páros rangsor veszteség

példa egy páronkénti rangsorolási veszteségbeállításra, amely egy hálót képez a kép arcának ellenőrzésére. Ebben a beállításban a CNN-ek súlya meg van osztva. Sziámi hálónak hívjuk. De a páronkénti rangsorolási veszteség felhasználható más beállításokban, vagy más hálókkal.

pozitív párok esetén a veszteség csak akkor lesz \(0\), ha a háló reprezentációkat állít elő a pár mindkét elemére, anélkül, hogy távolság lenne közöttük, és a veszteség (és ezért a megfelelő nettó paraméterek frissítése) ezzel a távolsággal növekszik.

negatív párok esetén a veszteség \(0\) lesz, ha a két párelem ábrázolása közötti távolság nagyobb, mint az \(m\) margó. De ha ez a távolság nem nagyobb, mint \(m\), akkor a veszteség pozitív lesz, és a nettó paraméterek frissülnek, hogy távolabbi ábrázolást eredményezzenek e két elem számára. A veszteség értéke legfeljebb \(m\) lesz, ha a \(r_a\) és \(r_n\) közötti távolság \(0\). A margó funkciója az, hogy amikor a negatív pár számára előállított ábrázolások elég távoliak, nem pazarolnak erőfeszítéseket ennek a távolságnak a növelésére, így a továbbképzés a nehezebb párokra összpontosíthat.

hármas rangsor veszteség

példa egy hármas rangsorolási veszteség beállítására, amely egy hálót képez a kép arcának ellenőrzésére. Ebben a beállításban a CNN-ek súlya meg van osztva. Ezt nevezzük hármas hálónak.

elemezzük a veszteség 3 helyzetét:

forrás: https://omoindrot.github.io/triplet-loss. Három “negatív típus” ábrázolása egy horgony és pozitív pár számára.

negatívok kiválasztása

egy fontos döntés a képzés hármas rangsor veszteség negatívok kiválasztása vagy hármas bányászat. A választott stratégia nagy hatással lesz a képzés hatékonyságára és végső teljesítményére. Nyilvánvaló elismerés, hogy kerülni kell a könnyű hármasokkal való edzést, mivel ezek vesztesége \(0\) lesz.

az első stratégiák offline hármasok bányászatát használják, ami azt jelenti, hogy a hármasok meghatározása a képzés elején vagy minden korszakban történik. Később javasolták az online triplett bányászatot, ami azt jelenti, hogy a tripletteket minden tételre meghatározzák a képzés során, ami jobb képzési hatékonyságot és teljesítményt eredményezett.
a negatívok kiválasztásának optimális módja nagymértékben függ a feladattól. De ebben a bejegyzésben nem fogok belemenni, mivel célja csak a veszteségek rangsorolásának különböző neveinek és megközelítéseinek áttekintése. Lásd Oliver moindrot blogbejegyzést egy mélyebb elemzést triplett bányászat.

a deep learning triplett Loss in deep learning (triplett Loss in deep learning) a finomszemcsés Képhasonlóság tanulásában került bevezetésre a Deep Ranking és a FaceNet: a Unified Embedding for Face Recognition and Clustering (egyesített beágyazás az arcfelismeréshez és a Fürtözéshez) segítségével.

ez a github néhány érdekes cselekményt tartalmaz egy MNIST-entrópia veszteséggel képzett modellből, páros rangsorolási veszteségből és hármas rangsorolási veszteségből, valamint Pytorch kódot ezekhez a tréningekhez.

a veszteségek rangsorolására használt egyéb nevek

a veszteségek rangsorolása alapvetően a fent ismertetettek, és sok különböző alkalmazásban használják ugyanazzal a megfogalmazással vagy kisebb variációkkal. Különböző neveket használnak számukra, ami zavaró lehet. Itt elmagyarázom, miért használják ezeket a neveket.

  • rangsor veszteség: Ez a név az információ-visszakeresési mezőből származik, ahol modelleket szeretnénk kiképezni az elemek meghatározott sorrendben történő rangsorolására.
  • Margin Loss: ez a név abból a tényből származik, hogy ezek a veszteségek margót használnak a minták összehasonlítására reprezentációk távolságok.
  • kontrasztív veszteség: a kontrasztív arra a tényre utal, hogy ezeket a veszteségeket két vagy több adatpont ábrázolással ellentétesen számítják ki. Ezt a nevet gyakran használják páros rangsorolási veszteségre, de még soha nem láttam, hogy hármasokkal történő beállításban használtam volna.
  • triplett veszteség: gyakran használják veszteségnévként, amikor triplett edzőpárokat alkalmaznak.
  • Csuklóveszteség: max-margin objektív néven is ismert. Ezt használják a képzés SVMs osztályozás. Hasonló megfogalmazása van abban az értelemben, hogy margóig optimalizálja. Ezért használják ezt a nevet néha a veszteségek rangsorolására.

Sziámi és hármas hálók

a Sziámi és hármas hálók olyan képzési beállítások, ahol páros rangsorolási veszteséget és hármas rangsorolási veszteséget használnak. De ezek a veszteségek más beállításokban is felhasználhatók.
ezekben a beállításokban a párban vagy triplettben lévő edzési minták ábrázolását azonos hálókkal számítják ki, közös súlyokkal (ugyanazzal a CNN-vel).

sziámi hálók

két azonos CNN-t építenek közös súlyokkal (mindkét CNN-nek azonos súlya van). Mindegyik háló egy képet dolgoz fel és egy reprezentációt hoz létre. Ezeket az ábrázolásokat összehasonlítják, és kiszámítják a köztük lévő távolságot. Ezután páros rangsorolási veszteséget használnak a hálózat kiképzésére, oly módon, hogy a hasonló képek által előállított ábrázolások közötti távolság kicsi, a dis-hasonló képek ábrázolásai közötti távolság pedig nagy.

Mivel egy sziámi hálóban a pár mindkét elemének ábrázolását ugyanaz a CNN számítja ki, lévén \(f(x)\) hogy CNN, a páronkénti rangsorolási veszteséget úgy írhatjuk le, mint:

hármas hálók

az ötlet hasonló a sziámi hálóhoz, de a hármas hálónak három ága van (három közös súlyú CNN). A modellt úgy képzik ki, hogy egyidejűleg pozitív és negatív képet ad a megfelelő horgonyképnek, és hármas rangsorolási veszteséget használ. Ez lehetővé teszi a net számára, hogy jobban megtanulja, mely képek hasonlóak és különböznek a horgonyképtől.

hármas hálók esetében, mivel ugyanazt a CNN \(f (x)\) – t használjuk a három hármas elem reprezentációinak kiszámításához, a hármas rangsorolási veszteséget úgy írhatjuk le, mint :

Ranking Loss for Multimodal Retrieval

kutatásom során a triplett Ranking Loss-t használtam képek és szövegek multimodális visszakeresésére. A képzési adatok a kapcsolódó szöveggel rendelkező képek adatkészletéből állnak. A cél az, hogy megtanulják beágyazások a képek és a szavak ugyanabban a térben cross-modális visszakeresés. Ehhez először megtanuljuk és lefagyasztjuk a szavak beágyazását kizárólag a szövegből, olyan algoritmusok segítségével, mint a Word2Vec vagy a GloVe. Azután, célunk, hogy a vonat a CNN beágyazni a képeket, hogy ugyanabban a térben: Az ötlet az, hogy megtanulják beágyazni egy képet és a hozzá tartozó feliratot a multimodális beágyazási tér ugyanazon pontjába.

ennek első megközelítése a CNN betanítása volt, hogy közvetlenül megjósolja a képek szövegbe ágyazását kereszt-entrópia veszteség segítségével. Az eredmények szépek voltak, de később kiderült, hogy egy hármas rangsor veszteség eredmények jobbak voltak.

a beállítás a következő: rögzített szöveges beágyazásokat (kesztyű) használunk, és csak a KÉPÁBRÁZOLÁST (CNN) tanuljuk meg. Tehát a horgonyminta \(a\) A kép, a pozitív minta \(p\) a képhez társított szöveg, a negatív minta \(n\) pedig egy másik “negatív” kép szövege. A negatív szöveg kiválasztásához különböző online negatív bányászati stratégiákat vizsgáltunk, a Kesztyűtérben lévő távolságok felhasználásával a pozitív szöveg beágyazásával. A hármas bányászat különösen érzékeny ebben a problémában, mivel nincsenek megállapított osztályok. Tekintettel a képek sokféleségére, sok könnyű hármasunk van. De óvatosnak kell lennünk a kemény negatívok bányászatával, mivel egy másik képhez társított szöveg horgonyképre is érvényes lehet.

triplet rangsor veszteség képzés egy multimodális visszakeresés csővezeték. A szövegkesztyű beágyazása rögzített, és a CNN-t arra tanítjuk, hogy a képet közelebb ágyazza be a pozitív szöveghez, mint a negatív szöveghez.

ezzel a beállítással kiszámoltunk néhány kvantitatív eredményt, hogy összehasonlítsuk a hármas rangsorolási veszteségképzést a kereszt-entrópia Veszteségképzéssel. Itt nem fogom elmagyarázni a kísérlet részleteit, de a beállítás megegyezik a (papír, blogpost). Alapvetően szöveges lekérdezéseket végzünk, és a képet szöveges visszakeresési teljesítmény alapján értékeljük, amikor a közösségi média adataiból önellenőrzött módon tanulunk. A hármas rangsorolási veszteséget használó eredmények lényegesen jobbak, mint a kereszt-entrópia veszteség.

kép visszakeresés szöveges átlagos pontossággal az InstaCities1M – en.

a triplett rangsorolási veszteség használatának másik előnye a kereszt-entrópia veszteség vagy az átlagos Négyzethiba veszteség a szövegbe ágyazások előrejelzésére, hogy félretehetjük az előre kiszámított és rögzített szövegbe ágyazásokat, amelyeket regressziós esetben alapigazságként használunk az out modellekhez. Ez lehetővé teszi az RNN, LSTM használatát a szöveg feldolgozásához, amelyet a CNN-vel együtt képezhetünk, és amelyek jobb reprezentációkhoz vezetnek.

hasonló megközelítéseket alkalmaznak például a Coco multimodális visszakeresési rendszereinek és feliratozási rendszereinek képzésére.

rangsor veszteség rétegek mély tanulási keretek

Caffe

  • szűkítő Veszteségréteg. Korlátozott páros rangsor veszteség számítás. Lehet használni, például, hogy a vonat sziámi hálózatok.

  • PyCaffe Triplett Rangsor Veszteség Réteg. Írta: David Lu a hármas hálózatok képzésére.

PyTorch

  • CosineEmbeddingLoss. Ez egy páros rangsorolási veszteség, amely koszinusz távolságot használ távolságmérőként. A bemenetek a páros elemek jellemzői, A címke jelzi, hogy pozitív vagy negatív pár, valamint a margó.

  • MarginRankingLoss. Hasonló az előbbihez, de euklideszi távolságot használ.

  • hármas Marginloss. A hármas rangsor veszteség felhasználásával euklideszi távolság.

TensorFlow

  • contrastive_loss. Páros Rangsor Veszteség.

  • triplet_semihard_loss. Hármas veszteség félkemény negatív bányászattal.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.