背景
InceptionV3 由 Google 团队在 2015 年提出(论文 Rethinking the Inception Architecture for Computer Vision),是对 Inception 系列的进一步优化。其核心目标是提升计算效率并降低参数数量,同时保持模型在 ImageNet 等数据集上的分类性能。相较于前代,InceptionV3 在卷积分解、正则化策略和空间维度压缩方法上进行了创新。
设计思路
卷积分解(Factorized Convolutions)
- 大卷积核分解:将大卷积核拆分为级联的小卷积核,例如:
- 卷积分解为两个 卷积(计算量减少 )
- 卷积分解为 和 的非对称卷积(适用于大 ,如 )
- 目的:减少参数量,增加非线性表达能力。
高效的空间降维
- 避免信息丢失:传统池化或卷积降维会导致特征图通道数激增(如从 到 )。InceptionV3 提出并行结构:
- 分支1:步长为2的卷积
- 分支2:最大池化 + 卷积(压缩通道)
- 优点:平衡计算效率与特征信息保留。
正则化策略
- 辅助分类器:仅在网络中部使用一个辅助分类器(非对称丢弃率),而非 GoogleNet 的多个。
- 标签平滑(Label Smoothing):替换传统的 one-hot 编码,缓解过拟合。
优化策略
- 使用 RMSProp 优化器。
- 引入 Batch Normalization(加速收敛)。
网络架构
整体结构
-
Stem 模块(前置卷积层)
- 包含 3 个卷积层和 2 个池化层。
- 快速降低空间分辨率并提升通道数量。
-
Inception 模块组
- 包含 3 种类型的 Inception 模块(A/B/C)。
- 逐步压缩空间维度并增加通道数。
-
分类头
- 全局平均池化 + 全连接层。
总结
InceptionV3 的核心贡献在于:
- 通过卷积分解和非对称卷积降低计算复杂度。
- 设计高效的空间降维模块,平衡信息保留与计算效率。
- 引入标签平滑等正则化方法提升泛化能力。
其模块化设计思想对后续模型(如 Xception、MobileNet)产生了深远影响。