Częściowo nadzorowana klasyfikacja obrazów z danymi nieoznakowanymi

Opublikowany: 2022-03-11

W ciągu ostatniej dekady uczenie nadzorowane znajdowało się w czołówce badań nad wizją komputerową i uczeniem głębokim.

W nadzorowanym środowisku uczenia się ludzie muszą ręcznie opisywać duże ilości danych. Następnie modele wykorzystują te dane do uczenia się złożonych podstawowych relacji między danymi i etykietą oraz rozwijania możliwości przewidywania etykiety na podstawie danych. Modele uczenia głębokiego są generalnie głodne danych i wymagają ogromnych ilości zestawów danych, aby osiągnąć dobrą wydajność. Ciągle ulepszany sprzęt i dostępność dużych zbiorów danych oznaczonych przez człowieka były przyczyną ostatnich sukcesów uczenia głębokiego.

Jedną z głównych wad nadzorowanego uczenia głębokiego jest to, że opiera się ono na obecności dużej ilości zestawów danych oznaczonych przez człowieka do celów szkoleniowych. Ten luksus nie jest dostępny we wszystkich domenach, ponieważ uzyskanie ogromnych zbiorów danych z adnotacjami przez profesjonalistów może być trudne logistycznie i bardzo kosztowne. Chociaż pozyskiwanie danych oznaczonych etykietami może być trudnym i kosztownym przedsięwzięciem, zwykle mamy dostęp do dużej ilości zestawów danych bez etykiet, zwłaszcza danych graficznych i tekstowych. Dlatego musimy znaleźć sposób na wykorzystanie tych niewykorzystanych zbiorów danych i wykorzystanie ich do nauki.

Obrazy z etykietami i bez etykiet

Przenieś naukę ze wstępnie wytrenowanych modeli

W przypadku braku dużej ilości danych oznaczonych etykietami, zwykle uciekamy się do uczenia transferowego . Czym więc jest uczenie transferowe?

Transfer uczenia się oznacza wykorzystanie wiedzy z podobnego zadania do rozwiązania danego problemu. W praktyce oznacza to zwykle użycie jako inicjalizacji wag głębokich sieci neuronowych nauczonych z podobnego zadania, zamiast rozpoczynania od losowej inicjalizacji wag, a następnie dalszego uczenia modelu na dostępnych danych oznaczonych etykietami w celu rozwiązania danego zadania.

Transfer learning umożliwia nam trenowanie modeli na zestawach danych tak małych jak kilka tysięcy przykładów i może zapewnić bardzo dobrą wydajność. Transfer uczenia się ze wstępnie wytrenowanych modeli można przeprowadzić na trzy sposoby:

1. Ekstrakcja funkcji

Zwykle ostatnie warstwy sieci neuronowej wykonują najbardziej abstrakcyjne i specyficzne dla zadania obliczenia, których na ogół nie można łatwo przenieść do innych zadań. Natomiast początkowe warstwy sieci poznają podstawowe cechy, takie jak krawędzie i typowe kształty, które można łatwo przenosić między zadaniami.

Poniższe zestawy obrazów przedstawiają to, czego zasadniczo uczą się jądra splotowe na różnych poziomach w splotowej sieci neuronowej (CNN). Widzimy hierarchiczną reprezentację, w której początkowe warstwy uczą się podstawowych kształtów, a stopniowo wyższe warstwy uczą się bardziej złożonych pojęć semantycznych.

Reprezentacja hierarchiczna: warstwy początkowe i warstwy wyższe

Powszechną praktyką jest wzięcie modelu wstępnie wytrenowanego na dużych, oznaczonych zestawach danych obrazów (takich jak ImageNet) i odcięcie na końcu w pełni połączonych warstw. Następnie dołączane są nowe, w pełni połączone warstwy i konfigurowane zgodnie z wymaganą liczbą klas. Przeniesione warstwy są zamrażane, a nowe warstwy są szkolone na podstawie dostępnych danych oznaczonych etykietami dla Twojego zadania.

