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.