Po co zawracać sobie głowę, jeśli Max Pooling i tak po prostu przeskaluje obraz?

14

Pomysł zastosowania filtrów w celu zidentyfikowania krawędzi jest całkiem fajnym pomysłem.

Na przykład możesz zrobić zdjęcie 7. Z niektórymi filtrami możesz uzyskać przekształcone obrazy, które podkreślają różne cechy oryginalnego obrazu. Oryginalny 7:

wprowadź opis zdjęcia tutaj

może być postrzegany przez sieć jako:

wprowadź opis zdjęcia tutaj

Zauważ, jak każdy obraz wyodrębnił inną krawędź oryginału 7.

To wszystko świetnie, ale powiedzmy, że następna warstwa w sieci to warstwa Max Pooling.

Moje pytanie brzmi ogólnie: czy to nie wydaje się trochę przesadzone? Po prostu byliśmy bardzo ostrożni i celowi w identyfikowaniu krawędzi za pomocą filtrów - teraz już nas to nie obchodzi, ponieważ do diabła wybiliśmy wartości pikseli! Popraw mnie, jeśli się mylę, ale zmieniliśmy z 25 X 25 na 2 X 2! Dlaczego więc nie pójść prosto do Maxa Poolinga, czy nie skończymy z tym samym?

Jako rozszerzenie mojego pytania nie mogę przestać się zastanawiać, co by się stało, gdyby przypadkiem każdy z 4 kwadratów miał piksel o tej samej wartości maksymalnej. Z pewnością nie jest to rzadki przypadek, prawda? Nagle wszystkie obrazy treningowe wyglądają dokładnie tak samo.

Monica Heddneck
źródło

Odpowiedzi:

16

Maksymalna pula nie powoduje próbkowania obrazu w dół. Próbkuje w dół próbki funkcji (takich jak krawędzie), które właśnie wyodrębniłeś. Co oznacza, że ​​uzyskasz przybliżone informacje o tych krawędziach lub innych funkcjach. Często tego właśnie potrzebuje sieć do uogólnienia - aby ją sklasyfikować, nie musi wiedzieć, że krawędź pionowa biegnie od 10,5 do 10,20, ale że jest w przybliżeniu pionowa krawędź około 1/3 od lewa krawędź około 2/3 wysokości obrazu.

Te bardziej surowe kategorie funkcji z natury obejmują więcej wariantów obrazu wejściowego przy bardzo niskim koszcie, a zmniejszenie wielkości mapy obiektów jest również miłym efektem ubocznym, przyspieszającym działanie sieci.

Aby to działało dobrze, nadal musisz wyodrębnić funkcje, od których nie działa maksymalne tworzenie puli, więc warstwa splotowa jest konieczna. Powinieneś przekonać się, że możesz pobrać próbkę oryginalnego obrazu (do 14 x 14) zamiast korzystać z pierwszej warstwy z maksymalnym pulowaniem, a nadal uzyskasz dość rozsądną dokładność. Ile puli zrobić i gdzie dodać te warstwy to kolejny problem hiperparametrów podczas budowania głębokiej sieci neuronowej.

Neil Slater
źródło
6

Nie możemy przejść bezpośrednio z warstwy wejściowej do maksymalnej puli ze względu na convolution layerpomiędzy. Powodem splotu jest wyodrębnienie funkcji. Maksymalne zbieranie w dół próbek próbek, które zostały wyodrębnione. Jeśli uważasz, że istnieją funkcje, których brakuje z powodu bezpośredniego przeskoku z dużej matrycy do warstwy maksymalnej puli, możesz dodać więcej warstw splotu pomiędzy nimi, aż poczujesz się zadowolony z rozmiaru, a następnie wykonaj maksymalną pulę, aby nie jest przesadą.

Maksymalne zestawianie, które jest formą próbkowania w dół, służy do identyfikacji najważniejszych funkcji. Ale można również zastosować średnią pulę i różne inne techniki. Zwykle pracuję z tekstem, a nie obrazami. Dla mnie wartości zwykle nie są takie same. Ale jeśli tak, to nie miałoby to większego znaczenia, ponieważ po prostu wybiera największą wartość.

Bardzo dobre zrozumienie z wiki -The intuition is that once a feature has been found, its exact location isn't as important as its rough location relative to other features. The function of the pooling layer is to progressively reduce the spatial size of the representation to reduce the amount of parameters and computation in the network, and hence to also control overfitting. It is common to periodically insert a pooling layer in-between successive conv layers in a CNN architecture. The pooling operation provides a form of translation invariance.

Hima Varsha
źródło
Czy potrafisz wyjaśnić ostatnie zdanie The pooling operation provides a form of translation invariance?
HelloWorld,
@StudentT Oznacza to, że wynik puli maksymalnej będzie mniej więcej taki sam, jeśli funkcja zostanie wykryta w dowolnym miejscu obrazu. Przesuń element na obrazie, który aktywuje tę funkcję, a inne wejście do maksymalnej puli będzie maksymalne, ale wyjście maksymalnej puli powinno być takie samo.
mrmcgreg,
@mrmcgreg Uważam, że tak jest w przypadku globalnego łączenia, a nie maksymalnego łączenia. Max pooling zapewnia rodzaj niezmienności lokalnych tłumaczeń w regionie puli (np. 2x2). Pozwala to na pewną fluktuację funkcji.
geometrikal
0

Konwolucja polega zasadniczo na filtrowaniu obrazu za pomocą mniejszego filtra pikseli, aby zmniejszyć rozmiar obrazu bez utraty relacji między pikselami (parametry sieci). Pula danych zmniejsza również rozmiar przestrzenny poprzez wyodrębnienie maks., Średniej lub sumy pikseli do rozmiaru filtru może jednak pomijać ważny parametr w procesie, który splot osiąga ponownie, nie zmniejszając znacząco wielkości.

Siddharth Parmar
źródło