感受野的计算
感受野的概念
之前提到,vgg的主要亮点在于堆叠多个3x3卷积核来代替7x7的卷积核
减少了所需的参数量,在保持感受野相同的情况下,提升了网络的深度,在一定程度上提升了神经网络的效果
这里输出层层感受野指的是该层每个单元对应输入图像上的区域大小
感受野大小计算
RFi+1为下一层卷积层感受野,RFi为当前卷积层感受野大小。k为卷积核大小,s为步长。
这里和步长相关,是因为如下图所示。
如果,以卷积核正中间的点为中心。
周围的点所对应的区域,都是分别往不同方向移动步长个单位。
也就是变成了在原有的感受野大小基础上
往周围扩展(宽或高上要移动的次数*每移动一次的步长)的大小
这里宽或高上要移动的次数就是(卷积核大小-1),因为中间的一个点不用移动
最终感受野 = (卷积核大小 -1) *卷积步长 + 上一层的感受野
以vgg为例
第一层3*3卷积层感受野为 (1-1)*1 +3 =3
第二层3*3卷积层感受野为(3-1)*1+3=5
第三层3*3卷积层感受野为(5-1)*1+3=7
此时感受野与单独的7*7卷积核一致
使用感受野后的参数与计算量
(计算原理见昨天发的两篇文章)
假设卷积核个数皆为n
7*7的卷积核需要 7*7*n*n=49n^2的参数量
三个3*3卷积核需要 3*3*n*n+3*3*n*n+3*3*n*n=27n^2
可以发现参数量远远小于7*7的卷积核的参数量
假设输入大小为m*m*n
7*7的卷积核的运算量约为[(7*7+1)*n+(n-1)]*m*m*n=(51n-1)*m*m*n
3个3*3的卷积核的运算量约为[(3*3+1)*n+(n-1)]*m*m*n *3=(33n-3)*m*m*n
计算量也得到了显著下降