CNNs mają ważne wady
CNNs (convolutional neural networks) są niesamowite. Są one jednym z powodów, dla których deep learning jest dziś tak popularny. Mogą robić niesamowite rzeczy, które ludzie myśleli, że komputery nie będą w stanie zrobić przez długi, długi czas. Niemniej jednak mają swoje granice i podstawowe wady.
rozważmy bardzo prosty i nietechniczny przykład. Wyobraź sobie twarz. Jakie są komponenty? Mamy owal twarzy, dwoje oczu, nos i usta. Dla CNN sama obecność tych obiektów może być bardzo silnym wskaźnikiem, aby uznać, że na obrazie znajduje się Twarz. Orientacyjne i względne relacje przestrzenne między tymi komponentami nie są bardzo ważne dla CNN.
jak działa CNNs? Głównym składnikiem CNN jest warstwa splotu. Jego zadaniem jest wykrywanie ważnych funkcji w pikselach obrazu. Warstwy, które są głębsze (bliżej wejścia) nauczą się wykrywać proste funkcje, takie jak krawędzie i gradienty kolorów, podczas gdy wyższe warstwy połączą proste funkcje w bardziej złożone funkcje. Wreszcie, gęste warstwy na górze sieci będą łączyć funkcje bardzo wysokiego poziomu i wytwarzać prognozy klasyfikacji.
ważną rzeczą do zrozumienia jest to, że cechy wyższego poziomu łączą cechy niższego poziomu jako sumę ważoną: aktywacje poprzedniej warstwy są mnożone przez wagi neuronu następnej warstwy i dodawane, zanim zostaną przekazane do nieliniowości aktywacji. Nigdzie w tej konfiguracji nie ma relacji pozy (translacyjnej i rotacyjnej) między prostszymi funkcjami, które tworzą funkcję wyższego poziomu. Podejście CNN do rozwiązania tego problemu polega na wykorzystaniu max poolingu lub kolejnych warstw splotu, które zmniejszają rozmiar przestrzenny danych przepływających przez sieć, a tym samym zwiększają „pole widzenia” neuronów wyższej warstwy, umożliwiając im wykrywanie cech wyższego rzędu w większym obszarze obrazu wejściowego. Max pooling to kula, która sprawiła, że sieci konwojowe działają zaskakująco dobrze, osiągając nadludzką wydajność w wielu obszarach. Ale nie daj się zwieść jego wydajności: podczas gdy CNNs działają lepiej niż jakikolwiek model przed nimi, Max pooling jednak traci cenne informacje.
Hinton sam stwierdził, że fakt, że max pooling działa tak dobrze, jest wielkim błędem i katastrofą:
Hinton: „operacja poolingu używana w konwolucyjnych sieciach neuronowych jest dużym błędem, a fakt, że działa tak dobrze, jest katastrofą.”
oczywiście można pozbyć się max poolingu i nadal uzyskać dobre wyniki z tradycyjnymi CNN, ale nadal nie rozwiązują kluczowego problemu:
wewnętrzna reprezentacja danych konwolucyjnej sieci neuronowej nie uwzględnia ważnych hierarchii przestrzennych między prostymi i złożonymi obiektami.
w powyższym przykładzie sama obecność dwóch oczu, ust i nosa na zdjęciu nie oznacza, że istnieje twarz, musimy również wiedzieć, jak te obiekty są zorientowane względem siebie.
Hardcoding 3D World into a Neural Net: Odwrotne podejście do grafiki
Grafika komputerowa zajmuje się konstruowaniem obrazu wizualnego z jakiejś wewnętrznej hierarchicznej reprezentacji danych geometrycznych. Zauważ, że struktura tej reprezentacji musi uwzględniać względne pozycje obiektów. Ta wewnętrzna reprezentacja jest przechowywana w pamięci komputera jako tablice obiektów geometrycznych i macierzy, które reprezentują względne pozycje i orientację tych obiektów. Następnie specjalne oprogramowanie pobiera tę reprezentację i konwertuje ją na obraz na ekranie. Nazywa się to renderowaniem.
zainspirowany tą ideą, Hinton twierdzi, że mózgi w rzeczywistości robią przeciwieństwo renderowania. Nazywa to odwróconą grafiką: z informacji wizualnych odbieranych przez oczy dekonstruują hierarchiczną reprezentację otaczającego nas świata i próbują dopasować ją do już poznanych wzorców i relacji przechowywanych w mózgu. Tak właśnie dzieje się rozpoznawanie. Kluczową ideą jest to, że reprezentacja obiektów w mózgu nie zależy od kąta widzenia.
w tym momencie pojawia się pytanie: jak modelować te hierarchiczne relacje wewnątrz sieci neuronowej? Odpowiedź pochodzi z grafiki komputerowej. W grafice 3D relacje między obiektami 3D mogą być reprezentowane przez tzw. pozę, czyli w istocie translację plus rotację.
Hinton twierdzi, że w celu poprawnej klasyfikacji i rozpoznawania obiektów, ważne jest zachowanie hierarchicznych relacji między częściami obiektów. Jest to kluczowa intuicja, która pozwoli Ci zrozumieć, dlaczego teoria kapsułek jest tak ważna. Zawiera relatywne relacje między obiektami i jest reprezentowana numerycznie jako matryca pozy 4D.
Kiedy te relacje są wbudowane w wewnętrzną reprezentację danych, staje się bardzo łatwe dla modelu zrozumieć, że to, co widzi, jest po prostu innym spojrzeniem na coś, co widział wcześniej. Rozważ poniższy obraz. Możesz łatwo rozpoznać, że jest to Statua Wolności, mimo że wszystkie obrazy pokazują ją pod różnymi kątami. Dzieje się tak, ponieważ wewnętrzna reprezentacja Statuy Wolności w mózgu nie zależy od kąta widzenia. Prawdopodobnie nigdy nie widziałeś tych dokładnych zdjęć, ale wciąż od razu wiedziałeś, co to było.