VGGNet随笔

论文:Very deep convolutional networks for large-scale image recognition

一、前言

VGGNet与GoogLeNet分别获得了那一年ImageNet图像分类大赛的第二和第一,如果说GoogleNet是通过改变网络的宽度来提高神经网络的性能(很多的并行计算),证明了适度增加网络的宽度可以提高网络的性能,那么VGGNet就是通过增加网络的深度来提高网络的性能,本文探究了网络深度与其性能之间的关系,成功的构筑了16~19层深的卷积神经网络,证明了增加网络的深度能在一定程度上影响网络的最终性能,VGGNet可以看成是AlexNet的加强版,有更深的网络层,包括卷积层和池化层下采样以及全连接层。

二、VGGNet网络模型

image.png

1、结构简单

VGGNet的网络结构就像AlexNet一样简单,甚至于比AlexNet还要更简单,因为在特征提取层里VGGNet的所有卷积核的kernel_size,stride,padding都一样,没有选择不同尺寸的卷积核做特征的提取,层与层之间使用最大池化分开,然后再加上3个全连接层,最后再接上softmax输出层,这样就构成了整个网络结构,即使整个网络结构简洁明了但是却性能十足,在特征提取上依然有很好的性能,这也是为什么直到今天VGG也依然被很多工作用于图像的特征提取器的原因。

2、小卷积核

小卷积核是VGG的一个重要特点,我们知道ZFNet的论文里提到过较大的卷积核更有可能造成特征值溢出导致梯度爆炸的问题,因此需要使用小卷积核防止梯度爆炸,而本文却是从另一个角度来解释为什么小卷积核要比大的卷积核更加有效,以下图为例:
image.png
假设feature mao的尺寸是28x28,卷积步长stride=1,padding=0,那么使用一个5x5的卷积核进行卷积得到的输出feature map的尺寸为26x26,卷积核的参数是25个。
而本文就采用多个小卷积核的方法来代替大卷积核,先使用一个3x3的卷积核进行卷积,得到feature map的尺寸为26x26,这时候在使用一个3x3的卷积核得到的feature map的尺寸为24x24,与使用一个5x5的卷积核的效果一样,但是参数却只有18个,说明多个小卷积核确实可得到与大卷积核一样的效果。我们可以从感知野的角度来解释这一现象,我们可以认为大卷积核的感知野较大,所以一次5x5就可以得到24x24的feature map,小卷积核的感知野较小,需要2个3x3的卷积核的感知野叠加才能得到一样的效果,也就是说2个3x3的卷积核的感知野相当于1个5x5的卷积核的感知野,那么也就很容易可以知道3个3x3的卷积核的感知野相当于1个7x7的卷积核的感知野,参数量更少。因此我们可以使用小卷积核来代替大卷积核,既能增加非线性的映射,也能很好的减少参数量

3、小池化核

与AlexNet的3x3的卷积核相比,VGG全部采用2x2的卷积核进行下采样。

4、通道数多

VGG的第一层通道数为64,后面每一层就翻倍一次,最多到512个通道数,也就是将空间维度的特征转移到了通道维度上。

5、层数更深,特征图更多

与第四点一样,都是卷积层注重扩大feature map的通道数,池化层专注于缩小feature map的空间尺寸,使模型架构更深更宽的同时控制了计算量的增加规模。

总结

VGG证明了较深的网络可以帮助模型更好的进行特征提取,其实也就是能够更好的提取更高级别的语义信息,能够从低级的空间信息逐渐进行特征融合,扩大其感知野,总结出更高级的语义信息,而这种高级别的语义信息才是对后边的分类有所帮助,因此VGG这种更深的特征提取层才会对后来深度学习的发展产生这么大的影响。

posted @ 2023-05-01 00:50  ZmQmZa  阅读(8)  评论(0编辑  收藏  举报