W tej konfiguracji wstępnie wytrenowany model jest używany jako ekstraktor cech, a w pełni połączone warstwy na górze można uznać za płytki klasyfikator. Ta konfiguracja jest bardziej niezawodna niż nadmierne dopasowanie, ponieważ liczba możliwych do trenowania parametrów jest stosunkowo niewielka, więc ta konfiguracja działa dobrze, gdy dostępnych danych oznaczonych etykietami jest bardzo mało. Jaki rozmiar zestawu danych kwalifikuje się jako bardzo mały zestaw danych, jest zwykle trudnym problemem z wieloma aspektami rozważania, w tym problemem pod ręką i rozmiarem szkieletu modelu. Z grubsza rzecz biorąc, użyłbym tej strategii dla zestawu danych składającego się z kilku tysięcy obrazów.

2. Dostrajanie

Alternatywnie możemy przenieść warstwy ze wstępnie wytrenowanej sieci i przeszkolić całą sieć na dostępnych oznaczonych danych. Ta konfiguracja wymaga nieco bardziej oznaczonych danych, ponieważ trenujesz całą sieć, a tym samym dużą liczbę parametrów. Ta konfiguracja jest bardziej podatna na nadmierne dopasowanie, gdy występuje niedobór danych.

3. Dwustopniowa nauka transferu

Takie podejście jest moim osobistym faworytem i zazwyczaj daje najlepsze rezultaty, przynajmniej z mojego doświadczenia. Tutaj szkolimy nowo przyłączone warstwy, zamrażając przeniesione warstwy przez kilka epok przed dostrojeniem całej sieci.

Dostrajanie całej sieci bez nadawania kilku epok ostatnim warstwom może skutkować propagacją szkodliwych gradientów z losowo zainicjowanych warstw do sieci bazowej. Ponadto dostrajanie wymaga stosunkowo mniejszego tempa uczenia się, a podejście dwuetapowe jest wygodnym rozwiązaniem.

Potrzeba metod częściowo nadzorowanych i nienadzorowanych

Zwykle działa to bardzo dobrze w przypadku większości zadań klasyfikacji obrazów, ponieważ mamy ogromne zbiory danych obrazów, takie jak ImageNet, które obejmują znaczną część możliwej przestrzeni obrazu — i zwykle wagi nabyte z nich można przenieść do niestandardowych zadań klasyfikacji obrazów. Co więcej, przeszkolone sieci są łatwo dostępne od ręki, ułatwiając w ten sposób proces.

Jednak to podejście nie zadziała dobrze, jeśli dystrybucja obrazów w zadaniu drastycznie różni się od obrazów, na których została przeszkolona sieć bazowa. Na przykład, jeśli masz do czynienia z obrazami w skali szarości generowanymi przez urządzenie do obrazowania medycznego, transfer uczenia się z wag ImageNet nie będzie tak skuteczny i będziesz potrzebować więcej niż kilku tysięcy oznaczonych obrazów, aby wytrenować sieć do zadowalającej wydajności.

Z drugiej strony możesz mieć dostęp do dużych ilości nieoznakowanych zestawów danych dotyczących swojego problemu. Dlatego umiejętność uczenia się na podstawie nieoznakowanych zbiorów danych ma kluczowe znaczenie. Ponadto nieoznakowany zestaw danych jest zazwyczaj znacznie bardziej różnorodny i obszerny niż nawet największe zestawy danych z etykietą.

Podejścia częściowo nadzorowane wykazały wyższą wydajność w porównaniu z podejściami nadzorowanymi w dużych testach porównawczych, takich jak ImageNet. Słynna analogia do ciasta Yanna LeCuna podkreśla znaczenie uczenia się bez nadzoru:

Analogia do ciasta Yanna LeCuna

Nauka częściowo nadzorowana

Podejście to wykorzystuje do uczenia się zarówno dane oznaczone, jak i nieoznaczone, dlatego nazywa się je uczeniem częściowo nadzorowanym. Jest to zwykle preferowane podejście, gdy masz niewielką ilość danych oznaczonych etykietą i dużą ilość danych nieoznaczonych. Istnieją techniki, w których uczysz się jednocześnie z danych oznaczonych i nieoznakowanych, ale omówimy problem w kontekście podejścia dwuetapowego: uczenie się bez nadzoru na danych nieoznaczonych i transfer uczenia się przy użyciu jednej ze strategii opisanych powyżej w celu rozwiązania zadania klasyfikacyjnego .

