why 3*3 convolution in VggNet

124 阅读1分钟

3 * 3 vs 7 * 7 卷积对比

phenomenon:

VggNet中密集地 使用3 * 3卷积核,无论是在浅层还是深层中。

reason:

knowledge preparation:

在了解原因之前,先得知道一个概念:感受野(Receptive Field) 。

举个栗子:
经过3层3*3卷积核的卷积,在第三层的feature map中的一个元素其实是代表了第一层中7*7个元素的信息。

reason1:

节省显存以及计算量。3*3卷积核卷3层和 直接7*7卷积核卷积一层的感受野是相同的,但是两者的占用显存(或者说是参数量)却是有明显差异的:27C< 49C。

reason2:

这样卷积能换算出更多的加法运算,利于 winograd 卷积加速。(乘法和加法在硬件实现上的时间复杂度一般是不一样的,乘法运算所需的时间通常远大于加法所需的时间。winograd就是用更多的乘法运算换算成加法运行,用廉价运算代替昂贵运算)

disadvantage:

这样小核卷积其实是丢失了不少特征细节的,特别是在浅层网络中。虽然两者的感受野是一样的,但别忘了每次卷积之后还要进行非线性拟合的ReLu激活,这个操作会损失一部分信息的。 在卷积之后中小于0的元素都置0了,造成了信息的丢失。