Inception
Inception Network
在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。在Inception网络中,一个卷积层包含多个不同大小的卷积操作,称为 Inception模块。 Inception网络是由有多个 inception模块和少量的池化层堆叠而成。
Inception模块同时使用 \(1 \times 1\) 、 \(3 \times 3\)、 \(5 \times 5\)等不同大小的卷积核,并将得到的特征映射在深度上拼接(堆叠)起来作为输出特征映射。
Inception 网络最早的 v1 版本就是非常著名的 GoogLeNet [Szegedy et al.,2015],并赢得了 2014年 ImageNet图像分类竞赛的冠军
v1 版本的 Inception 模块,采用了 4 组平行的特征抽取方式,分别为 \(1 \times 1\) 、 \(3 \times 3\)、 \(5 \times 5\) 的卷积和 \(3 \times 3\)的最大汇聚。同时,为了提高计算效率,减少参数数量, Inception模块在进行\(5 \times 5\)、 \(5 \times 5\) 的卷积之前、 \(5 \times 5\)的最大池化之后,进行一次 \(1 \times 1\) 的卷积来减少特征映射的深度。如果输入特征映射之间存在冗余信息, \(1 \times 1\) 的卷积相当于先进行一次特征抽取。
GoogLeNet由9个Inception v1模块和5个汇聚层以及其它一些卷积层和全连接层构成,总共为22层网络,如图5.14所示。为了解决梯度消失问题,GoogLeNet在网络中间层引入两个辅助分类器来加强监督信息。
Inception网络有多个改进版本,其中比较有代表性的有 Inception v3网络[Szegedy et al., 2016]。 Inception v3网络用多层的小卷积核来替换大的卷积核,以减少计算量和参数量,并保持感受野不变。具体包括:
- 使用两层 3 × 3的卷积来替换 v1中的 5 × 5的卷积;
- 使用连续的 n × 1和 1 × n来替换 n × n的卷积。称为, Inception v3网络同时也引入了标签平滑以及批量归一化等优化方法进行训练。
此外, Szegedy et al. [2017] 还提出了结合直连(Shortcut Connect)边的Inception模块: Inception-ResNet v2网络,并在此基础上并设计了一个更优化的 Inception v4模型。