Studiuję splotowe sieci neuronowe (CNN) ze względu na ich zastosowania w wizji komputerowej. Znam już standardowe sieci neuronowe typu feed-forward, więc mam nadzieję, że niektórzy ludzie tutaj pomogą mi zrobić dodatkowy krok w zrozumieniu CNN. Oto, co myślę o CNN:
- W tradycyjnych NN z feed-feedem mamy dane treningowe, w których każdy element składa się z wektora cech, który wprowadzamy do NN w „warstwie wejściowej”, więc przy rozpoznawaniu obrazu każdy piksel może być jednym wejściem. To są nasze wektory cech. Alternatywnie, moglibyśmy ręcznie stworzyć inne - prawdopodobnie mniejsze - wektory cech.
- Zaletą CNN jest to, że może generować silniejsze wektory cech, które są bardziej niezmienne dla zniekształceń obrazu i położenia. Jak pokazuje poniższy obraz (z tego samouczka ), CNN generują mapy funkcji, które są następnie podawane do standardowej sieci neuronowej (tak naprawdę jest to gigantyczny etap wstępnego przetwarzania).
- W ten sposób uzyskujemy te „lepsze” funkcje poprzez naprzemienne splatanie i podpróbkowanie. Rozumiem, jak działa podpróbkowanie. Dla każdej mapy obiektów wystarczy wziąć podzbiór pikseli lub możemy uśrednić wartości pikseli.
Ale przede wszystkim jestem zdezorientowany, jak działa krok konwolucji. Znam splot z teorii prawdopodobieństwa (gęstość sumy dwóch zmiennych losowych), ale jak działają one w CNN i dlaczego są skuteczne?
Moje pytanie jest podobne do tego, ale w szczególności nie jestem pewien, dlaczego działa pierwszy krok splotu.
Nie mam pojęcia, co rozumiesz przez „dlaczego działa pierwszy krok splotu”. Aby CNN odniósł sukces, musi mieć wiele warstw. Jedną z podstawowych idei CNN i wielu innych podejść do głębokiego uczenia się jest to, że większe sygnały można zidentyfikować na podstawie korelacji przestrzennej ich mniejszych części, które mogą być rzadko reprezentowane. Innymi słowy, obrazy mogą wyglądać na skomplikowane, ale są wykonane z kombinacji zaledwie kilku podstawowych części. W przypadku wizji komputerowej podstawowa struktura obrazów składa się zwykle z krawędzi i narożników. CNN próbuje wykorzystać rzadkość struktury na obrazie, szukając wspólnych zlokalizowanych struktur. Właśnie to stara się ustalić pierwsza warstwa CNN. Pomyśl o splotie jako filtrze dopasowania, który szuka sygnałów pasujących do określonego szablonu. Jak to działa, zależy od dostępnych danych. Na szczęście świat jest pełen powtórzeń na małą skalę, więc CNN dobrze sprawdza się w komputerowych zadaniach wizyjnych.
źródło
Ten film całkiem ładnie wyjaśnia podstawy splotu.
źródło