W takich przypadkach uczenie się bez nadzoru jest dość mylącym terminem. Te podejścia nie są tak naprawdę nienadzorowane w tym sensie, że istnieje sygnał nadzoru, który kieruje uczeniem się wag, ale w ten sposób sygnał nadzoru pochodzi z samych danych. Dlatego czasami określa się je jako samonadzorowane uczenie się, ale terminy te są używane w literaturze zamiennie w odniesieniu do tego samego podejścia.

Główne techniki samonadzorowanego uczenia się można podzielić według sposobu, w jaki generują ten sygnał nadzoru z danych, co omówiono poniżej.

Metody generatywne

Metody generatywne - Autokodery: sieci koderów i dekoderów

Metody generatywne mają na celu dokładną rekonstrukcję danych po przejściu ich przez wąskie gardło. Jednym z przykładów takich sieci są autokodery. Redukują dane wejściowe do niskowymiarowej przestrzeni reprezentacji za pomocą sieci koderów i rekonstruują obraz za pomocą sieci dekoderów.

W tej konfiguracji samo wejście staje się sygnałem nadzoru (etykietą) do uczenia sieci. Sieć enkoderów można następnie wyodrębnić i wykorzystać jako punkt wyjścia do zbudowania klasyfikatora, korzystając z jednej z technik uczenia transferu omówionych w powyższej sekcji.

Podobnie inna forma sieci generatywnych — generatywne sieci przeciwstawne (GAN) — może być wykorzystywana do wstępnego szkolenia na danych nieoznakowanych. Następnie można zastosować dyskryminator i dostroić go do zadania klasyfikacji.

Metody dyskryminacyjne

Podejścia dyskryminacyjne szkolą sieć neuronową w celu uczenia się pomocniczego zadania klasyfikacji. Zadanie pomocnicze jest wybierane w taki sposób, aby sygnał nadzoru mógł być wyprowadzony z samych danych, bez adnotacji ludzkiej.

Przykładami tego typu zadań są uczenie się względnych pozycji wstawek obrazu, kolorowanie obrazów w skali szarości lub uczenie się przekształceń geometrycznych zastosowanych na obrazach. Dwa z nich omówimy bardziej szczegółowo.

Nauka względnych pozycji łatek obrazu

Nauka względnych pozycji łatek obrazu

W tej technice plamy obrazu są wyodrębniane z obrazu źródłowego w celu utworzenia siatki przypominającej układankę. Pozycje ścieżek są tasowane, a tasowane dane wejściowe są wprowadzane do sieci, która jest szkolona w celu prawidłowego przewidywania lokalizacji każdej poprawki w sieci. Tak więc sygnał nadzoru jest rzeczywistą pozycją każdej ścieżki w sieci.

Ucząc się tego, sieć uczy się względnej struktury i orientacji obiektów, a także ciągłości cech wizualnych niskiego poziomu, takich jak kolor. Wyniki pokazują, że cechy poznane podczas rozwiązywania tej układanki można w dużym stopniu przenieść na zadania, takie jak klasyfikacja obrazów i wykrywanie obiektów.

Nauka transformacji geometrycznych stosowanych do obrazów

Nauka transformacji geometrycznych stosowanych do obrazów

Te podejścia stosują mały zestaw transformacji geometrycznych do obrazów wejściowych i trenują klasyfikator, aby przewidywał zastosowane przekształcenie, patrząc na sam przekształcony obraz. Jednym z przykładów takich podejść jest zastosowanie rotacji 2D do nieoznakowanych obrazów w celu uzyskania zestawu obróconych obrazów, a następnie nauczenie sieci, aby przewidywała obrót każdego obrazu.

Ten prosty sygnał nadzoru zmusza sieć do nauki lokalizacji obiektów na obrazie i zrozumienia ich orientacji. Funkcje poznane dzięki tym podejściom okazały się wysoce przenośne i zapewniają najnowocześniejszą wydajność zadań klasyfikacyjnych w warunkach częściowo nadzorowanych.

Podejścia oparte na podobieństwach

Podejścia te wyświetlają obrazy w przestrzeni reprezentacji o stałej wielkości, w której podobne obrazy są bliżej siebie, a różne obrazy są dalej od siebie. Jednym ze sposobów na osiągnięcie tego jest użycie sieci syjamskich opartych na utracie trypletów, co minimalizuje odległość między obrazami podobnymi semantycznie. Utrata trypletów potrzebuje kotwicy, pozytywnego przykładu i negatywnego przykładu, i próbuje zbliżyć dodatnią wartość do kotwicy niż ujemną pod względem odległości euklidesowej w przestrzeni utajonej. Kotwica i pozytyw są z tej samej klasy, a negatywny przykład jest wybierany losowo z pozostałych klas.

