写在最前,正向感受野计算公式
r
n
=
r
n
−
1
+
(
k
−
1
)
∗
∏
i
=
1
n
−
1
s
i
r_n=r_{n-1}+(k-1)*\quad \prod_{i=1}^{n-1} {s_i} \quad
rn=rn−1+(k−1)∗i=1∏n−1si其中k为卷积核尺寸,s为步长。几个博客把这个公式抄来抄去,也没个所以然,实在是头疼看不懂,所以推导一下。
先简单介绍一下普通卷积和扩张卷积:
普通卷积:
卷积后图像的尺寸为: I n p u t + 2 ∗ p a d d i n g − k e r n e l s t r i d e + 1 \frac {Input+2*padding-kernel}{stride}+1 strideInput+2∗padding−kernel+1
扩张卷积:
卷积后图像的尺寸为:
I
n
p
u
t
+
2
∗
p
a
d
d
i
n
g
−
[
(
k
e
r
n
e
l
−
1
)
∗
R
d
i
l
a
t
e
d
+
1
]
s
t
r
i
d
e
+
1
\frac {Input+2*padding-[(kernel-1)*R_{dilated}+1]}{stride}+1
strideInput+2∗padding−[(kernel−1)∗Rdilated+1]+1
两者就差在卷积核的尺寸上,举例:原本卷积核为3 X 3(xxx),扩张因子为R=2(xoxox),则扩张卷积核为5 X 5(5=2+2+1)。
感受野的计算:
根据普通卷积的计算公式,要卷积得到1个像素点,则需要kernel个像素点;要卷积得到m个像素点,则需要(m-1)s+k个像素点(s为stride,k为kernel):
待
求
尺
寸
−
k
s
+
1
=
m
\frac {待求尺寸-k}{s}+1=m
s待求尺寸−k+1=m当m表示感受野的大小时,(m-1)s+k即是反向感受野计算公式,基于此公式列出下表:
观看顺序为从上到下,从右到左
‘Input列’ 的值即为各层的感受野(分别为1,k1,(k2-1)s1+k1,[(k3-1)s2+k2-1]s1+k1):
Input 为 1
L1 与 Input 相差 k1-1
L2 与 L1 相差 (k2-1) s1
L3 与 L2 相差 (k3-1) s2 s1
最终正向感受野的计算为1 + k1-1 + (k2-1)s1 + (k3-1)s2s1+…… 即为公式
r
n
=
r
n
−
1
+
(
k
−
1
)
∗
∏
i
=
1
n
−
1
s
i
r_n=r_{n-1}+(k-1)*\quad \prod_{i=1}^{n-1} {s_i} \quad
rn=rn−1+(k−1)∗i=1∏n−1si
公式通用:
计算普通卷积层的感受野时,k是卷积核大小,s是步长;
计算扩张卷积层的感受野时,k是卷积核大小,s是步长(一般s=1);
计算采样层的感受野时,k是卷积核大小,s是步长(一般s=2,或s=k不定)。