O CNN, jądrach i niezmienności skali / rotacji

18

Mam kilka pytań, które mnie dezorientują w odniesieniu do CNN.
1) Funkcje wyodrębnione za pomocą CNN są niezmienne w skali i rotacji?
2) Jądra, których używamy do splotu z naszymi danymi, są już zdefiniowane w literaturze? jakie są te jądra? czy jest inaczej dla każdej aplikacji?

Aadnan Farooq A.
źródło

Odpowiedzi:

17

1) Funkcje wyodrębnione za pomocą CNN są niezmienne w skali i rotacji?

Cecha sama w sobie w CNN nie jest niezmienna w skali ani rotacji. Aby uzyskać więcej informacji, zobacz: Dogłębne uczenie się. Ian Goodfellow, Yoshua Bengio i Aaron Courville. 2016: http://egrcc.github.io/docs/dl/deeplearningbook-convnets.pdf ; http://www.deeplearningbook.org/contents/convnets.html :

Splot nie jest naturalnie równoważny z niektórymi innymi transformacjami, takimi jak zmiany skali lub obrotu obrazu. Inne mechanizmy są niezbędne do obsługi tego rodzaju transformacji.

Jest to maksymalna warstwa pulująca, która wprowadza takie niezmienniki:

wprowadź opis zdjęcia tutaj

2) Jądra, których używamy do splotu z naszymi danymi, są już zdefiniowane w literaturze? jakie są te jądra? czy jest inaczej dla każdej aplikacji?

Jądra są poznawane podczas fazy szkoleniowej ANN.

Franck Dernoncourt
źródło
Nie mogę mówić o szczegółach w odniesieniu do obecnego stanu wiedzy, ale na temat punktu 1 uważam to za interesujące.
GeoMatt22,
@Franck 1) Oznacza to, że nie podejmujemy żadnych specjalnych kroków, aby zmiana rotacji systemu była niezmienna? a co z niezmiennikiem skali, czy możliwe jest uzyskanie niezmiennika skali z maksymalnej puli?
Aadnan Farooq A
2) Jądra to cechy. Nie rozumiem [Tutaj] ( wildml.com/2015/11/… ) Wspomnieli, że „Na przykład w klasyfikacji obrazów CNN może nauczyć się rozpoznawać krawędzie z surowych pikseli w pierwszej warstwie, a następnie używać krawędzi do wykrywania prostych kształtów w drugą warstwę, a następnie użyj tych kształtów, aby zniechęcić obiekty wyższego poziomu, takie jak kształty twarzy na wyższych warstwach. Ostatnia warstwa to klasyfikator, który korzysta z tych funkcji wysokiego poziomu ”.
Aadnan Farooq A
2
Zauważ, że pula, o której mówisz, jest określana jako pula międzykanałowa i nie jest typem pula, o której zwykle się mówi, gdy mówi się o „pula maks.”, Która pula dotyczy tylko wymiarów przestrzennych (a nie różnych kanałów wejściowych ).
Soltius
1
Czy to oznacza, że ​​model, który nie ma żadnych warstw puli maksymalnej (większość obecnych architektur SOTA nie używa puli) jest całkowicie zależny od skali?
shubhamgoel27,
6

Myślę, że jest kilka rzeczy, które Cię dezorientują, więc najpierw.

x[n]h[n]x[n]h[n]y[n]=(xh)[n]

y[n]=m=-x[m] h[n-m]

To samo dotyczy sygnałów jednowymiarowych, ale to samo można powiedzieć o obrazach, które są tylko sygnałami dwuwymiarowymi. W takim przypadku równanie staje się:

janmiw[r,do]=u=-v=-jaolre[u,v] k[r-u,do-v]

Obrazowo dzieje się to:

wprowadź opis zdjęcia tutaj

W każdym razie należy pamiętać, że jądro , tak naprawdę, nauczyło się podczas szkolenia Deep Neural Network (DNN). Jądro będzie po prostu tym, czym przekręcisz swój wkład. DNN nauczy się jądra, dzięki czemu wydobędzie pewne aspekty obrazu (lub poprzedniego obrazu), które będą dobre dla zmniejszenia utraty celu docelowego.

Jest to pierwszy kluczowy punkt do zrozumienia: tradycyjnie ludzie projektują jądra, ale w głębokim uczeniu pozwalamy sieci decydować, jakie powinno być najlepsze jądro. Jedyne, co określamy, to wymiary jądra. (Nazywa się to hiperparametrem, na przykład 5x5 lub 3x3 itp.).

Tarin Ziyaee
źródło
Ładne wyjaśnienie. Czy możesz odpowiedzieć na pierwszą część pytania. O CNN jest niezmienna skala / rotacja?
Aadnan Farooq A
1
@AadnanFarooqA Zrobię to dziś wieczorem.
Tarin Ziyaee
2

Wielu autorów, w tym Geoffrey Hinton (który proponuje sieć Capsule), próbuje rozwiązać problem, ale jakościowo. Staramy się rozwiązać ten problem ilościowo. Dzięki temu, że wszystkie jądra splotu są symetryczne (symetria dwuścienna rzędu 8 [Dih4] lub symetria obrotu o 90 stopni, symetryczna itp.) W CNN, zapewnilibyśmy platformę dla wektora wejściowego i wektora wynikowego na każdej ukrytej warstwie splotu obracanego synchronicznie z tą samą właściwością symetryczną (tj. Dih4 lub symetryczny obrót o 90 stopni i tak dalej). Dodatkowo, mając taką samą właściwość symetryczną dla każdego filtra (tj. W pełni połączoną, ale waży współdzielenie z tym samym wzorem symetrycznym) na pierwszej warstwie spłaszczonej, wynikowa wartość na każdym węźle byłaby ilościowo identyczna i prowadziłaby do tego samego wektora wyjściowego CNN także. Nazwałem to CNN identycznym z transformacją (lub TI-CNN-1). Istnieją inne metody, które mogą również konstruować CNN identyczny z transformacją przy użyciu symetrycznego wejścia lub operacji w CNN (TI-CNN-2). W oparciu o TI-CNN, CNN o identycznej rotacji z przekładnią (GRI-CNN) można zbudować z wielu TI-CNN z wektorem wejściowym obróconym o mały kąt kroku. Ponadto, skomponowany ilościowo identyczny CNN można również skonstruować poprzez połączenie wielu GRI-CNN z różnymi transformowanymi wektorami wejściowymi.

  1. „Transformacyjnie identyczne i niezmiennicze splotowe sieci neuronowe za pośrednictwem operatorów elementów symetrycznych” https://arxiv.org/abs/1806.03636 (czerwiec 2018 r.)

  2. „Identycznie transformacyjne i niezmiennicze splotowe sieci neuronowe poprzez połączenie operacji symetrycznych lub wektorów wejściowych” https://arxiv.org/abs/1807.11156 (lipiec 2018 r.)

  3. „Zorientowane obrotowo identyczne i niezmienne konwolucyjne systemy sieci neuronowych” https://arxiv.org/abs/1808.01280 (sierpień 2018 r.)

Ben Lo
źródło
-1

Myślę, że max pooling może zarezerwować niezmienniki translacyjne i rotacyjne tylko dla tłumaczeń i rotacji mniejszych niż rozmiar kroku. Jeśli większa, brak niezmienniczości

feynman
źródło
1
czy mógłbyś się trochę rozwinąć? Zachęcamy do odpowiedzi na tej stronie, aby były nieco bardziej szczegółowe niż to (teraz wygląda to bardziej na komentarz). Dziękuję Ci!
Antoine,