Pytanie o stronniczość w sieciach konwergencyjnych
11
Próbuję dowiedzieć się, ile wag i stronniczości jest potrzebnych dla CNN.
Powiedz, że mam obraz (3, 32, 32) i chcę zastosować filtr (32, 5, 5). Dla każdej mapy obiektów mam wagi 5 x 5, więc powinienem mieć parametry 3 x (5 x 5) x 32. Teraz muszę dodać błąd. Wydaje mi się, że mam tylko (3 x (5x5) + 1) x 32 parametry, więc czy odchylenie jest takie samo we wszystkich kolorach (RGB)?
Czy to jest poprawne? Czy utrzymuję to samo odchylenie dla każdego obrazu na całej jego głębokości (w tym przypadku 3), gdy używam różnych wag? Dlaczego?
Bias działa na wirtualny neuron, więc nie ma żadnej wartości w posiadaniu wielu danych wejściowych polaryzacji, w których jest jedno wyjście - to odpowiadałoby po prostu zsumowaniu różnych wag bias w jednym polaryzacji.
W mapach obiektów, które są wynikiem pierwszej ukrytej warstwy, kolory nie są już przechowywane osobno *. W efekcie każda mapa obiektów jest „kanałem” w następnej warstwie, chociaż zazwyczaj są one wizualizowane osobno, gdzie wejście jest wizualizowane z połączonymi kanałami. Innym sposobem myślenia na ten temat jest to, że osobne kanały RGB w oryginalnym obrazie to 3 „mapy funkcji” na wejściu.
Nie ma znaczenia, ile kanałów lub obiektów znajduje się na poprzedniej warstwie, dane wyjściowe do każdej mapy obiektów na następnej warstwie są pojedynczą wartością na tej mapie. Jedna wartość wyjściowa odpowiada jednemu wirtualnemu neuronowi, wymagającemu jednej wagi polaryzacji.
W CNN, jak wyjaśniono w pytaniu, te same wagi (łącznie z wagą obciążenia) są wspólne w każdym punkcie wyjściowej mapy obiektów. Tak więc każda mapa obiektów ma swoją własną wagę polaryzacji, a także previous_layer_num_features x kernel_width x kernel_heightwagi połączeń.
Tak więc, twój przykład, w którym (3 x (5x5) + 1) x 32suma wag dla pierwszej warstwy jest poprawna dla CNN z pierwszą ukrytą warstwą przetwarzającą wejście RGB na 32 oddzielne mapy obiektów.
* Możesz się mylić, widząc wizualizację odważników CNN, które można podzielić na kanały kolorów, na których działają.
Myślałem, że na jeden filtr przypadało jedno odchylenie ... czy mamy różne definicje wirtualnych neuronów?
Charlie Parker,
@CharlieParker Pod względem liczby parametrów jedno odchylenie na filtr jest takie samo jak jedno odchylenie na neuron. Istnieje kilka równoważnych sposobów przeglądania architektury mapy obiektów CNN. Jedną z nich byłaby warstwa „w pełni rozwinięta” z dużą liczbą neuronów o tych samych parametrach. Innym byłoby pomyśleć o każdym filtrze splotowym jako opisującym lokalne połączenia pojedynczego neuronu, a warstwa wielokrotnie wykorzystuje ten sam neuron. Myślę więc, że prawdopodobnie mamy tę samą definicję neuronu, ale odpowiedź opisuje rzeczy z jednej perspektywy.
Neil Slater
Interesujące, myślę, że myślisz o każdym neuronie dla każdego filtra, z jakiegoś powodu myślałem o każdej aktywacji dla każdego neuronu, ale filtr aktywuje się w wielu miejscach na obrazie, więc oczywiście miałem na myśli o wiele więcej neuronów.
Charlie Parker
1
Właściwością CNN jest to, że używają wspólnych wag i tendencyjności (te same wagi i odchylenie dla wszystkich ukrytych neuronów w warstwie) w celu wykrycia tej samej cechy. Prowadzi to do głębszego uczenia się w porównaniu do prostych sieci neuronowych. Możesz to przeczytać jako odniesienie:
Zadaję inne pytanie. Moje pytanie dotyczy stronniczości. Ze wzoru wynika, że dla każdej mapy obiektów są różne wagi, ale we wszystkich mapach obiektów stosuje się to samo odchylenie.
Właściwością CNN jest to, że używają wspólnych wag i tendencyjności (te same wagi i odchylenie dla wszystkich ukrytych neuronów w warstwie) w celu wykrycia tej samej cechy. Prowadzi to do głębszego uczenia się w porównaniu do prostych sieci neuronowych. Możesz to przeczytać jako odniesienie:
http://deeplearning.net/tutorial/lenet.html
http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks
źródło