Zrozumienie straty rankingu, straty kontrastowej, straty marginesu, straty Tripletowej, utraty zawiasów i wszystkich tych mylących nazw

po sukcesie mojego postu zrozumienie kategorycznej utraty entropii, binarnej utraty entropii, straty Softmax, straty logistycznej, utraty ogniskowej i wszystkich tych mylących nazw, a po sprawdzeniu, że utrata Tripletowa przewyższa utratę entropii Krzyżowej w moim głównym temacie badawczym (pobieranie multimodalne) postanowiłem napisać podobny post wyjaśniający funkcje strat rankingowych.

straty w rankingu są wykorzystywane w różnych obszarach, zadaniach i konfiguracjach sieci neuronowych (takich jak sieci syjamskie lub sieci trójdzielne). Dlatego otrzymują różne nazwy, takie jak kontrastowa strata, strata marży, utrata zawiasów lub utrata potrójna.

funkcje strat w rankingu: Uczenie Się metryki

w przeciwieństwie do innych funkcji strat, takich jak utrata entropii krzyżowej lub średnia utrata błędu kwadratowego, których celem jest nauczenie się bezpośrednio przewidywać Etykietę, wartość lub zestaw lub wartości podane na wejściu, celem strat w rankingu jest przewidywanie względnych odległości między wejściami. To zadanie, jeśli często nazywa metryczne uczenia.

funkcje strat w rankingu są bardzo elastyczne pod względem danych treningowych: potrzebujemy tylko wyniku podobieństwa między punktami danych, aby je wykorzystać. Wynik ten może być binarny (podobny / odmienny). Jako przykład, wyobraźmy sobie zestaw danych weryfikacji twarzy, w którym wiemy, które obrazy twarzy należą do tej samej osoby (podobne), a które nie (niepodobne). Korzystając z funkcji utraty rankingu, możemy wytrenować CNN, aby wywnioskował, czy dwa obrazy twarzy należą do tej samej osoby, czy nie.

aby użyć funkcji utraty rankingu, najpierw wyodrębniamy funkcje z dwóch (lub trzech) punktów danych wejściowych i otrzymujemy osadzoną reprezentację dla każdego z nich. Następnie definiujemy funkcję metryczną do pomiaru podobieństwa między tymi reprezentacjami, np. odległość euklidesowa. Wreszcie, trenujemy ekstraktory funkcji, aby wytwarzały podobne reprezentacje dla obu wejść, w przypadku, gdy wejścia są podobne, lub odległe reprezentacje dla dwóch wejść, w przypadku, gdy są różne.
nie dbamy nawet o wartości reprezentacji, tylko o odległości między nimi. Jednak ta metodologia szkolenia wykazała, że daje potężne reprezentacje do różnych zadań.

ranking strat formulacja

różne nazwy są używane do rankingu strat, ale ich sformułowanie jest proste i niezmienne w większości przypadków. Rozróżniamy dwa rodzaje strat rankingowych dla dwóch różnych konfiguracji: gdy używamy par punktów danych treningowych lub trojaków punktów danych treningowych.
oba porównują odległości między reprezentacjami próbek danych treningowych.

jeśli wolisz format wideo, zrobiłem wideo z tego postu. Dostępne również w języku hiszpańskim:

przykład parowej konfiguracji straty rankingu, aby trenować siatkę do weryfikacji twarzy obrazu. W tej konfiguracji wagi CNN są współdzielone. Nazywamy to siatkami syjamskimi. Ale parowa utrata rankingu może być używana w innych konfiguracjach lub z innymi siatkami.

dla dodatnich par strata będzie \(0\) tylko wtedy, gdy siatka stworzy reprezentacje dla obu dwóch elementów w parze bez odległości między nimi, a strata (a zatem odpowiednia aktualizacja parametrów netto) wzrośnie wraz z tą odległością.

dla ujemnych par, strata będzie \(0\), gdy odległość między reprezentacjami dwóch elementów pary jest większa niż margines \(m\). Ale gdy odległość nie jest większa niż \(m\), strata będzie dodatnia, a parametry netto zostaną zaktualizowane, aby uzyskać bardziej odległą reprezentację dla tych dwóch elementów. Wartość straty będzie co najwyżej \(m\), gdy odległość między \(r_a\) i \(r_n\) wynosi \(0\). Funkcja marginesu polega na tym, że gdy reprezentacje wytworzone dla ujemnej pary są wystarczająco odległe, nie marnuje się wysiłków na powiększanie tej odległości, więc dalsze szkolenie może skupić się na trudniejszych parach.

strata w rankingu Triplet

przykład konfiguracji straty w rankingu triplet, aby trenować siatkę do weryfikacji twarzy obrazu. W tej konfiguracji wagi CNN są współdzielone. Nazywamy to potrójnymi sieciami.

