在很多网络中,都使用了3个3x3卷积核来代替7x7卷积核,使用了2个3x3卷积核来代替5x5卷积核,这样做的主要目的是:
(1)保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果;
(2)减少计算参数量
接下来说明一下减少参数的作用。我们假设图片是28*28的
对于两个3x3卷积核,所用的参数总量为2x(3x3)xchannels, 对于5x5卷积核为5x5xchannels, 因此可以显著地减少参数的数量,可以减少大约30%的参数数量。
我们使用5*5的卷积核对其卷积,步长为1,得到的结果是:(28-5)/1+1=24
然后我们使用2个卷积核为3*3的,这里的两个是指2层:
第一层3*3:得到的结果是(28-3)/1+1=26
第二层3*3:得到的结果是(26-3)/1+1=24
所以我们的最终结果和5*5的卷积核是一样的
注:
1、 感知野定义:
在卷积神经网络中,感受野的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。
看图理解:
上图左边5*5 (kernel_size k=3x3,padding_size p=1x1, stride s = 2x2)
输出3*3的特征,右图是尺寸不变的特征分布,看到输入层3*3的区域对应第一层(绿色)的一个特征点。即第一层的像素点在原始图片上映射大小是3*3.同理,再经过(kernel_size k=3x3,padding_size p=1x1, stride s = 2x2)输出第二层(黄色)的特征大小为2*2,看到第二层的像素点在原始图片上映射大小是7*7.
上面的数据仅是从图片上得到的,大致对感知野有了直观上的理解,就是这一层的特征是由输入的哪些特征的集合或者说与哪些输入特征有关,理解感知就是说这一层的特征能够看到即感知到输入的哪一块(部分)。
那么层数越深,不断卷积特征越来越小,其对应的感知野越大。
2、stride with padding: (n + 2p - f)/s + 1