VGGNet笔记
VGGNet的一些理解
介绍
VGGNet是由牛津大学Visual Geometry Group提出的卷积神经网络模型(以课题组的名字命名)。他们提出了深度卷积神经网络的多种模型及配置,其中一种提交到了2013年ILSVRC(ImageNet大规模图像识别)竞赛上。这个模型由于由16个权重层组成,因此也被称为VGG-16,其在该竞赛中取得了top-5上92.7%的准确率。
论文地址:Very Deep Convolutional Networks for Large-Scale Image Recognition
译文地址:https://blog.****.net/wspba/article/details/61625387
本文解决了ConvNet架构设计的另一个重要方面 - 深度。 为此,本文修复了架构的其他参数,并通过增加更多的卷积层来稳定增加网络深度。其突出贡献在于证明使用很小的卷积(3*3),增加网络深度可以有效提升模型的效果,而且VGGNet对其他数据集具有很好的泛化能力。VGGNet可以看成是加深版本的AlexNet,都是由卷积层、全连接层两大部分构成。
架构
先看图:
在这篇论文中分别使用了A、A-LRN、B、C、D、E这6种网络结构进行测试,这6种网络结构相似,都是由5层卷积层、3层全连接层组成,其中区别在于每个卷积层的子层数量不同,从A至E依次增加(子层数量从1到4),总的网络深度从11层到19层(添加的层以粗体显示),表格中的卷积层参数表示为“conv⟨感受野大小⟩-通道数⟩”,例如con3-128,表示使用3x3的卷积核,通道数为128。为了简洁起见,在表格中不显示ReLU**功能。
其中,网络结构D就是著名的VGG16,网络结构E就是著名的VGG19。
以网络结构D(VGG16)为例,介绍其处理过程如下,请对比上面的表格和下方这张图,留意图中的数字变化,有助于理解VGG16的处理过程:
下面介绍整个VGG16的处理过程:
Step1: 输入224x224x3的图片,经64个3x3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224x224x64
Step2: 作max pooling(最大化池化),池化单元尺寸为2x2(效果为图像尺寸减半),池化后的尺寸变为112x112x64
Step3: 经128个3x3的卷积核作两次卷积+ReLU,尺寸变为112x112x128
Step4: 作2x2的max pooling池化,尺寸变为56x56x128
Step5: 经256个3x3的卷积核作三次卷积+ReLU,尺寸变为56x56x256
Step6: 作2x2的max pooling池化,尺寸变为28x28x256
Step7: 经512个3x3的卷积核作三次卷积+ReLU,尺寸变为28x28x512
Step8: 作2x2的max pooling池化,尺寸变为14x14x512
Step9: 经512个3x3的卷积核作三次卷积+ReLU,尺寸变为14x14x512
Step10: 作2x2的max pooling池化,尺寸变为7x7x512
Step11: 与两层1x1x4096,一层1x1x1000进行全连接+ReLU(共三层)
Step12: 通过softmax输出1000个预测结果
其网络参数如下:
经作者对A、A-LRN、B、C、D、E这6种网络结构进行单尺度的评估,错误率结果如下:
LRN(局部响应归一化)
这里讲一下第二列提到的LRN,它的全称是局部响应归一化。这个技术主要是深度学习训练时的一种提高准确度的技术方法。其在深度学习框架里面是很常见的方法,但跟**函数是有区别的,LRN一般是在**、池化后进行的一中处理方法。但是LRN在VGGNet中的效果并不是很明显。所以在B-D的尝试中都没有再加入LRN这一操作。
总结
总的来说,VGGNet网络属于比较好的分类网络,在有了FCN之后,VGGNet网络被广泛应用于语义分割等任务。