przeanalizujmy 3 sytuacje tej straty:

źródło: https://omoindrot.github.io/triplet-loss Reprezentacja trzech “rodzajów negatywów” dla pary kotwicy i pozytywu.

wybór negatywów

ważną decyzją szkolenia z utratą rankingu Triplet jest wybór negatywów lub wydobycie triplet. Wybrana strategia będzie miała duży wpływ na efektywność szkolenia i wyniki końcowe. Oczywistym uznaniem jest to, że należy unikać treningu z łatwymi trojaczkami, ponieważ ich wynikająca strata będzie \(0\).

pierwsze strategie stosowane offline triplet mining, Co oznacza, że triplety są definiowane na początku szkolenia, lub w każdej epoce. Później zaproponowano wydobycie tripletów online, co oznacza, że triplety są definiowane dla każdej partii podczas szkolenia, co zaowocowało lepszą wydajnością i wydajnością szkolenia.
optymalny sposób doboru negatywów jest w dużym stopniu zależny od zadania. Ale nie zamierzam się do tego w tym poście, ponieważ jego celem jest tylko przegląd różnych nazw i podejść do rankingu strat. Zapoznaj się z wpisem na blogu Olivera moindrota, aby uzyskać głębszą analizę wydobycia triplet.

potrójna Utrata w głębokim uczeniu została wprowadzona w uczeniu drobnoziarnistego podobieństwa obrazów z Deep Ranking i FaceNet: ujednolicone osadzanie do rozpoznawania twarzy i klastrowania.

ten github zawiera kilka interesujących Wykresów z modelu wyszkolonego na MNIST z stratą krzyżową entropii, stratą w rankingu parowym i stratą w rankingu trójkowym oraz kod Pytorch dla tych treningów.

Inne nazwy używane dla strat w rankingu

straty w rankingu są zasadniczo te opisane powyżej i są używane w wielu różnych aplikacjach z tym samym sformułowaniem lub niewielkimi zmianami. Jednak używane są dla nich różne nazwy, co może być mylące. Tutaj wyjaśniam, dlaczego te nazwy są używane.

  • strata w rankingu: Nazwa ta pochodzi od pola wyszukiwania informacji, w którym chcemy trenować modele do rangi przedmiotów w określonej kolejności.
  • strata marży: nazwa ta pochodzi od faktu, że straty te wykorzystują marżę do porównywania odległości reprezentacji próbek.
  • kontrastowa strata: kontrastowa odnosi się do faktu, że straty te są obliczane kontrastowo z dwoma lub więcej reprezentacjami punktów danych. Ta nazwa jest często używana do utraty rankingu par, ale nigdy nie widziałem go w konfiguracji z trojaczkami.
  • strata Triplet: często używana jako nazwa straty, gdy stosowane są pary treningowe triplet.
  • utrata zawiasów: znany również jako cel Max-margin. Służy do szkolenia maszyn SVM do klasyfikacji. Ma podobną formułę w tym sensie, że optymalizuje aż do marginesu. Dlatego ta nazwa jest czasami używana do rankingu strat.

Siamese and triplet nets

Siamese and triplet nets są konfiguracjami treningowymi, w których stosuje się Pairwise Ranking Loss i Triplet Ranking Loss. Ale te straty mogą być również wykorzystane w innych konfiguracjach.
w tych konfiguracjach reprezentacje dla próbek treningowych w parze lub trójce są obliczane za pomocą identycznych siatek o wspólnej wadze (z tą samą CNN).

sieci syjamskie

są zbudowane przez dwie identyczne CNN o wspólnej wadze (obie CNN mają taką samą wagę). Każda z tych sieci przetwarza obraz i tworzy reprezentację. Reprezentacje te są porównywane i obliczana jest odległość między nimi. Następnie, para straty rankingu jest używany do szkolenia sieci, tak, że odległość między reprezentacjami wytwarzanych przez podobne obrazy jest mała, a odległość między reprezentacjami dis – podobne obrazy jest duża.

ponieważ w konfiguracji sieci syjamskiej reprezentacje dla obu elementów w parze są obliczane przez ten sam CNN, będąc \(f (x)\), że CNN, możemy zapisać stratę w rankingu par jako:

Triplet Nets

pomysł jest podobny do sieci syjamskiej, ale sieć triplet net ma trzy gałęzie (trzy CNN o wspólnej wadze). Model jest szkolony przez jednoczesne podawanie pozytywnego i negatywnego obrazu do odpowiedniego obrazu kotwicy i korzystanie z potrójnej straty w rankingu. To pozwala sieci dowiedzieć się lepiej, które obrazy są podobne i różne do obrazu kotwicy.

