Jak działają kolejne warstwy splotu?


29

To pytanie sprowadza się do „jak dokładnie działają warstwy splotu .

Załóżmy, że mam obraz w skali szarości . Obraz ma jeden kanał. W pierwszej warstwie stosuję splot 3 × 3 z filtrami k 1 i wypełnieniem. Następnie mam kolejną warstwę splotu z 5 x 5 zwojami i filtrami k 2 . Ile mam map obiektów?n×m3×3k15×5k2

Splot typu 1

Pierwsza warstwa zostanie wykonana. Następnie mam mapy funkcji (po jednej dla każdego filtra). Każdy z nich ma rozmiar n × m . Każdy piksel został utworzony przez pobranie 3 3 = 9 pikseli z wypełnionego obrazu wejściowego.k1n×m33=9

Następnie nakładana jest druga warstwa. Każdy filtr jest stosowany osobno do każdej mapy obiektów . Powoduje to utworzenie map obiektów dla każdej mapy obiektów k 1 . Istnieją więc mapy obiektów k 1 × k 2 po drugiej warstwie. Każdy piksel każdego z nowych map fabularnych został stworzony poprzez 5 5 = 25 „piksele” z wyściełanym fabularnego mapie sprzed.k2k1k1×k255=25

System musi nauczyć się parametrów parametrów.k133+k255

Splot typu 2.1

Tak jak poprzednio: pierwsza warstwa zostanie wykonana. Następnie mam mapy funkcji (po jednej dla każdego filtra). Każdy z nich ma rozmiar n × m . Każdy piksel został utworzony przez pobranie 3 3 = 9 pikseli z wypełnionego obrazu wejściowego.k1n×m33=9

W przeciwieństwie do wcześniejszych: następnie nakładana jest druga warstwa. Każdy filtr jest stosowany do tego samego regionu, ale wszystkie mapy obiektów wcześniej. Powoduje to w sumie mapy funkcji po wykonaniu drugiej warstwy. Każdy piksel każdej z nowych map obiektów został utworzony przez pobranie k 25 5 = 25 k 2 „pikseli” wcześniej wypełnionych map obiektów.k2k255=25k2

System musi nauczyć się parametrów parametrów.k133+k255

Splot typu 2.2

55=25k133+k2k155

Pytanie

  1. Czy zazwyczaj stosuje się typ 1 lub typ 2?
  2. Który typ jest używany w Alexnet ?
  3. Który typ jest używany w GoogLeNet ?
    • 1×1
    • Jeśli powiesz typ 2: wyjaśnij kwadratowy koszt („Na przykład w sieci głębokiego widzenia, jeśli połączone są dwie warstwy splotowe, każdy równomierny wzrost liczby ich filtrów powoduje kwadratowy wzrost obliczeń”)

W przypadku wszystkich odpowiedzi proszę podać dowody (dokumenty, podręczniki, dokumentacja ram), że odpowiedź jest poprawna.

Dodatkowe pytanie 1

Czy pulowanie jest stosowane zawsze tylko dla mapy obiektów, czy też jest wykonywane na wielu mapach obiektów?

Dodatkowe pytanie 2

42×3143×4×5

Moje badania


Chwilę później: analiza i optymalizacja architektur sieci neuronowych splotowych , szczególnie rozdział 2 i rysunek 2.2 oraz rysunek 2.3.
Martin Thoma

Odpowiedzi:


5

Nie jestem pewien co do opisanych powyżej alternatyw, ale powszechnie stosowaną metodologią jest:

k23˙3˙k1+k1˙5˙5˙k2

Premia 1: Łączenie odbywa się osobno dla każdej mapy obiektów.

Premia 2: Kolejność przesuwania się nie ma znaczenia. W rzeczywistości każde wyjście jest obliczane na podstawie poprzedniej warstwy, więc odpowiedzi filtra wyjściowego nie zależą od siebie. Można je obliczać równolegle.


1
Zupełnie zapomniałem o tym pytaniu. W międzyczasie napisałem pracę magisterską na temat CNN. Rozdział 3 wyjaśnia, jak działają.
Martin Thoma,

1
Aby wyjaśnić: typ 2.2 jest poprawny (opisany w tej odpowiedzi)
Martin Thoma,

1
W przypadku, gdy ktoś naprawdę chce zobaczyć to w działaniu, wdrożyłem głęboką splotową sieć neuronową w arkuszach google. Możesz zobaczyć filtry i obraz wejściowy piksel po pikselu, ponieważ działa on przez CNN, dopóki CNN nie przewidzi odpowiedzi: docs.google.com/spreadsheets/d/…
bwest87

