VGG于2014年由牛津大学科学工程系Visual Geometry Group组提出的。主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,分别是VGG16和VGG19,两者除了网络深度不一样,其本质并没有什么区别。相对于2012年的AlexNet, VGG的一个高进是采用连续的3x3小卷积核来代替AlexNet中较大的卷积核(AlexNet采用了11x11,7x7与5x5大小的卷积核)。两个3x3步长为1的卷积核的叠加,其感受野相当与一个5x5的卷积核。但是采用堆积的小卷积核是由于大卷积核的,因为层数的增加,增加了网络的非线性,从而能让网络来学习更复杂的模型,并且小卷积核的参数更少。
假设我们的数据都是有C个通道,那么5x5的卷积核的参数就是5x5xC = 25C个参数,那么两层3x3的卷积层的组合仅有2*(3x3xC) = 18C个参数。
VGG的输入是224x224大小的RGB图像,在输入网络之前,作者先在训练集图像上对所有的图像计算RGB三通道的均值,并且减去对应均值。
以上是VGG各种网络的网络结构。
- VGG16包含了13个卷积层和3个全连层,如上图的网络D。
- VGG16包含了16个卷积层和3个全连层,如上图的网络E。
VGGNet在训练时有一个小技巧,先训练级别A的简单网络,再复用A网络的权重来初始化后面的几个复杂模型,这样训练收敛的速度更快。在训练的过程中,VGG比AlexNet收敛的要快一些,原因为:(1)使用小卷积核和更深的网络进行的正则化;(2)在特定的层使用了预训练得到的数据进行参数的初始化。VGGNet在ILSVRC 2014提交的成绩为前五错误率7.3%
以上资料来自与提出VGG的论文:https://arxiv.org/abs/1409.1556
发展历史
描述
早在1989年,Yann LeCun (现纽约大学教授)和他的同事们就发表了卷积神经网络(Convolution NeuralNetworks, 简称CNN)的工作。在很长时间里,CNN虽然在小规模的问题上,如手写数字,取得过当时世界最好结果,但一直没有取得巨大成功。
2012年,Alex和Hinton参加ILSVRC2012比赛并提出AlexNet,首次在CNN中成功应用了ReLU、Dropout和LRN等Trick。同时AlexNet也使用了GPU进行运算加速。AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中。AlexNet为ILSVRC2012比赛的冠军,且远超第二名。
2014年,VGG网络被提出,其在AlexNet的基础上,运用了更小的卷积核,并且加深了网络,达到了更好的效果。
2014年,GoogLeNet巧妙运用inception模块来提升训练结果:能更高效的利用计算资源,在相同的计算量下能提取到更多的特征,从而提升训练结果。GoogLeNet获得了ILSVRC2014的冠军。
2015年,Kaiming He等人提出ResNets(残差网络)。作者等人提出Residual Blocks,其原理为在每两层卷积层运用了恒等映射(Identity mapping)来减小深度网络带来的一些列问题,例如梯度消失等。残差网络的提出使得更深的网络得以训练。作者在实验中将网络增加到了1000多层,并且得到乐观的结果。其在ILSVRC2015的成绩为3.6%,甚至低于人类的错误率(5%)。
2016年,DenseNet被提出。作者们从feature入手,通过对feature的极致利用达到更好的效果和更少的参数。其中心思想为保证网络中层与层之间最大程度的信息传输的前提下,直接将所有层连接起来。DenseNet的一个优点是网络更窄,参数更少。
主要事件
年份 | 事件 | 相关论文/Reference |
1989 | Yann LeCun等人首次发表CNN网络 | LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324. |
2012 | Alex和Hinton提出AlexNet,并在ILSVRC2012比赛中获得很好的成绩,AlexNet为卷积神经网络的开山之作 | Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems (pp. 1097-1105). |
2014 | VGG网络被提出,其主要贡献是增加了网络深度 | Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556. |
2014 | GoogLeNet巧妙运用inception模块来提升训练结果,并获得了ILSVRC2014的冠军 | Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., ... & Rabinovich, A. (2015). Going deeper with convolutions. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1-9). |
2015 | 残差网络的提出减小了深度网络带来的一系列问题。它让网络变得更深并且提升了识别准确率 | He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778). |
2016 | DenseNet被提出,主要贡献为实现底层与高层的feature信息的共享 | Huang, G., Liu, Z., Van Der Maaten, L., & Weinberger, K. Q. (2017, July). Densely connected convolutional networks. In CVPR (Vol. 1, No. 2, p. 3). |
发展分析
瓶颈
VGG耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。并且单纯的增加神经网络的深度,会给训练带来困难,会出现梯度消失、不收敛等问题。
未来发展方向
VGG的提出让研究员们看到网络的深度对结果的影响,并启发了他们去研究更深的网络。并且VGG网络的中间层能有效提取出输入图的feature,所以训练好的VGG模型通常会被运用到损失函数中间去,来弥补L2损失函数所造成的过于光滑的缺点。
Contributor: Zhixiang Chi