w przypadku sieci triplet, ponieważ ta sama CNN \(f (x)\) jest używana do obliczania reprezentacji dla trzech elementów triplet, możemy zapisać stratę rankingu Triplet jako :

utrata rankingu dla multimodalnego pobierania

w moich badaniach, używam Triplet Ranking Loss dla multimodalnego pobierania obrazów i tekstu. Dane treningowe składają się z zestawu danych obrazów z powiązanym tekstem. Celem jest nauczenie się osadzania obrazów i słów w tej samej przestrzeni dla wyszukiwania międzymodalnego. Aby to zrobić, najpierw uczymy się i zamrażamy osadzanie słów wyłącznie z tekstu, używając algorytmów takich jak Word2Vec czy GloVe. Następnie staramy się wytrenować CNN, aby osadzić obrazy w tej samej przestrzeni: Chodzi o to, aby nauczyć się osadzać obraz i związany z nim podpis w tym samym punkcie w multimodalnej przestrzeni osadzania.

pierwszym podejściem, aby to zrobić, było szkolenie CNN do bezpośredniego przewidywania osadzania tekstu z obrazów za pomocą utraty entropii krzyżowej. Wyniki były dobre, ale później okazało się, że przy użyciu rankingu Triplet wyniki strat były lepsze.

konfiguracja jest następująca: używamy stałych osadzeń tekstu (GloVe) i uczymy się tylko reprezentacji obrazu (CNN). Tak więc próbka kotwicy \(a\) to obraz, próbka dodatnia \(p\) to tekst powiązany z tym obrazem, a próbka ujemna \(n\) to tekst innego” negatywnego ” obrazu. Aby wybrać tekst negatywny, zbadaliśmy różne strategie wyszukiwania negatywów online, wykorzystując odległości w przestrzeni rękawic z osadzaniem tekstu pozytywnego. Wydobycie trojaczków jest szczególnie sensowne w tym problemie, ponieważ nie ma ustalonych klas. Biorąc pod uwagę różnorodność obrazów, mamy wiele łatwych trojaczków. Ale musimy być ostrożni wydobywając twarde negatywy, ponieważ tekst powiązany z innym obrazem może być również ważny dla obrazu kotwicy.

Triplet Ranking Loss training of a multi-modal retrieval pipeline. Osadzenie rękawicy tekstowej jest stałe, a my szkolimy CNN, aby osadzić obraz bliżej tekstu pozytywnego niż negatywnego.

korzystając z tej konfiguracji obliczyliśmy kilka wyników ilościowych, aby porównać Trening strat w rankingu Triplet z treningiem utraty entropii. Nie będę tutaj wyjaśniał szczegółów eksperymentu, ale konfiguracja jest taka sama jak w (paper, blogpost). Zasadniczo wykonujemy kilka zapytań tekstowych i oceniamy obraz na podstawie wydajności pobierania tekstu podczas uczenia się na podstawie danych z mediów społecznościowych w sposób samodzielny. Wyniki przy użyciu straty w rankingu Triplet są znacznie lepsze niż przy użyciu straty krzyżowej entropii.

pobieranie obrazu za pomocą tekstu średnia precyzja na InstaCities1M.

Kolejną zaletą korzystania z potrójnej straty rankingu zamiast straty krzyżowej entropii lub średniej straty błędu kwadratowego do przewidywania osadzania tekstu, jest to, że możemy odłożyć na bok wstępnie obliczone i stałe osadzanie tekstu, które w przypadku regresji używamy jako podstawy prawdy dla naszych modeli. Pozwala to na wykorzystanie RNN, LSTM do przetwarzania tekstu, który możemy trenować razem z CNN, a który prowadzi do lepszych reprezentacji.

podobne podejścia są używane do szkolenia multimodalnych Systemów wyszukiwania i systemów napisów w COCO,na przykład tutaj.

Ranking warstw strat w frameworkach Deep Learning

  • warstwa stratna Construstive. Ograniczone do obliczania strat w rankingu parowym. Może być używany na przykład do szkolenia sieci syjamskich.

  • PyCaffe Triplet Ranking Loss Layer. Przez Davida Lu do szkolenia sieci triplet.

PyTorch

  • CosineEmbeddingLoss. Jest to strata rzędu par, która wykorzystuje odległość cosinusa jako metrykę odległości. Wejściami są cechy elementów pary, Etykieta wskazująca, czy jest to para dodatnia, czy ujemna, oraz margines.

  • MarginRankingLoss. Podobny do pierwszego, ale używa odległości euklidesowej.

  • TripletMarginLoss. Potrójna strata w rankingu przy użyciu odległości euklidesowej.

TensorFlow

  • contrastive_loss. Para Straty W Rankingu.

  • triplet_semihard_loss. Strata Triplet z wydobyciem półtwardym ujemnym.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.