5

Właśnie zmagałem się z tym samym pytaniem przez kilka godzin. Pomyślałem, że podzielę się stroną, która pomogła mi to zrozumieć.

Odpowiedź jest taka, że ​​filtry dla drugiej warstwy splotowej nie mają tej samej wielkości co filtry dla pierwszej warstwy. Zasadniczo filtr musi mieć taką samą liczbę wymiarów, co dane wejściowe . Tak więc w pierwszej warstwie konwekcyjnej wejście ma 2 wymiary (ponieważ jest to obraz). Dlatego filtry mają również dwa wymiary. Jeśli w pierwszej warstwie konwekcyjnej znajduje się 20 filtrów, wynikiem pierwszej warstwy konwekcyjnej jest stos 20 map obiektów 2D. Tak więc wynik pierwszej warstwy konwekcyjnej jest trójwymiarowy, przy czym rozmiar trzeciego wymiaru jest równy liczbie filtrów w pierwszej warstwie.

Teraz ten stos 3D stanowi wejście do drugiej warstwy konwekcyjnej. Ponieważ wejściem do drugiej warstwy jest 3D, filtry również muszą być 3D. Spraw, aby rozmiar filtrów drugiej warstwy w trzecim wymiarze był równy liczbie map obiektów, które były wyjściami pierwszej warstwy.

Teraz po prostu zwołujesz pierwsze 2 wymiary; wiersze i kolumny. Zatem splot każdego filtra drugiej warstwy ze stosem map obiektów (wyjście pierwszej warstwy) daje pojedynczą mapę obiektów.

Rozmiar trzeciego wymiaru wyniku drugiej warstwy jest zatem równy liczbie filtrów w drugiej warstwie.


2

Sprawdź ten wykład i wizualizację

Zwykle stosuje się splot typu 2.1. Na wejściu masz obraz NxMx1, a następnie po pierwszym splocie uzyskasz N_1xM_1xk_1, więc twój obraz po pierwszym splocie będzie miał k_1 kanałów. Nowy wymiar N_1 i M_1 będzie zależeć od Twojego kroku S i wypełnienia P: N_1 = (N - 3 + 2P) / S + 1, obliczasz M_1 analogicznie. Dla pierwszej warstwy konwekcyjnej będziesz miał ciężary 3x3xk_1 + k_1. Dodano funkcję k_1 dla odchyleń w funkcji nieliniowej.

W drugiej warstwie masz jako obraz wejściowy o rozmiarze N_1xM_1xk_1, gdzie k_1 to nowa liczba kanałów. A po drugim splocie otrzymujesz obraz (tablicę) N_2xM_2xk_2. W drugiej warstwie masz parametry 5x5xk_2xk_1 + k_2.

Dla splotu 1x1 z filtrami k_3 i wejściowym NxMxC (C to liczba kanałów wejściowych) otrzymasz nowy obraz (tablica) NxMxk_3, więc 1x1 ma sens. Zostały one przedstawione w tym artykule

Premia 1: pule są stosowane na mapie obiektów.

Aby uzyskać szczegółowe informacje, zobacz slajdy z kursu CNN na Stanford - masz tam ładną wizualizację, jak sumowanie splotu jest uzyskiwane z kilku kanałów wejściowych.


2
Odpowiedzi tylko z linkiem są odradzane - linki mogą przestać działać. Czy możesz wstawić odpowiednie informacje?
Sean Owen,

1
wizualizacja była bardzo pomocna. Moją chwilą objawienia było uświadomienie sobie, że filtry są trójwymiarowe, a nie dwuwymiarowe.
kmace

1
Świetne linki, sortuj dla mnie rzeczy. Ale twoja odpowiedź wydaje się niespójna z tym, co powiedziano w linkach, szczególnie w warstwie konwekcyjnej 2 każde pole odbiorcze jest trójwymiarowe o wymiarach 5x5xk_1, więc liczba parametrów powinna wynosić 5 * 5 * k_1 * k_2 (plus stronniczość).
Daniel Schlaug

@DanielSchlaug masz rację, poprawiłem odpowiedź.
pplonski

1

k1331k1

k255k1k2

Oznacza to, że jądra w warstwie splotowej obejmują głębokość wyjściową poprzedniej warstwy.

1×1kn11kn1

Spekulacja:

Dodatkowe pytanie 2 nie jest czymś, co znam, ale zgaduję, że parametr głębokości w zwoju staje się dodatkowym wymiarem.

mnknmnkn+1kn

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.