Pomiar podobieństwa

Zamiast porównywać połączone wartości danych, możesz zmniejszyć dane dotyczące cech o nazwie umieszczania, a następnie porównać osadzenia. Umieszczanie jest generowane przez trenowanie nadzorowanej sieci neuronowej (DNN) w samych danych funkcji. Umieszczone dane są mapowane w formie wektorowej w miejscu docelowym. Przestrzeń osadzona ma zwykle mniej wymiarów niż dane cech w sposób, który rejestruje ukrytą strukturę zbioru danych cech. Wektory do osadzenia w podobnych przykładach, np. filmy w YouTube oglądane przez tych samych użytkowników, znajdują się blisko siebie. Zobaczymy, jak współczynnik podobieństwa wykorzystuje tę „bliskość” do oceny podobieństwa w poszczególnych przykładach.

Pamiętaj, że chodzi o uczenie się nadzorowane, tylko do tworzenia pomiaru podobieństwa. Wskaźnik podobieństwa (ręczny lub nadzorowany) jest używany przez algorytm do przeprowadzenia grupowania nienadzorowanego.

Porównanie środków ręcznych i nadzorowanych

W tej tabeli opisujemy, kiedy należy używać ręcznego lub nadzorowanego pomiaru podobieństwa w zależności od wymagań.

WymaganieRęcznieKonto nadzorowane
Usuń zbędne informacje z powiązanych funkcji. Nie, musisz oddzielnie przeanalizować zależności między funkcjami. Tak, DNN eliminuje zbędne informacje.
zapewniają wgląd w obliczone podobieństwa, Tak Nie, nie można zmienić ustawienia umieszczania.
Odpowiednie dla małych zbiorów danych z kilkoma funkcjami. Tak, projektowanie ręcznego pomiaru z kilkoma funkcjami jest łatwe. Nie, niewielkie zbiory danych nie udostępniają wystarczającej ilości danych treningowych do nazwy wyróżniającej.
Odpowiednie dla dużych zbiorów danych z wieloma funkcjami. Nie, ręczne eliminowanie zbędnych informacji z wielu funkcji, a następnie ich połączenie jest bardzo trudne. Tak, nazwa wyróżniająca automatycznie eliminuje zbędne informacje i łączy funkcje.

Proces nadzorowanego pomiaru podobieństw

Poniższy przykład pokazuje, jak utworzyć nadzorowany wskaźnik podobieństwa:

Dane wejściowe funkcji. Wybierz DNN: automatyczny koder lub prognozer.
      Wyodrębnij umieszczone elementy. Wybierz pomiar: produkt z kropkami, cosinus lub odległość euklidesowa.
Ilustracja 1: Kroki tworzenia nadzorowanego pomiaru podobieństwa.

To już pierwszy krok. Na tej stronie omawiamy następny krok, a na kolejnych – pozostałe.

Wybierz nazwę wyróżniającą na podstawie etykiet treningowych

Ogranicz dane cech do osadzeń, trenując nazwę wyróżniającą, która używa tych samych danych cech co dane wejściowe i etykiety. Na przykład w przypadku danych własnych funkcja DNN wykorzystuje te funkcje, takie jak cena, rozmiar czy kod pocztowy, do przewidywania tych funkcji. Aby na podstawie danych cech móc przewidywać te same dane cech, nazwa wyróżniająca musi być redukowana w celu ograniczenia danych wejściowych o miejscach docelowych. Wykorzystujesz te osadzenia do obliczania podobieństwa.

Nazwa wyróżniająca, która uczy się umieszczać danych wejściowych, prognozując dane wejściowe, jest nazywana autokoderem. Ukryte warstwy automatycznego kodera są mniejsze od warstw wejściowych i wyjściowych, więc wymusza na nich skompresowane przedstawienie danych funkcji. Po wytrenowaniu DNN wyodrębnij elementy osadzone z ostatniej ukrytej warstwy, aby obliczyć podobieństwo.

Porównanie między koderem automatycznym a nazwą prognozującą.
       Początkowe dane wejściowe i ukryte warstwy są takie same, ale dane wyjściowe są filtrowane według funkcji klucza w modelu prognozowania.
Ilustracja 2. Porównanie autokodera i prognozatora.

Autokoder to najprostsza metoda generowania umieszczania. Autokoder nie jest jednak najlepszym wyborem, gdy pewne funkcje mogą być ważniejsze niż inne. Załóżmy np., że w danych własnych „cena” jest ważniejsza niż „kod pocztowy”. W takich przypadkach użyj tylko istotnej funkcji jako etykiety trenowania dla nazwy wyróżniającej. Ponieważ ta nazwa wyróżniająca wskazuje określoną funkcję wejściową, zamiast prognozować wszystkie funkcje wejściowe, jest ona nazywana prognozowaną nazwą wyróżniającą. Aby wybrać funkcję jako etykietę, zastosuj się do tych wskazówek:

  • Wybieraj funkcje liczbowe niż funkcje kategorialne jako etykiety, ponieważ łatwiej jest obliczać i interpretować funkcje liczbowe.

  • Nie używaj funkcji kategorii z mocą zbioru \(\lesssim\) 100 jako etykiet. W takim przypadku nazwa wyróżniająca nie musi być wymuszana na potrzeby ograniczenia danych wejściowych do umieszczenia na stronie, ponieważ może ona z łatwością przewidzieć etykietę kategorii o dużej mocy zbioru.

  • Usuń funkcję, której używasz jako etykiety z danymi wejściowymi do nazwy wyróżniającej. Jeśli tego nie zrobisz, usługa będzie idealnie przewidywać dane wyjściowe.

W zależności od wybranych etykiet DNN to nazwa wyróżniająca automatycznego kodera lub nazwa prognozowana.

Funkcja utraty dla nazwy wyróżniającej

Aby wytrenować nazwę wyróżniającą, musisz utworzyć funkcję utraty:

  1. Oblicz straty dla poszczególnych danych wyjściowych nazwy wyróżniającej. Dane wyjściowe, które są:
    • Liczbowym użyj średniego błędu kwadratowego (MSE).
    • Unikatowa kategoria: użyj straty logu. Nie musisz samodzielnie implementować utraty logów, ponieważ możesz je obliczyć za pomocą funkcji biblioteki.
    • Wiele kategorii, użyj miękkiej przedziału entropii. Nie musisz samodzielnie wdrażać utraty entropii krzyżowej typu softmax, ponieważ możesz ją obliczyć za pomocą funkcji bibliotek.
  2. Oblicz łączną całkowitą stratę, sumując straty dla każdego wyniku.

Podsumowując straty, sprawdź, czy każda z nich przyczynia się do uzyskania odpowiedniej wartości. Jeśli na przykład przekonwertujesz dane koloru na wartości RGB, otrzymasz trzy dane wyjściowe. Ale suma 3 danych wyjściowych oznacza, że utrata koloru jest ważona 3 razy bardziej ważona niż inne funkcje. Zamiast tego pomnóż poszczególne dane wyjściowe przez 1/3.

Używanie DNN w systemie online

Internetowy system uczący się ma ciągły strumień nowych danych wejściowych. Musisz przetestować swoją nazwę wyróżniającą na podstawie nowych danych. Jeśli jednak ponownie nauczysz DNN od zera, osadzenia będą różne, ponieważ inicjują one losowe wagi. Zamiast tego zawsze rozpocznij DNN przy użyciu istniejących wag, a następnie zaktualizuj DNN o nowe dane.