在我的个人博客上一篇博文中分析了卷积神经网络的结构与相关算法,知道了这些基本原理之后。这篇博文主要介绍在卷积神经网络的发展历程中一些经典的网络模型。
LeNet5
LeCun等将BP算法应用到多层神经网络中,提出LeNet-5模型[1](效果和paper见此处),并将其用于手写数字识别,卷积神经网络才算正式提出。LeNet-5的网络模型如图1所示。网络模型具体参数如图2所示。
- C1:卷积核参数如表所示。卷积的后的尺寸计算公式为:
因此,经过C1卷积层后,每个特征图大小为32-5+1=28,这一层输出的神经元个数为28286=784。而这一层卷积操作的参数个数为5516+6=156,其中参数个数与神经元个数无关,只与卷积核大小(此处为55),卷积核数量(此处为6,上一层图像默认深度为1);
- S2:输入为28286,该网络使用最大池化进行下采样,池化大小为22,经过池化操作后输出神经元个数为1414*6;
- C3:经过C3层后,输出为101016,参数个数为556*16+16=2416个参数;
- S4:输入为101016,参数与S2层一致,池化后输出神经元个数为5516;
- C5:经过C5层后,输出为11120,参数个数为5516120+120=48120个参数。(这一层的卷积大小为55,图像的输入大小也为5*5,可等效为全连接层);
- F6:输出为1184,参数个数为11120*84+84=10164 参数总量:60856
从表1的具体参数可以看出,LeNet的网络结构十分简单且单一,卷积层C1、C3和C5层除了输出维数外采用的是相同的参数,池化层S2和S4采用的也是相同的参数
AlexNet
2012年Krizhevsky使用卷积神经网络在ILSVRC 2012图像分类大赛上夺冠,提出了AlexNet模型[2](论文地址)。这篇文章凭借着诸多创新的方法,促使了之后的神经网络研究浪潮。AlexNet网络的提出对于卷积神经网络具有里程碑式的意义,相比较于LeNet5的改进有以下几点
- 数据增强
- 水平翻转
- 随机裁剪、平移变换
- 颜色光照变换
- Dropout: Dropout方法和数据增强一样,都是防止过拟合的。简单的说,dropout能按照一定的概率将神经元从网络中丢弃。一个很形象的解释如图2所示,左图为dropout前,右图为dropout后。dropout能在一定程度上防止网络过拟合,并且能加快网络的训练速度。
- conv1:输出为555596,参数个数为11113*96+96=34944
- pool1:输出为272796;
- conv2:输出为2727256,参数个数为5596*256+256=614656
- pool2:输出为1313256;
- conv3:输出为1313384,参数个数为33256*384+384=885120
- conv4:输出为1313384,参数个数为33384*384+384=1327488
- conv5:输出为1313256,参数个数为33384*256+256=884992
- pool3:输出为66256;
- fc6:输出为114096,参数个数为11256*4096+4096=1052672
- fc7:输出为114096,参数个数为114096*4096+4096=16781312 参数总量:21581184
通过对比LeNet-5和AlexNet的网络结构可以看出,AlexNet具有更深的网络结构,更多的参数。
ZFNet
ZFNet[3](论文地址)是由纽约大学的Matthew Zeiler和Rob Fergus所设计,该网络在AlexNet上进行了微小的改进,但这篇文章主要贡献在于在一定程度上解释了卷积神经网络为什么有效,以及如何提高网络的性能。该网络的贡献在于:
- 使用了反卷积网络,可视化了特征图。通过特征图证明了浅层网络学习到了图像的边缘、颜色和纹理特征,高层网络学习到了图像的抽象特征;
- 根据特征可视化,提出AlexNet第一个卷积层卷积核太大,导致提取到的特征模糊;
- 通过几组遮挡实验,对比分析找出了图像的关键部位;
- 论证了更深的网络模型,具有更好的性能。
ZFNet的网络模型如图4所示,具体参数如表3所示。
VGG16
VGGNet[4]是由牛津大学计算机视觉组和Google DeepMind项目的研究员共同研发的卷积神经网络模型,包含VGG16和VGG19两种模型,其网络模型如图5所示,也可以点击此处链接查看网络模型。
- Vgg16有16层网络,AlexNet只有8层;
- 在训练和测试时使用了多尺度做数据增强。
GoogLeNet
GoogLeNet[5](论文地址)进一步增加了网络模型的深度和宽度,但是单纯的在VGG16的基础上增加网络的宽度深度会带来以下缺陷:
- 过多的参数容易引起过拟合;
- 层数的加深,容易引起梯度消失现象。
GoogLeNet的提出受到论文Network in Network(NIN)的启发,NIN有两个贡献:
- 提出多层感知卷积层:使用卷积层后加上多层感知机,增强网络提取特征的能力。普通的卷积层和多层感知卷积层的结构图如图6所示,Mlpconv相当于在一般的卷积层后加了一个1*1的卷积层;
GoogLeNet根据Mlpconv的思想提出了Inception结构,该结构有两个版本,图7是Inception的naive版。该结构巧妙的将11、33和5*5三种卷积核和最大池化层结合起来作为一层结构。
ResNet
卷积神经网络模型的发展历程一次次证明加深网络的深度和宽度能得到更好的效果,但是后来的研究发现,网络层次较深的网络模型的效果反而会不如较浅层的网络,称为“退化”现象,如图10所示。
参考文献
[1] Lecun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[2] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
[3] Zeiler M D, Fergus R. Visualizing and Understanding Convolutional Networks[J]. 2013, 8689:818-833.
[4] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.
[5] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2015:1-9.
[6] He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]// Computer Vision and Pattern Recognition. IEEE, 2016:770-778.