AlexNet在LeNet的基础上增加了3个卷积层。但AlexNet作者对它们的卷积窗口、输出通道数和构造顺序均做了大量的调整。虽然AlexNet指明了深度卷积神经网络可以取得出色的结果,但并没有提供简单的规则以指导后来的研究者如何设计新的网络。VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路。
1、VGG块
VGG块的组成规律是:
连续使用数个相同的填充为1、窗口形状为3×3的卷积层后接上一个步幅为2、窗口形状为2×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。我们使用vgg_block函数来实现这个基础的VGG块,它可以指定卷积层的数量和输入输出通道数。
对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核优于采用大的卷积核,因为可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。例如,在VGG中,使用了3个3x3卷积核来代替7x7卷积核,使用了2个3x3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。
3×3的小卷积为了与5×5的大卷积有相同大小的输出和感受野,所以2个3×3的卷积才能代替1个5×5的卷积,怎么理解呢?
假设图像大小为n×n,5×5卷积核输出图像大小为(n-5+1)/1=n-4
第一次3×3卷积核输出图像大小为(n-3+1)/1=n-2,第二次(n-2-3+1)/2=n-4
同理三个3×3的卷积才能代替一个7×7的卷积,以此类推。 但是在相同的输出和感受野下,3×3的小卷积有更多的好处:
1 . 网络层数增加,非线性激活函数变多,增加了非线性表达能力,使得分割平面更具有可分性
2 . 参数变少,两个3×3和一个5×5的参数比例为3×3×2/(5×5)=0.72,同样三个3×3×3/(7×7)=0.52,参数大大减少
3 . 能捕捉到各个方向的最小尺寸
因为每个卷积层的窗口大小一样,所以每层的模型参数尺寸和计算复杂度与输入高、输入宽、输入通道数和输出通道数的乘积成正比。VGG这种高和宽减半以及通道翻倍的设计使得多数卷积层都有相同的模型参数尺寸和计算复杂度。
原文链接:https://blog.csdn.net/qq_39594939/article/details/98851800