1. 程式人生 > >卷積網路之感受野

卷積網路之感受野

轉載 http://www.cnblogs.com/objectDetect/p/5947169.html
1 感受野的概念
      從直觀上講,感受野就是視覺感受區域的大小。在卷積神經網路中,感受野的定義是 
卷積神經網路每一層輸出的特徵圖(feature map)上的畫素點在原始影象上對映的區域大小。
                

2 感受野大小的計算
         感受野計算時有下面的幾個情況需要說明:
a)第一層卷積層的輸出特徵影象素的感受野的大小等於濾波器的大小;
b)深層卷積層的感受野大小和它之前所有層的濾波器大小和步長有關係;
c)計算感受野大小時,忽略了影象邊緣的影響,即不考慮padding的大小。
        此外,關於每一層的strides的說明,這個strides是之前所有層stride的乘積,即
                                                                strides(i)= stride(1) * stride(2) * ...* stride(i-1)
        對於單層卷積網路,其feature map上每個特徵點對應原圖上的感受野大小等於卷積層濾波器的大小;對於多層卷積網路,可由此逐層往回反饋,通過反覆迭代獲得原始輸入影象中感受野大小,即後面深層的卷積層感受野大小就和之前所有網路層的濾波器大小和步長有關係了,在計算的時候,忽略影象Padding的大小。使用的公式可以表示如下:    
                                                                       r(i) = (r(i+1) - 1) * stride(i) + c(i)
        其中,  r(i)表示第i層感受野大小, r(i+1)表示第i+1層感受野大小,stride(i)表示第i層步長,c(i)表示第i層卷積核大小。  
此外,對於卷積網路中的啟用函式層(ReLU/Sigmoid/...)等,感受野迭代公式為:
                                                                                              r(i)=r(i+1)

池化層的感受野迭代公式和卷積層感受野一樣:

                                                                                    r(i) = (r(i+1) - 1) * stride(i) + c(i)