Going deeper with convolutions
Tags: Backbobe
发表日期: 2014
引用量: 41952
星级 : ★★★★★
模型简写: GoogLeNet
简介: Inception Module, 稀疏连接
精读: Yes
Introduction
Motivation:
最直接提升深度神经网络性能的方法:
- Depth: the number of levels
- Width: the number of units
缺点:
- Overfitting.
- Dramatically increased use of computational resources.
解决方法:稀疏连接
稀疏连接有两种方式:
- 空间(spatial)上的稀疏连接,也就是CNN。其只对输入图像的局部进行连接,而不是对整个图像进行卷积,同时参数共享降低了总参数的数目并减少了计算量。
- 特征(feature)维度上的稀疏连接,也就是在通道的维度上进行处理。
知识补充:
稀疏矩阵的分解
如上图,稀疏矩阵分解为密集矩阵运算,可大大降低运算量
本文所提出Inception结构便是寻找一种方式既能够保持网络结构的稀疏性,又能利用密集矩阵的高计算性能,大量文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能。
上面系数矩阵对应到 Inception 中,就是在通道维度上,将稀疏连接转换为密集连接。
比方说 3×3 的卷积核,提取 256 个特征,其总特征可能会均匀分散于每个 feature map上,可以理解为一个稀疏连接的特征集。可以极端假设,64 个 filter 提取的特征的密度,显然比 256个 filter 提取的特征的密度要高。
因此,通过使用1×1、3×3、5×5 等,卷积核数分别为 96, 96, 64 个,分别提取不同尺度的特征,并保持总的 filter bank 尺寸不变。这样,同一尺度下的特征之间的相关性更强,密度更大,而不同尺度的特征之间的相关性被弱化。
综上所述,可以理解为将一个包含 256 个均匀分布的特征,分解为了几组强相关性的特征组。同样是 256 个特征,但是其输出特征的冗余信息更少。
Method
Inception Module
论文中首先提出下图(a)中原生了Inception结构:采用不同大小的卷积核意味着不同大小的感受野,最后在通道维度进行拼接。但是因为pooling层的存在(输入输出通道数不变),会导致concatenation会越来越大,同时5x5的卷积计算量较大。
因此,论文又提出了改进版的Inception module,如上图(b)所示,在3x3,5x5卷积之前,利用1x1卷积降维,同时max pooling后也利用1x1卷积降维(降低通道数),最后再在通道维度进行拼接。
Architecture
5个stage,9个Inception module, (feature map大小降低,算一个新的stage)
具体分解如下:
Stage1,stage2:(没有使用Inception模块)
Stage3: (2个 Inception Module)
Stage4 & Stage 5:
最后通过全局平均池化(Global Average Pooling)输出。
Author
Christian Szegedy - Google Research