ML Practicum: klasyfikacja obrazów

Przedstawiamy konwolucyjne sieci neuronowe

Przełom dla tworzenia modeli do klasyfikacji obrazów polegał na tym, że można używać powłokowej sieci neuronowej (CNN), która stopniowo wyodrębnia obraz o wyższej zawartości. Zamiast wstępnie przetwarzać dane, aby uzyskać funkcje takie jak tekstury i kształty, CNN bierze pod uwagę tylko nieprzetworzone dane piksela i określa, jak je wyodrębnić i ostatecznie ustalić, jaki obiekt tworzy.

Na początek CNN otrzymuje mapę cech wejściowych: trójwymiarową matrycę, w której rozmiar pierwszych dwóch wymiarów odpowiada długości i szerokości obrazów w pikselach. Rozmiar trzeciego wymiaru wynosi 3 (odpowiada 3 kanałom obrazu kolorowego: czerwonym, zielonym i niebieskim). CNN składa się z modułów, z których każdy wykonuje 3 operacje.

1. Splot

Konkretny powoduje wyodrębnienie kafelków mapy wejściowej i zastosowanie do nich filtrów w celu obliczenia nowych funkcji, utworzenia mapy funkcji wyjściowych lub funkcji rozszerzonych (które mogą mieć inny rozmiar i głębokość niż mapa funkcji wejściowych). Rewolucje są zdefiniowane przez 2 parametry:

  • Rozmiar kafelków, które zostaną wyodrębnione (zazwyczaj 3 x 3 lub 5 x 5 pikseli).
  • Głębokość mapy cech wyjściowych odpowiadająca liczbie zastosowanych filtrów.

Podczas wyświetlana podczas filtrowania filtry (są zgodne z rozmiarem kafelka) skutecznie przesuwają się po mapie wejściowej z siatką w pionie i poziomie, po jednym pikselu, wyodrębniając każdy odpowiedni kafelek (patrz rysunek).

Przekształcenie 3 x 3 w mapę funkcji 4 x 4 Rysunek 3. Rozwijanie głębokości 1 x 3 w kierunku mapy wejściowej o wymiarach 5 x 5 oraz głębokości 1. Jest 9 możliwych lokalizacji 3 x 3, które można wyodrębnić z mapy funkcji 5 x 5, aby utworzyć mapę funkcji z danymi wyjściowymi 3 x 3.

W przypadku każdej pary filtra, CNN wykonuje mnożenie macierzy macierzy i filtra, a następnie sumuje wszystkie elementy tablicy, aby uzyskać jedną wartość. Każda z podanych wartości w każdej parze kafelków filtrowanych jest następnie wyświetlana w tabeli rozwiniętych funkcji (patrz rysunki 4a i 4b).

Mapa cech 5 x 5 i opór trzeciokątny Rysunek 4a. Po lewej: mapa cechy wejściowej 5 x 5 (głębokość 1). Po prawej: splot 3 x 3 (głębia 1).

Rysunek 4b. Po lewej: rewolucja 3 x 3 jest realizowana na mapie cechy wejściowej 5 x 5. Po prawej: wynikowa funkcja. Kliknij wartość na mapie funkcji wyjściowych, aby zobaczyć, jak ją obliczono.

Podczas trenowania CNN "learnings" optymalne wartości dla filtrów filtra, które umożliwiają wyodrębnienie istotnych cech (tekstur, krawędzi, kształtów) z mapy wejściowej funkcji. W miarę jak rośnie liczba filtrów (głębokość mapy funkcji) stosowanych w danych wejściowych, zwiększa się też liczba funkcji, które CNN może wyodrębnić. Kompensacja polega jednak na tym, że filtry stanowią większość zasobów, które pochłaniają CNN, więc czas trenowania jest wydłużany w miarę dodawania kolejnych filtrów. Poza tym każdy filtr dodany do sieci zapewnia mniejszą wartość niż poprzedni, więc inżynierowie budują sieci, które korzystają z minimalnej liczby filtrów niezbędnych do wyodrębnienia funkcji niezbędnych do prawidłowej klasyfikacji obrazów.

2. (ReLU)

Po każdej operacji splotu CNN stosuje przekształconą jednostkę linearną (ReLU) w funkcji skonsolidowanej, by wprowadzić nieliniową model. Funkcja ReLU ( \(F(x)=max(0,x)\)) zwraca x dla wszystkich wartości x > 0 i zwraca 0 dla wszystkich wartości x ≤ 0.

3. Basen

Po zakończeniu procesu przenoszenia, gdy CNN ograniczył czas przetwarzania, zmniejszono liczbę wymiarów mapy funkcji przy jednoczesnym zachowaniu najistotniejszych informacji o funkcji. Typowym algorytmem używanym w tym procesie jest maxpooling.

Max pool działa w podobny sposób jak splot. Przesuńemy mapę i wyodrębnimy kafelki o określonym rozmiarze. W przypadku każdego kafelka maksymalna wartość jest zwracana do nowej mapy cech, a pozostałe wartości są odrzucane. Maksymalna liczba operacji pulowania to 2 parametry:

  • Rozmiar filtra maks. wstawienia (zwykle 2 x 2 piksele).
  • Krok: odległość w pikselach, oddzielająca każdy kafelek wyodrębniony. W przeciwieństwie do metod zmiennych, w których filtry przesuwają się nad pikselem mapy cech w połączeniu z maksymalnym łączeniem, progresja wskazuje lokalizacje, w których poszczególne kafelki są wyodrębnione. W przypadku filtra 2 x 2 krok 2 wskazuje, że maksymalna operacja pulowania spowoduje wyodrębnienie wszystkich nienałożonych kafelków 2 x 2 z mapy funkcji (patrz rysunek 5).

Animacja przedstawiająca maksymalną liczbę 4 x 4 powiązanych z mapą cech 4 x 4 z filtrem 2 x 2 i długością 2

Rysunek 5. Po lewej: maksymalnie 4 x 4 x 4, czyli pokazanie mapy 4 x 4 z filtrem 2 x 2 i długością 2. Po prawej: dane wyjściowe operacji maksymalnej puli. W ten sposób powstała mapa funkcji 2 x 2, zachowująca tylko maksymalne wartości na każdym kafelku.

W pełni połączone warstwy

Na końcu sieci neuronowej co najmniej jedna w pełni połączona warstwa (gdy dwie warstwy są w pełni połączone), każdy węzeł w pierwszej warstwie jest połączony z każdym węzłem w drugiej warstwie. Zadaniem uczestników jest sklasyfikowanie obiektów na podstawie cech rewolucji. Zazwyczaj w pełni połączona warstwa zawiera funkcję aktywacji softmax, która zwraca wartość prawdopodobieństwa od 0 do 1 dla każdej etykiety klasyfikacji, którą próbuje przewidzieć model.

Rysunek 6 przedstawia pełną strukturę neuronowej neuronu.

Pełny schemat splotowej sieci neuronowej
z danymi wejściowych, 2 modułami splotu i 2 w pełni połączonymi warstwami na potrzeby klasyfikacji

Rysunek 6. CNN pokazuje tu 2 moduły splotu (pojedyncze połączenie + ReLU + wymieszanie) w celu wyodrębnienia funkcji oraz 2 w pełni połączone warstwy do klasyfikowania. Inne sieci CNN mogą zawierać więcej lub mniej modułów splotowych oraz większe lub mniej w pełni połączone warstwy. Inżynierowie często eksperymentują, aby znaleźć konfigurację, która zapewnia najlepsze wyniki w przypadku ich modeli.