Introduction
感受野(receptive field)是卷積神經網絡(Convolutional Neural Network,CNNs)中最重要的概念之一,當前流行的物體識別方法的架構大都圍繞感受野的設計。
從CNN可視化的角度來講,感受野就是輸出featuremap某個節點的響應對應的輸入圖像的區域就是感受野。
比如我們第一層是一個33的卷積核,那么我們經過這個卷積核得到的featuremap中的每個節點都源自這個33的卷積核與原圖像中33的區域做卷積,那么我們就稱這個featuremap的節點感受野大小為33。
如果再經過pooling層,假定卷積層的stride是1,pooling層大小22,stride是2,那么pooling層節點的感受野就是44。
有幾點需要注意的是,padding並不影響感受野,stride只影響下一層featuremap的感受野,size影響的是該層的感受野。
Calculation
第n層的感受野為:
\[r_n = r_{n-1} \times k_n - (r_{n-1} - \prod_{i=1}^{n-1} s_i)\times (k_n - 1) \]
其中,\(r_n\):第n層感受野;\(k_n\):第n層卷積/池化核大小;
化簡后得:
\[r_n = r_{n-1} + (k_n - 1) \prod_{i=1}^{n-1} s_i \]
說人話,就是,第n層感受野大小=上一層感受野大小+(第n層卷積核大小-1)乘以本層以前所有stride的乘積。