Sieci CNN (konwolucyjne sieci neuronowe) wykorzystują małe, uczone filtry do wykrywania cech obrazu. Filtr sprawdza małe fragmenty obrazu i daje silną reakcję, gdy znajdzie określony wzorzec.
To jest główna idea stojąca za konwolucyjną siecią neuronową, czyli CNN. Sieć nie traktuje każdego piksela jako oddzielnego, niezależnego faktu. Patrzy na sąsiadujące ze sobą piksele razem. Pomaga to jej wykrywać kształty i wzorce pojawiające się w różnych częściach obrazu.
Myślę, że filtr jest najjaśniejszym miejscem, by zacząć wyjaśnianie.
Filtr to mała siatka liczb zwana wagami. Typowy filtr obejmuje mały kwadratowy obszar, na przykład trzy na trzy piksele. Filtr przesuwa się po obrazie, krok po kroku.
W każdej pozycji CNN łączy wartości filtra z wartościami pikseli znajdujących się pod nim. Następnie dodaje te wyniki. Powstaje jedna liczba. Wysoka liczba oznacza, że dany obszar obrazu przypomina wzorzec zapisany w filtrze.
Filtr nie zaczyna od znanej mu zadania. Podczas treningu CNN zmienia swoje wagi. Uczy się, które filtry pomagają w danym zadaniu.
Jeden filtr może reagować na pionową krawędź. Inny może reagować na krawędź poziomą. Inne mogą reagować na zmianę koloru, róg lub drobną teksturę. Sieć nie wymaga programisty, który ręcznie napisałby każdą regułę.
Wynik zastosowania jednego filtra na całym obrazie nazywa się mapą cech. Jest to siatka liczb. Każda liczba zapisuje, jak silnie filtr zareagował w danej lokalizacji.
Daje to CNN dwie przydatne informacje jednocześnie. Wie, jaki wzorzec znalazł, i wie, gdzie ten wzorzec się pojawił.
Warstwa CNN używa wielu filtrów. Każdy filtr tworzy swoją własną mapę cech. Te mapy stają się następnie wejściem dla następnej warstwy.
Wczesne warstwy zwykle wykrywają proste cechy. Mogą reagować na krawędzie, linie, kolory i drobne tekstury. Późniejsze warstwy łączą te wyniki. Mogą reagować na rogi, krzywe, części obiektów i większe kształty.
Dlatego CNN może budować przydatną reprezentację obrazu etapami. Późniejsza warstwa nie musi badać każdego surowego piksela w ten sam sposób. Może korzystać z map cech stworzonych przez wcześniejsze warstwy.
Rozważmy prosty obraz roweru. Wczesny filtr może wykryć krótkie linie. Inny może wykryć przejścia od ciemnego do jasnego. Późniejsza warstwa może połączyć te sygnały w okręgi lub cienkie paski. Głębsza warstwa może reagować na koło, kierownicę lub kształt ramy.
Sieć nie podąża za napisaną listą części roweru. Uczy się numerycznych wzorców, które pomagają odróżnić rowery od innych obrazów. Te wzorce mogą być trudne do nazwania zwykłymi słowami.
Filtr przesuwa się również po obrazie, używając wspólnych wag. Ten sam filtr sprawdza każdą lokalizację. Ma to znaczenie, ponieważ krawędź pozostaje krawędzią, niezależnie od tego, czy pojawia się po lewej, czy po prawej stronie.
W pełni połączonej sieci każdy piksel mógłby być połączony z każdym neuronem. Tworzy to wiele wag. Ignoruje też fakt, że sąsiednie piksele często działają razem.
CNN używa zamiast tego połączeń lokalnych. Każdy filtr widzi mały region naraz. Te same wagi są ponownie wykorzystywane na całym obrazie. To zmniejsza liczbę uczonych wartości i zachowuje układ przestrzenny.
Rozmiar filtra i jego ruch wpływają na wynik. Odstęp między pozycjami nazywa się krokiem (stride). Większy krok daje mniejszą wyjściową mapę. Padding (dopełnienie) może dodać ramkę wokół obrazu, aby informacja o krawędziach nie została utracona zbyt szybko.
Te szczegóły brzmią mało ważne, ale zmieniają to, co sieć może zobaczyć. Filtr obejmujący mały obszar nie rozpozna dużego obiektu samodzielnie. Potrzebuje późniejszych warstw do połączenia lokalnych wyników.
Tu proste wyjaśnienie wymaga ostrożności. Ludzie często mówią, że filtry CNN wykrywają obiekty. Zwykle jest to zbyt ogólne stwierdzenie.
Filtr we wczesnej warstwie często wykrywa mały wzorzec. Nie rozumie całego obiektu. Głębsze warstwy mogą reagować na większe struktury, ponieważ ich dane wejściowe pochodzą z wcześniejszych map cech.
Obszar, który wpływa na jedną późniejszą odpowiedź, nazywa się polem recepcyjnym. Gdy warstwy się nakładają, ten obszar może obejmować coraz więcej oryginalnego obrazu. Sieć może wtedy połączyć małe cechy w większe.
Uczone filtry nie są też stałymi regułami. Ich znaczenie zależy od danych, zadania treningowego i innych warstw wokół nich. Filtr, który wygląda jak detektor krawędzi, może wspierać wiele różnych decyzji w ramach pełnego modelu.
To sprawia, że CNN są potężne, ale też trudniejsze do przeanalizowania. Samo przyjrzenie się filtrowi nie zawsze wyjaśnia ostateczny wybór modelu.
Istnieje jeszcze jeden limit. CNN może ponownie wykorzystać wzorzec w różnych lokalizacjach, ale nie oznacza to, że w pełni rozumie pozycję. Zmiany skali, oświetlenia, kąta, tła lub kształtu obiektu mogą nadal powodować problemy.
Pooling i inne wybory projektowe mogą zmniejszyć wrażliwość na drobne przesunięcia. Mogą też usuwać szczegóły dotyczące lokalizacji. Ta kompromisowa decyzja może pomóc w klasyfikacji, ale może zaszkodzić zadaniom wymagającym dokładnych pozycji.
Dane treningowe tworzą kolejny limit. Filtry uczą się na podstawie otrzymanych przykładów. Jeśli dane pomijają ważne aspekty oświetlenia, perspektywy kamery, typy obiektów lub tła, uczone cechy mogą działać słabo w tych przypadkach.
Pomysł na filtr jest więc praktyczny, a nie magiczny. CNN uczy się przydatnych lokalnych wzorców i łączy je w bogatsze cechy. Nie zyskuje pełnego wizualnego zrozumienia świata.
Kiedy wyjaśniam konwolucyjne sieci neuronowe, trzymam się prostego obrazu pracy:
Filtr to uczona siatka wag. Przesuwa się po obrazie. Każda pozycja produkuje reakcję. Reakcje tworzą mapę cech. Wiele filtrów tworzy wiele map. Późniejsze warstwy łączą je w większe wzorce.
To wystarczy, by zrozumieć, dlaczego CNN dobrze radzą sobie z obrazami.
Najtrudniejszą częścią jest często słowo „wykrywać”. Silna reakcja nie oznacza, że model nazwał lub zrozumiał cechę tak, jak zrobiłby to człowiek. Oznacza to, że liczby w tym regionie pasują do wzorca, który pomaga w zadaniu sieci.
Ta różnica ma znaczenie w rzeczywistych systemach. Model może dać pewny wynik z niewłaściwego powodu. Może użyć szczegółu tła, wzoru oświetlenia lub innego sygnału, który przypadkowo pasuje do danych treningowych.
Filtry CNN pozostają przydatnym elementem konstrukcyjnym, ponieważ odpowiadają podstawowej właściwości obrazów: sąsiednie piksele często tworzą sensowne lokalne wzorce. Metoda jest wydajna, elastyczna i łatwa do rozbudowy w głębsze warstwy. Jej ograniczenia pojawiają się, gdy lokalne wzorce nie są wystarczające.
Praktyczna lekcja jest prosta. CNN wykrywają cechy obrazu, ucząc się filtrów, stosując je do lokalnych regionów obrazu i przekazując powstałe mapy cech przez kolejne warstwy. Model uczy się, które wzorce mają znaczenie, ale jakość tych wzorców wciąż zależy od jego danych, projektu i zadania.
O takie idee skupia się The Model Log: jedna praktyczna koncepcja sztucznej inteligencji, jeden działający przykład i jeden szczery rzut oka na to, co naprawdę działa.



