Wybrałeś rozmiar filtra, kroki itp. W CNN?

12

Patrzyłem na wykłady CS231N z Stanford i staram się ominąć niektóre problemy w architekturach CNN. Próbuję zrozumieć, czy istnieją jakieś ogólne wytyczne dotyczące wybierania rozmiaru filtra splotowego i rzeczy takich jak postępy, czy też jest to bardziej sztuka niż nauka?

Rozumiem, że gromadzenie danych istnieje głównie w celu wywołania pewnej formy niezmienności tłumaczenia na model. Z drugiej strony nie mam dobrej intuicji, jak wybierać rozmiar kroku. Czy istnieją jakieś inne wytyczne w tym zakresie, poza próbą kompresji obecnego rozmiaru warstwy lub próbą uzyskania większego pola recepcyjnego dla neuronu? Czy ktoś zna jakieś dobre artykuły lub podobne, które o tym dyskutują?

dst
źródło

Odpowiedzi:

9

Jako tekst wprowadzający do wszystkich zagadnień, które wymienisz, poleciłbym książkę do głębokiego uczenia się . Zapewnia szeroki przegląd tej dziedziny. Wyjaśnia rolę każdego z tych parametrów.

Moim zdaniem bardzo pomocne jest zapoznanie się z niektórymi najpopularniejszymi architekturami (resnet, incepcja, alex-net) i wydobycie kluczowych pomysłów prowadzących do decyzji projektowych. Po przeczytaniu wyżej wymienionej książki.

W sylabusie wykładów, do których się odwołujesz, wyjaśniono bardzo szczegółowo, w jaki sposób warstwa splotowa dodaje dużą liczbę parametrów (wag, odchyleń) i neuronów. Po wyszkoleniu ta warstwa jest w stanie wydobyć znaczące wzory z obrazu. W przypadku niższych warstw filtry te wyglądają jak ekstraktory krawędzi. W przypadku wyższych warstw te prymitywne kształty są łączone w celu opisania bardziej złożonych form. Filtry te wiążą się z dużą liczbą parametrów i dużym problemem przy projektowaniu głębokich sieci, w jaki sposób można opisać złożone formy i nadal być w stanie zmniejszyć liczbę parametrów.

Ponieważ sąsiednie piksele są silnie skorelowane (szczególnie w najniższych warstwach), sensowne jest zmniejszenie wielkości wyjściowej przez podpróbkowanie (łączenie) odpowiedzi filtra. Im dalej dwa piksele są od siebie, tym mniej skorelowane. Dlatego duży krok w warstwie pulowania prowadzi do dużej utraty informacji. Swobodnie rozmawiać. Krok 2 i rozmiar jądra 2x2 dla warstwy puli to powszechny wybór.

Bardziej wyrafinowanym podejściem jest sieć Incepcji ( głębiej ze zwojami ), w której chodzi o zwiększenie rzadkości, ale nadal jest w stanie osiągnąć wyższą dokładność, poprzez wymianę liczby parametrów w warstwie splotowej w porównaniu z modułem początkowym dla głębszych sieci.

Przyjemny papier, który zawiera wskazówki na temat bieżącej architektury i roli niektórych wymiarów projektowych w uporządkowany, systematyczny sposób, to SqueezeNet: dokładność na poziomie AlexNet z 50x mniejszą liczbą parametrów i wielkości modelu <0,5 MB . Opiera się na pomysłach wprowadzonych we wcześniej wspomnianych modelach.

jpmuc
źródło
1

Jeśli rozważasz lepsze uczenie się w czasie nauki, chcę zasugerować te rozmiary jądra i kroku;

Jeśli chodzi o rozmiar filtra, myślę, że zależy to od twoich cech obrazu. Na przykład potrzebna jest duża liczba pikseli, aby sieć rozpoznała obiekt, możesz użyć większych filtrów, z drugiej strony, jeśli obiekty mają nieco małe lub lokalne cechy, rozważ zastosowanie mniejszych filtrów w stosunku do rozmiaru obrazu wejściowego.

Dla mnie rozmiar kroku byłby dla mnie lepszy w uchwyceniu drobniejszych szczegółów obrazu wejściowego.

Dla mnie zaletą łączenia jest wydobywanie najostrzejszych cech obrazu. Zasadniczo najostrzejsze funkcje wyglądają jak najlepsza reprezentacja obrazu na niższym poziomie.

Cloud Cho
źródło