06 Inception 网络
06 Inception 网络
1. 核心构建单元:Inception 模块
Inception 网络的核心在于其基础模块的设计,该模块旨在解决卷积层中卷积核尺寸选择的难题。它通过并行组合多种尺寸的卷积核和池化层,让网络在训练过程中自动学习不同尺度特征的重要性。
多分支并行结构:一个标准的Inception模块包含四个并行的分支:
- 1×1 卷积层:直接提取特征并调整通道数。
- 3×3 卷积层:捕捉中等尺度的特征。
- 5×5 卷积层:捕捉更大范围的特征。
- 最大池化层:进行特征下采样。
- 关键技巧:1×1 卷积降维:为了控制巨大的计算成本,在3×3和5×5卷积层之前,以及池化层之后,都会先使用1×1卷积层来减少特征图的通道数。这种结构被称为“瓶颈层(bottleneck layer)”,可以在不显著损失性能的前提下,将计算量降至原来的十分之一。
- 输出拼接:所有分支在保持空间尺寸(高、宽)不变的情况下独立运算,最后将它们的输出特征图在通道维度上进行拼接(Concatenate),形成最终输出。
2. 整体网络架构:模块的堆叠
Inception 网络(也称 GoogLeNet)本质上就是将多个上述的 Inception 模块以及辅助的降采样层(Reduction Layer)重复、有序地堆叠在一起构成的。
- 堆叠设计:网络通过堆叠 Inception 模块,增加了深度,同时保持了计算效率。
- 降采样层:在需要减小特征图尺寸(高、宽)时,会插入由卷积和池化组成的降采样层。
- GoogLeNet:这是Inception网络在论文中提出的具体实现模型,因其由Google团队开发并向LeNet致敬而得名。它在2014年的ImageNet竞赛中取得了优异成绩,且参数量远少于同期模型。
3. 网络细节与优化
课程还介绍了Inception网络中两个重要的设计细节。
辅助分类器(Auxiliary Classifiers) :在网络的中间层引出分支,包含隐藏层和Softmax分类器。这有两个作用:
- 正则化:为中间层提供额外的梯度监督,防止过拟合。
- 缓解梯度消失:通过中间层的反向传播,为网络前层提供更直接的梯度信号。
Inception 名称由来:该名称致敬了电影《盗梦空间》(Inception),寓意网络中包含网络(模块化结构),同时也表达了研究者构建更深网络的决心。
4. Inception 网络的演进
自最初的Inception v1(GoogLeNet)提出后,研究者们对其进行了持续的优化和改进,衍生出了多个版本。这些新版本在保持核心思想的基础上,引入了新的技术来进一步提升性能和效率。
- Inception v2 & v3:引入了批归一化(Batch Normalization) ,并提出了卷积分解(Factorization) 技术,例如将一个 $5 \times 5$ 卷积分解为两个 $3 \times 3$ 卷积,或将 $7 \times 7$ 卷积分解为 $1 \times 7$ 和 $7 \times 1$ 两个一维卷积,从而进一步加速计算并加深网络。
- Inception v4:引入了更统一和模块化的架构设计,并探索了与残差连接(Residual Connection)的结合,形成了 Inception-ResNet 结构,极大地加速了训练过程并提升了模型性能。
本文由作者按照 CC BY 4.0 进行授权