本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com
在CNN卷积神经网络中,虽然卷积的设置可以很灵活,但一般往往倾向于使用3x3卷积
本文讲解CNN卷积神经网络3x3卷积的背后意义,以使用及3x3卷积替换大卷积的方法
通过本文,可以快速了解为什么CNN卷积神经网络喜欢用3x3卷积,以及3x3卷积相比大卷积的优势
本节讲解3x3卷积在CNN中的意义和作用
CNN中的3x3卷积
3×3卷积是由VGG提出的《Very Deep Convolutional Networks for Large-Scale Image Recognition》
自从VGG提出3×3卷积后,在CNN模型中基本就只用3×3卷积,而很少使用其它更大的卷积
这是因为在CNN中,大的卷积一般可以使用多个小卷积来替换,
如下,虽然单层3x3卷积只有3x3的视野,但2层3x3卷积叠加后就能获得5x5的视野
由于可以通过叠加多层小卷积来获得更大的视野,因此只需使用小卷积就可以了
而3×3卷积是最小的能综合周边信息的卷积,所以其它大卷积基本都被3×3卷积所替代
如下,一个7×7的卷积层可用三个3×3的卷积层进行替换:
总的来说,如非特殊,在CNN中基本不会直接使用比3×3更大的卷积,
只要想使用比3×3更大的卷积,就会直接用多层3×3的卷积进行替换,
用多少层3×3的卷积由原卷积的接受野大小来决定,2层3×3卷积的接受野为5,3层3×3卷积的接受野为7...如此类推
为什么喜欢用3×3的卷积替代大卷积
以"用三个3×3的卷积层替换一个7×7的卷层"为例,它的好处如下:
👉1. 替换前后的接受野是一致的
一层3×3卷积层的接收野是3,两层之后的接收野就是5,三层的收接野就是7
这样与一个7×7的卷积层的接收野是一致的
👉2. 三层小核卷积层的参数更少
假设卷积核的输入和输出都是C个通道
三个3×3卷积层的权重参数个数为:
单个7*7卷积层的权重参数个数为:
可以明显看到,三个小核卷积层的总参数更少
👉3.三层小卷积核的拟合能力更强
由于卷积层后会跟随一个非线性激活函数(不妨假设为ReLu)
单个大卷积层的输出对原始X进行了一次非线性转换
而三个小卷积层的输出对原始X进行了三次非线性转换
明显地,三层结构拥有三次非线性变换,它的拟合能力更强
总的来说,就是用多层小核换单层大核,不仅保持了原有的视野,而且参数更少,拟合能力更强
好了,CNN的3x3卷积的意义就讲到这里了~
End