1. LeNet-5
: LeCun et al., 1998, 5层
网络结构为(Conv
为卷积层,Pool
为池化层,FC
为全连接层):
Conv — Pool — Conv — Pool — FC — FC — FC
卷积核尺寸为5x5
,跨立间隔为1
;池化层尺寸为2x2
,跨立间隔为2
。
2. AlexNet
: Krizhevsky et al., 2012, 8层
该网络将ImageNet
图像分类的错误率降低到了16.4%
,以此赢得了当年的ILSVRC
竞赛。其结构为:
Conv1 — Max Pool1 — Norm1 — Conv2 — Max Pool2 — Norm2 — Conv3 — Conv4 — Conv5 — Max Pool3 — FC6 — FC7 — FC8
各层的具体参数如下:
该网络的一些特征:
- 首次使用
ReLU
激活函数。 - 充分使用数据增强技术。
Dropout
概率设置为0.5
。- 随机梯度下降方法的动量系数设置为
0.9
。 - 学习速率设置为
0.01
,当验证精度(val accuracy)变化缓慢时,将学习速率衰减10倍。 - 使用
L2
正则化,系数为 。
3. ZFNet
: Zeiler and Fergus, 2013, 8层
将AlexNet
的Conv1
层的卷积核尺寸由11x11
改为7x7
,跨立间隔由4改为2,以此将ImageNet图像分类的错误率降低到11.7%
,以此赢得了当年的ILSVRC
竞赛。
4. VGGNet
: Simonyan and Zisserman, 2014, 16层&19层
基本思想:减小滤波器尺寸,以增加网络深度。其结构如下图所示:
为什么使用小尺寸的卷积核
-
(1) 在卷积输出结果的接触域一致的前提下:尺寸小的卷积核可以支持更深的深度。
例如:卷积核尺寸为
7x7
时,一层网络的卷积结果的接触域是7x7;那么同样的接触域大小,若使用3x3的卷积核,则需要三层。 -
(2) 在接触域和输出特征数一致的前提下,尺寸较小的卷积核的参数较少。
如上述例子,假设数据通道数为C,那么输出一个特征,使用
7x7
的卷积核时,所需参数个数为 ;使用3x3的卷积核时,所需参数个数为 。
该网络将ImageNet的图像分类错误率降低为7.3%
。
5. GoogleNet
: Szegedy et al., 2014, 22层
网络特点:去除全连接层,使得参数个数大幅度下降;构建Inception模块,网络的主要结构由Inception
模块堆叠而成。Inception
模块如下图所示:
该模块把通过不同卷积核所获取的特征,沿特征深度方向连接起来(即一个特征的维度为各个卷积核输出的特征维度的和)。这会导致特征的维度逐渐增长。针对这一问题,学者又引入了BottleNeck
层,该层用1x1的卷积核将特征深度降低。BottleNeck
层结构如下:
GoogleNet
还在某些中间层,添加了额外的分类分支,这样使得训练网络时,这些分支分类器也会产生相应的梯度流。其理念是:网络中间层的信息对网络性能有影响,若将中间的信息计入优化目标,可能会提升网络性能;保持整个网络的信息流在一个正确的方向上,(如果分支分类器的损失太大,则意味着网络的信息流正在偏离正确方向)。
6. ResNet
: He et al., 2015, 152层
ResNet
网络的提出源于一个针对当时已有的网络的性能的观察:更深的网络的性能反而比不上层数合适的网络。为了使更深的网络的性能起码不能差于较浅的网络,考虑从某层开始,训练一个全等网络,这样最终输出结果应该不会与全等网络的输入相差太多。基于这一理念,残差网络被提出,整个网络的主体由残差模块堆叠而成。每个残差模块由两个卷积层构成,卷积核尺寸为3x3。残差模块的结构如下图所示。
7. 其余网络构型
- (1) Network in Network: 在每个卷积层之后加一个全连接层,构成MlpConv层。
- (2) ResNet的改进:改进残差模块的结构。
- (3) ResNet加宽:增加每层的特征数。
- (4) 随机深度网络:也是针对残差训练,在训练过程中随机丢弃层。
- (5) 分形网络。
- (6) SqeezeNet:可大幅降低AlexNet的规模。