研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,在最开始看到的AlexNet中都是出现了卷积核是 3x3和5×5的。那么,1x1 的卷积核有什么意义呢?
最初应用 1x1 卷积核的神经网络是 Network In Network,然后 GoogLeNet 和 VGG 也不约而同的更正了。
这个就比较好理解了,1x1 的卷积核虽小,但也是卷积核,加 1 层卷积,网络深度自然会增加。
其实问题往下挖掘,应该是增加网络深度有什么好处?为什么非要用 1x1 来增加深度呢?其它的不可以吗?
其实,这涉及到感受野的问题,我们知道卷积核越大,它生成的 featuremap 上单个节点的感受野就越大,随着网络深度的增加,越靠后的 featuremap 上的节点感受野也越大。因此特征也越来越形象,也就是更能看清这个特征是个什么东西。层数越浅,就越不知道这个提取的特征到底是个什么东西。
好比以上这个图,当层数越浅时,我们只能看到low level parts 也就是一些细节的纹理,并不知道这个纹理是来自于车轮,车身,还是其他哪里。但是随着网络层数的加深,感受野增大,到了mid level parts时,就可以看到车的一部分零件了,比如看到了车轮,车窗,但是看不完。到了层数很深后,就是high level parts了,可以看到这个物品是个完整的车子,或者是其他一个什么东西。