W przypadku danych nieoznakowanych musimy wymyślić strategię tworzenia tego trójki pozytywnych i negatywnych przykładów kotwicy bez znajomości klas obrazów. Jednym ze sposobów, aby to zrobić, jest użycie losowej transformacji afinicznej obrazu zakotwiczenia jako pozytywnego przykładu i losowe wybranie innego obrazu jako przykładu negatywnego.

Strata trojaczków

Eksperyment

W tej części omówię eksperyment, który empirycznie określa potencjał nienadzorowanego treningu wstępnego do klasyfikacji obrazów. To był mój semestralny projekt na zajęcia z głębokiego uczenia się, które wziąłem z Yann LeCun na NYU zeszłej wiosny.

  • Zbiór danych . Składa się z 128 000 oznakowanych przykładów, z których połowa jest przeznaczona do szkolenia, a druga połowa do walidacji. Ponadto dostarczamy 512K nieoznakowanych obrazów. Dane zawierają łącznie 1000 klas.
  • Wstępne szkolenie nienadzorowane . AlexNet został przeszkolony w zakresie klasyfikacji rotacyjnej z wykorzystaniem rozbudowanej augmentacji danych dla 63 epok. W pracy wykorzystaliśmy hiperparametry udokumentowane przez Rotnet.
  • Szkolenie klasyfikatorów . Z czwartej warstwy splotu wyodrębniono cechy i dołączono do niej trzy w pełni połączone warstwy. Warstwy te zostały losowo zainicjowane i wytrenowane z zaplanowanym malejącym tempem uczenia się, a wczesne zatrzymanie zostało wdrożone w celu zatrzymania uczenia.
  • Dostrajanie całej sieci . W końcu dostroiliśmy sieć wyszkoloną na wszystkich oznaczonych danych. Zarówno ekstraktor cech, jak i klasyfikator, które wcześniej były oddzielnie szkolone, zostały dostrojone razem z niewielką szybkością uczenia się przez 15 epok.

Przeszkoliliśmy siedem modeli, z których każdy korzystał z innej liczby oznaczonych przykładów szkoleniowych na zajęcia. Zrobiono to, aby zrozumieć, w jaki sposób rozmiar danych treningowych wpływa na wydajność naszej częściowo nadzorowanej konfiguracji.

Eksperyment

Udało nam się uzyskać wskaźnik dokładności 82% dla wstępnego treningu w klasyfikacji rotacyjnej. W przypadku uczenia klasyfikatorów górna dokładność 5% nasyciła się wokół wartości 46,24%, a dostrojenie całej sieci dało końcową wartość 50,17%. Wykorzystując trening przedtreningowy, uzyskaliśmy lepszą wydajność niż trening nadzorowany, co daje 40% dokładności w pierwszej piątce.

Zgodnie z oczekiwaniami dokładność walidacji spada wraz ze spadkiem oznakowanych danych treningowych. Jednak spadek wydajności nie jest tak znaczący, jak można by oczekiwać w nadzorowanym otoczeniu. 50% spadek danych treningowych z 64 przykładów na klasę do 32 przykładów na klasę skutkuje tylko 15% spadkiem dokładności walidacji.

Eksperyment

Używając tylko 32 przykładów na klasę, nasz częściowo nadzorowany model osiąga lepszą wydajność niż model nadzorowany wytrenowany przy użyciu 64 przykładów na klasę. Dostarcza to empirycznych dowodów na potencjał półnadzorowanych podejść do klasyfikacji obrazów w zestawach danych oznaczonych etykietami o niskich zasobach.

Zawijanie

Możemy stwierdzić, że nienadzorowane uczenie się jest potężnym paradygmatem, który może zwiększyć wydajność w przypadku zestawów danych o niskich zasobach. Nienadzorowane uczenie się jest obecnie w powijakach, ale będzie stopniowo zwiększać swój udział w przestrzeni widzenia komputerowego, umożliwiając uczenie się z tanich i łatwo dostępnych nieoznakowanych danych.


Dalsza lektura na blogu Toptal Engineering:

  • Wykresy analizy danych za pomocą Python/NetworkX