Próbuję lepiej zrozumieć receptywne pola CNN. W tym celu chciałbym obliczyć pole recepcyjne każdego neuronu w LeNet. W przypadku normalnego MLP jest to dość łatwe (patrz http://deeplearning.net/tutorial/lenet.html#sparse-connectivity ), ale trudniej jest obliczyć pole recepcyjne neuronu w warstwie następującej po jednej lub więcej warstwach splotowych i łączenie warstw.
Jakie jest pole recepcyjne neuronu w 2. warstwie splotowej? O ile jest większy w następującej warstwie podpróbkowania / pulowania? A jaki jest wzór na ich obliczenie?
Odpowiedzi:
Jeśli myślisz o sieci splotowej jako instancji standardowej MLP, możesz dowiedzieć się o polach recepcyjnych w dokładnie taki sam sposób, jak w przykładzie, który podłączyłeś.
Przypomnijmy, że warstwa splotowa jest w zasadzie skrótem dla warstwy z wieloma powtarzającymi się wzorami, jak na tym obrazku (z tej odpowiedzi , pierwotnie stąd ):
Każdy z „docelowych pikseli” tego obrazu odpowiada neuronowi, którego wejściami jest niebieski kwadrat na obrazie źródłowym. W zależności od architektury sieci zwoje mogą nie odpowiadać dokładnie takim pikselom, ale to ten sam pomysł. Wagi stosowane jako dane wejściowe dla wszystkich neuronów splotowych są powiązane, ale nie ma to znaczenia dla tego, o czym tutaj myślisz.
Łączenie neuronów można myśleć w ten sam sposób, łącząc pola recepcyjne każdego z ich sygnałów wejściowych.
źródło
W Faster-rcnn efektywne pole odbiorcze można obliczyć w następujący sposób (VGG16):
Img->
Conv1 (3) -> Conv1 (3) -> Pula 1 (2) ==>
Conv2 (3) -> Conv2 (3) -> Pula 2 (2) ==>
Conv3 (3) -> Conv3 (3 ) -> Conv3 (3) -> Pool3 (2) ==>
Conv4 (3) -> Conv4 (3) -> Conv4 (3) -> Pool4 (2) ==>
Conv5 (3) -> Conv5 (3 ) -> Conv5 (3) ====>
okno 3 * 3 na mapie obiektów.
Weźmy jeden wymiar dla uproszczenia. Jeśli wywodzimy z rozmiaru 3, pierwotne pole odbiorcze:
1). na początku Conv5: 3 + 2 + 2 + 2 = 9
2). na początku Conv4: 9 * 2 + 2 + 2 + 2 = 24
3). na początku Conv3: 24 * 2 + 2 + 2 + 2 = 54
4). na początku Conv2: 54 * 2 + 2 + 2 = 112
5). na początku Conv1 (oryginalne wejście): 112 * 2 + 2 + 2 = 228
źródło