Patrzyłem na częściowo nadzorowane metody uczenia się i natknąłem się na koncepcję „pseudo-etykietowania”.
Jak rozumiem, dzięki pseudo-etykietowaniu masz zestaw danych oznaczonych etykietą, a także zestaw danych nieznakowanych. Najpierw trenujesz model tylko na danych z etykietami. Następnie wykorzystujesz te początkowe dane do klasyfikowania (dołączania tymczasowych etykiet) do nieoznaczonych danych. Następnie przekazujesz zarówno oznakowane, jak i nieznakowane dane z powrotem do treningu modelu, (ponownie) dopasowując zarówno do znanych etykiet, jak i do przewidywanych etykiet. (Powtórz ten proces, ponownie oznakuj zaktualizowanym modelem).
Twierdzone korzyści polegają na tym, że można wykorzystać informacje o strukturze nieznakowanych danych do ulepszenia modelu. Często pokazana jest odmiana poniższego rysunku, „demonstrująca”, że proces może uczynić bardziej złożoną granicę decyzji w oparciu o to, gdzie leżą (nieznakowane) dane.
Zdjęcie z Wikimedia Commons autorstwa Techerin CC BY-SA 3.0
Jednak nie do końca kupuję to uproszczone wyjaśnienie. Naiwnie, jeśli pierwotny wynik szkolenia tylko z etykietą był górną granicą decyzji, pseudo-etykiety byłyby przypisywane na podstawie tej granicy decyzji. To znaczy, że lewa ręka górnej krzywej byłaby pseudo-oznakowana na biało, a prawa ręka dolnej krzywej byłaby pseudo-oznakowana na czarno. Po przekwalifikowaniu nie uzyskasz ładnej zakrzywionej granicy decyzji, ponieważ nowe pseudo-etykiety po prostu wzmocnią obecną granicę decyzji.
Innymi słowy, obecna granica decyzji oznaczona jako jedyna miałaby idealną dokładność prognozowania dla nieznakowanych danych (ponieważ właśnie to robiliśmy). Nie ma siły napędowej (brak gradientu), która spowodowałaby zmianę położenia granicy decyzji po prostu poprzez dodanie pseudo-etykietowanych danych.
Czy mam rację sądząc, że brakuje wyjaśnienia zawartego w schemacie? A może brakuje mi czegoś? Jeśli nie, jaka jest korzyść z pseudo-etykiet, biorąc pod uwagę, że granica decyzji przed ponownym przekwalifikowaniem ma doskonałą dokładność w stosunku do pseudo-etykiet?
Ostrzeżenie, nie jestem ekspertem w tej procedurze. Moje niepowodzenie w uzyskiwaniu dobrych wyników nie jest dowodem na to, że technika nie może zostać uruchomiona. Ponadto twój wizerunek zawiera ogólny opis uczenia się „częściowo nadzorowanego”, który jest szerokim obszarem z różnorodnymi technikami.
Zgadzam się z twoją intuicją, nie widzę, jak taka technika mogłaby działać od razu po wyjęciu z pudełka. Innymi słowy, myślę, że trzeba by dużo wysiłku, aby działał dobrze w przypadku konkretnej aplikacji i wysiłek ten niekoniecznie byłby pomocny w innych aplikacjach.
Próbowałem dwóch różnych instancji, jednego z zestawem danych w kształcie banana, takim jak ten na przykładowym obrazie, i innego łatwiejszego zestawu danych z dwoma prostymi, normalnymi rozproszonymi klastrami. W obu przypadkach nie mogłem poprawić początkowego klasyfikatora.
Jako małą próbę zachęcania do tego, dodałem szum do wszystkich przewidywanych prawdopodobieństw z nadzieją, że przyniesie to lepsze wyniki.
Pierwszy przykład odtworzyłem powyższy obraz tak wiernie, jak tylko mogłem. Nie sądzę, aby etykietowanie psuedo mogło w ogóle tutaj pomóc.
Drugi przykład jest znacznie łatwiejszy, ale nawet tutaj nie udaje mu się poprawić początkowego klasyfikatora. W szczególności wybrałem jeden oznaczony punkt ze środka lewej klasy i prawą stronę prawej klasy, mając nadzieję, że przesunie się we właściwym kierunku, bez powodzenia.
Kod na przykład 1 (przykład 2 jest na tyle podobny, że nie powielę się tutaj):
źródło
Oto moje przypuszczenie (też niewiele wiem na ten temat, chciałem tylko dodać dwa centy do tej dyskusji).
Myślę, że masz rację, nie ma sensu trenować klasycznego modelu i wykorzystywać jego prognoz jako danych, ponieważ, jak mówisz, nie ma zachęty dla optymalizatora, aby działał lepiej. Sądzę, że algorytmy uruchamiania losowego są bardziej skłonne do znalezienia tego samego optimum, ponieważ byłyby „bardziej pewne”, że wcześniej znalezione optymalne jest poprawne, ze względu na większy zestaw danych, ale to nie ma znaczenia.
To powiedziawszy, pierwsza odpowiedź, którą otrzymałeś, ma sens - ten przykład na Wikipedii mówi o klastrowaniu i myślę, że to robi różnicę. Kiedy masz nieoznakowane dane, zasadniczo masz kilka nieznakowanych punktów leżących na wspólnej „ukrytej przestrzeni cech”, jak inne oznaczone. Możesz naprawdę lepiej niż algorytm klasyfikacji wyszkolony na danych z etykietami, jeśli możesz odkryć fakt, że nieoznakowane punkty można oddzielić, a następnie sklasyfikować na podstawie klasy, do której należą punkty oznaczone, na tej ukrytej przestrzeni cech.
Chodzi mi o to, że musisz to zrobić:
... a następnie powtórz z nieznakowanymi danymi. Tutaj wyuczone granice klastrów nie będą takie same, ponieważ klastrowanie nie dba o etykiety klas, wszystko, co bierze pod uwagę, to transformacja przestrzeni cech. Klastrowanie generuje utajoną przestrzeń elementów, na podstawie której uczy się granicy klasyfikacji, a to zależy tylko od danych oznakowanych.
Uważam, że algorytmy, które nie wykonują żadnego klastrowania, nie będą w stanie zmienić swojego optymalnego w oparciu o nieznakowany zestaw danych.
Nawiasem mówiąc, obraz, który połączyłeś, wykonuje dobrą robotę, myślę o wyjaśnieniu, co się tutaj dzieje; granica decyzji jest poznawana wyłącznie na podstawie algorytmu klastrowania. Nie masz pojęcia, jakie są odpowiednie klasy - być może wszystkie są losowe - nie wiemy. Wszystko, co możemy teraz, to to, że wydaje się, że istnieje pewna struktura w przestrzeni cech i wydaje się, że istnieje pewne odwzorowanie z przestrzeni cech na etykiety klas.
Naprawdę nie mam referencji, ale w tym poście Reddit , jak rozumiem, jest dyskusja na temat GAN przeprowadzającego częściowo nadzorowane uczenie się. Jest to moje przeczucie, że domyślnie wykonuje grupowanie, a następnie klasyfikację.
źródło