Konwolucyjne sieci neuronowe (CNN) świetnie radzą sobie z przetwarzaniem danych o strukturze siatkowej, takich jak obrazy. To jest prosta odpowiedź i to właśnie ona powinna być pierwszą rzeczą, którą mamy na uwadze. Sieć konwolucyjna jest zaprojektowana tak, aby analizować lokalne fragmenty, wielokrotnie używać tego samego detektora wzorców w całym obrazie, a następnie łączyć te lokalne wnioski w większe całości.
Taka architektura idealnie pasuje do obrazów. Obraz nie jest przypadkową listą liczb. Jest to siatka. Sąsiednie piksele są ze sobą powiązane częściej niż odległe. CNN wykorzystuje ten fakt, zamiast walczyć z nim.
Stale wracam do dwóch kluczowych koncepcji. Pierwsza to lokalne pola odbiorcze. Neuron w CNN nie musi widzieć całego obrazu naraz. Patrzy na mały fragment. Ten fragment może wykryć róg, krawędź lub drobną teksturę. Druga to współdzielone wagi. Ten sam detektor przesuwa się po obrazie. Jeśli wzorzec pojawi się po lewej lub prawej stronie, model nadal może go zauważyć przy użyciu tego samego nauczonego filtra.
Ma to znaczenie, ponieważ obrazy pełne są powtarzalnych struktur. Oko kota może znajdować się w wielu miejscach. Okno może pojawić się wysoko lub nisko na zdjęciu. CNN nie potrzebuje innego detektora dla każdego punktu. Ponownie używa tego samego. Dzięki temu model jest prostszy i lepiej dopasowany do danych.
Podoba mi się ta część, ponieważ jest praktyczna, a nie magiczna. CNN nie „rozumieją” obrazów w ludzki sposób. Budują warstwy prostych detektorów wzorców. Wczesne warstwy często wykrywają krawędzie i małe kształty. Późniejsze warstwy łączą te elementy w większe części. Model przechodzi od lokalnych faktów do bardziej użytecznych.
Dzięki tej warstwowej strukturze CNN stały się tak ważne w computer vision. Siatka obrazu dostarcza modelowi przydatnej mapy określającej położenie obiektów. Konwolucja korzysta z tej mapy. Zachowuje strukturę, którą sieci całkowicie połączone mają tendencję do ignorowania. Dla danych siatkowych jest to bardzo dobre dopasowanie.
Istnieje tu jednak jeden szczery limit. CNN nie są idealne do każdego rodzaju problemu z obrazami i nie są najlepszym wyborem dla każdego typu danych. Jeśli dane nie mają struktury siatkowej, lub jeśli długozasięgowe zależności są ważniejsze niż lokalne, sama CNN może przeoczyć istotną strukturę. Nawet w przypadku obrazów może mieć trudności, gdy zadanie wymaga bardzo szerokiego kontekstu lub gdy użyteczny wzorzec nie jest lokalny.
Ten limit jest dziś ważniejszy niż kiedyś. Współczesne systemy wizyjne często łączą idee CNN z innymi elementami, ponieważ rzeczywiste problemy bywają skomplikowane. Stara zasada nadal obowiązuje: jeśli wejście wygląda jak siatka i lokalne wzorce mają znaczenie, CNN jest naturalnym rozwiązaniem. To jest główny powód, dla którego tak dobrze sprawdzają się na obrazach.
Gdy więc odpowiadam na pytanie „czym jest konwolucyjna sieć neuronowa”, trzymam się krótko. To sieć neuronowa stworzona dla danych o strukturze siatkowej. Czyta małe lokalne regiony, ponownie używa tych samych nauczonych filtrów w przestrzeni i stopniowo buduje coraz większe cechy. Dlatego CNN świetnie radzi sobie z obrazami, ale też dlatego jej ograniczenia łatwo przeoczyć, jeśli dane nie zachowują się naprawdę jak obraz.
To jest rodzaj prostego pomysłu uczenia maszynowego, który lubię mieć zawsze pod ręką: jedna praktyczna koncepcja, jeden działający przykład i jedno szczere spojrzenie na to, co faktycznie działa. To jest również obietnica stojąca za The Model Log.



