在之前详细读完第一篇卷积神经网络论文AlexNet之后,我最近又阅读了另一个图像分类与定位领域著名的论文VGG,考虑到我本人水平有限,下面我大概介绍一下这篇论文与VGG网络。
论文名称为:“Very Deep Convolutional Networks For Large-Scale Image Recognition”
这篇论文重点讲解了他们团队在ImageNet 2014挑战赛上所使用的VGG模型与相关研究。正如我们所知道的,VGG模型在2014年的挑战赛上取得了分类第二,定位第一的好成绩,而在这一年分类的第一名则是被GoogleNet所拿到,以后还有讲到。VGG模型基本沿用了AlexNet模型的网络结构,在其结构上做了一些改进,使得分类和定位准确率比AlexNet模型提高不少。
1.VGG模型介绍
随着超大规模图像数据集如ImageNet,和高性能计算机系统如GPUs和大规模分布式集群的产生,基于卷积神经网络的图像分类、定位与检测越来越强大。先前的AlexNet网络受限于当时的GPU等计算机系统性能的影响而无法训练更深更大的网络,使得分类正确率不高。在VGG模型中,基本沿用了AlexNet模型架构,但是比AlexNet更深,且使用了神经网络的集成,准确率达到了很高的水平。VGG模型在结构方面相对于AlexNet模型的改进主要在以下两个方面:
- 用3X3或1X1的小卷积模板代替AlexNet中的大模板
- 在整幅图像和多尺度两方面训练和测试网络,并且多种网络集成
2.VGG模型解决的问题与结果
该模型基于ILSVRC-2012数据集(该数据集被用于ILSVRC-2012-2014挑战赛),该数据集包括1000个类别,整个数据集分为三个集合:训练集(1.3M幅图像)、验证集(50K幅图像)和测试集(100K幅图像)。比赛在分类问题中使用top-1和top-5错误率作为比赛结果;在定位问题中使用能够预测到的top-5类别的bounding box作为比赛结果。VGG模型在分类问题中的结果如下:
top-1 val.error: 24.7%
top-5 val.error: 7.5%
top-5 test.error: 7.3%
3.VGG模型结构
网络结构可以简单记为以下 公式:
m [ ( n ⋅ c o n v s ) + p o o l ] + k ⋅ f c + s o f t m a x m\left [ \left ( n\cdot convs \right )+pool \right ]+k\cdot fc+softmax m[(n⋅convs)+pool]+k⋅fc+softmax
相比于AlexNET模型的网络结构,VGG模型主要特点在于全部使用了小卷积模板和不使用LRN层。
多层小卷积模板
在VGG中全部使用尺寸为3X3和1X1的小卷积模板。在这篇论文中,作者将卷积模板所涉及到的某一像素点周围的邻域称之为感受野(receptive field)。作者认为两层3X3大小的卷积模板的感受野等于一层5X5的卷积模板,三层3X3大小的卷积模板的感受野等于一层7X7的卷积模板,这样就可以使用多层小卷积代替一层大卷积。
使用多层小卷积代替一层大卷积的方法有以下两点好处:
- 在不改变网络功能的前提下极大地减少了参数个数。对于一层7X7的深度为1的卷积层变量总数为7X7=49,而对于三层3X3D的深度为1的卷积层变量总数仅仅为3X(3X3)=27,减少了近一半的变量。
- 采用更深的小卷积层将会在网络中加入更多的非线性激活函数ReLU,使模型的表示能力更强。
在VGG中也少量的应用到了1X1的小卷积模板,1X1的卷积模板不具有感受野,它可以看作不改变原输入图像像素而仅改变特征图深度再通过ReLU激活函数,它一般用于增加特征图和增加非线性。
放弃LRN层
在文中,作者通过做实验发现LRN层对模型的分类正确率没有提高,因此在整个VGG模型中不使用AlexNet提出的LRN层。
4.VGG模型训练与测试
VGG模型的训练与测试过程都与AlexNet模型有着很大的差别,这也是两者产生正确