目录
(3)辅助分类器(Auxiliary Classifiers)
(1)从 v1 到 v2:BatchNorm 与卷积分解引入
3、GoolgeNet-Inception系列的后续改进:Xception、MobileNet、EfficientNet
2.1 深度可分离卷积(Depthwise Separable Convolution)
2.3 SE 注意力模块(MobileNet-v3 & EfficientNet)
一、LeNet-5
在机器学习(ML)向深度学习(DL)演进的过程中,卷积神经网络(CNN)作为处理图像的核心模型,一直占据着重要地位。1998 年,Yann LeCun 等人提出的 LeNet-5 成功将 CNN 应用于手写数字识别(MNIST),标志着深度学习在计算机视觉领域的开端。下一节,我们将全面剖析 LeNet-5 的设计理念、网络结构、训练方法及其对后续模型的深远影响。
(1)LeNet-5 网络概览
LeNet-5 是一种典型的五层卷积神经网络结构(不含输入层和输出层),包含三个卷积/激活层和两个池化(子采样)层,以及后续的全连接层和输出层。其核心设计思想包括:
-
局部感受野(Local Receptive Field):每个神经元只连接输入的局部区域,模拟生物视觉皮层结构。
-
权重共享(Weight Sharing):同一特征图(feature map)上的所有神经元共享一组卷积核参数,大幅减少参数量。
-
子采样(池化):空间降采样带来平移不变性,并减少计算量与过拟合风险。
(2)网络结构详解
输入:32×32 灰度图像(MNIST 原图 28×28,边缘补零至 32×32)
C1 – 卷积层
• 卷积核:6 个 5×5
• 输出尺寸: (32–5+1)=28 → 6 个 28×28
• 参数量:6×(5×5)+6 偏置 = 156
S2 – 下采样(平均池化)层
• 窗口:2×2,步长 2
• 输出尺寸:6×14×14
• 参数量:6×2 = 12(每个特征图的缩放和偏置参数)
C3 – 卷积层
• 卷积核:16 个 5×5
• 连接方式:每个输出特征图并非与 S2 全部 6 张输入图相连,而是设计局部连接,增强多样性
• 输出尺寸: (14–5+1)=10 → 16×10×10
• 参数量:约 1,216
S4 – 下采样层
• 窗口:2×2,步长 2
• 输出尺寸:16×5×5
• 参数量:16×2 = 32
C5 – 卷积层(等同全连接)
• 卷积核:120 个 5×5
• 由于输入尺寸恰好 5×5,输出变为 120×1×1,可视为全连接
• 参数量:120×(16×5×5)+120 偏置 = 48,120
F6 – 全连接层
• 84 个神经元
• 参数量:84×120+84 = 10,164
输出层
• 10 个神经元(类别数)
• 参数量:10×84+10 = 850
──────────
**总参数量:≈ 60,000**
(3)关键组件与数学原理
3.1 局部感受野与卷积运算
-
卷积:对输入图像 x 与权重核 w 进行“滑动矩阵乘加”:
-
好处:提取局部特征,保持参数量低。
3.2 权重共享
-
同一特征图内各位置神经元共享一组权重核,减少参数,提高泛化。
3.3 子采样(Pooling)
-
LeNet-5 中采用平均池化(Average Pooling):
-
并引入可训练的缩放因子与偏置 α, β:
-
作用:降维、降噪、获得平移不变性。
3.4 激活函数
-
原论文中使用 sigmoid 或 tanh,现代改用 ReLU 以加速收敛、缓解梯度消失。
(4)训练细节
-
损失函数:原文用平方误差(MSE),对于分类任务现代更常用交叉熵(Cross‑Entropy)。
-
优化算法:LeNet-5 使用带动量(momentum)的随机梯度下降(SGD+momentum)。
-
正则化:参数共享与池化本身即具正则效果;现代可加 L2 或 Dropout。
-
数据增强(当时较少):现代常用旋转、平移、缩放、仿射变换等增强 MNIST 数据。
(5)优势与局限
优势
-
端到端学习:无需手工设计特征,自动从数据中提取层级特征。
-
参数高效:约 6 万参数,在当时计算资源有限的环境中可行。
-
平移不变性:卷积与池化带来对图像平移、轻微扭曲的鲁棒。
局限
-
网络较浅:仅 5 层特征抽取,限制了对复杂图像的建模能力。
-
激活函数:sigmoid/tanh 易引起梯度消失。
-
固定架构:缺乏现代批归一化(BatchNorm)、残差连接(ResNet)等技巧。
(6)应用与影响
-
手写数字识别:LeNet-5 在 MNIST 上达到 99.2% 以上精度,显著优于当时方法。
-
后续网络奠基:AlexNet(2012)、VGG、ResNet 等深层网络均基于“卷积+池化+全连接”的框架,不断叠加层数、引入新技术。
-
工业应用:早期 OCR、车牌识别等均借鉴 LeNet 思路。
(7)对现代深度学习的启示
-
特征层级化:从边缘→纹理→形状的分级抽取思想沿用至今。
-
参数共享:高效减少参数的核心理念。
-
网络结构设计:LeNet-5 完整展现了“Conv→Pool→Conv→Pool→FC→Output”的典型模式,仍是 CNN 设计的基石。
-
可扩展性:在深度、宽度、激活函数、正则化、优化等方面的改进,均建立在 LeNet-5 思想之上。
二、AlexNet
AlexNet 由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 于 2012 年提出,是第一款在 ImageNet 规模数据集(ILSVRC‑2012)上将错误率从 26% 降至 15% 的深度卷积神经网络。它的成功标志着深度学习在计算机视觉领域的全面爆发,也奠定了现代深度卷积网络设计的诸多核心思路。
(1)网络结构概览
AlexNet 可视为一个 “5 层卷积 + 3 层全连接” 的八层前馈网络(不含输入层、输出 Softmax 层),主要特点包括:
-
输入:224×224×3 彩色图像(原文中先裁切为 256×256,再随机剪裁为 224×224)
-
卷积层:Conv1→LRN→Pool1→Conv2→LRN→Pool2→Conv3→Conv4→Conv5→Pool5
-
全连接层:FC6 → Dropout → FC7 → Dropout → FC8 → Softmax
总体参数量约 6 千万,计算量巨大,原文借助 2 块 GPU 并行训练。
(2)各层详解
层次 | 配置 | 输出尺寸 | 参数量(约) |
---|---|---|---|
输入 | 224×224×3 彩色图像 | 224×224×3 | – |
Conv1 | 96 个 11×11 卷积核,步长 4,无填充;ReLU;LRN;3×3 最大池化,步长 2 | 55×55×96 | 34.9K |
Conv2 | 256 个 5×5 卷积核,填充 2;ReLU;LRN;3×3 最大池化,步长 2 | 27×27×256 | 614.4K |
Conv3 | 384 个 3×3 卷积核,填充 1;ReLU | 27×27×384 | 885.7K |
Conv4 | 384 个 3×3 卷积核,填充 1;ReLU | 27×27×384 | 1.33M |
Conv5 | 256 个 3×3 卷积核,填充 1;ReLU;3×3 最大池化,步长 2 | 13×13×256 | 884.9K |
FC6 | 全连接,4096 单元;ReLU;Dropout(0.5) | 4096 | 37.75M |
FC7 | 全连接,4096 单元;ReLU;Dropout(0.5) | 4096 | 16.78M |
FC8 | 全连接,1000 单元(分类数);Softmax | 1000 | 4.10M |
总计 | – | – | ≈ 60.9M |
LRN(Local Response Normalization):对局部相邻通道做“亮度竞争”,帮助增强泛化;
Dropout:随机丢弃一半神经元,防止过拟合。
(3)关键创新与数学原理
-
ReLU 激活
相较于 sigmoid/tanh,ReLU 收敛更快、缓解梯度消失。
-
局部响应归一化 (LRN)
对通道维度进行归一化:促使高响应位置“抑制”周围低响应,形成竞争机制。
-
重叠池化 (Overlapping Pooling)
池化核 3×3,步长 2(而非典型的 2×2、步长 2),减轻过拟合、提升泛化。 -
Dropout
在全连接层每次前向传播时,以 0.5 概率随机“屏蔽”神经元,抑制 co‑adaptation。 -
数据增强
-
随机水平翻转
-
随机裁剪(从 256×256 裁为 224×224)
-
PCA 颜色抖动:对 RGB 三通道做主成分分析,加入微小扰动
-
-
双 GPU 并行
将模型“切分”在两块 GPU 上:-
Conv1、Conv3、Conv5 在两个 GPU 上各 48 个 filter
-
Conv2、Conv4 的 filter 跨 GPU 互连
加速正向/反向传播,缓解显存限制。
-
(4)训练细节
-
优化器:SGD + momentum(动量系数 0.9)
-
批大小:128
-
初始学习率:0.01,每当验证误差不下降时 手动 降为原来 1/10
-
权重衰减:0.0005(L2 正则化)
-
训练轮数:约 90 个 epoch
-
训练时间:在两块 NVIDIA GTX 580 GPU 上约 5–6 天
(5)优势与局限
优势
-
大规模 ImageNet 验证:首个深度 CNN 在 1000 类大型数据集上取得突破。
-
设计模块化:ReLU、Dropout、LRN、重叠池化等技巧,后来广泛沿用。
-
开源推动:模型与代码公开,推动社区复现与改进。
局限
-
参数量大:≈ 6,000 万,存储与计算成本高。
-
归一化方式过时:LRN 效果有限,后续被 BatchNorm 替代。
-
架构较宽浅:仅 8 层,深度不足;且所有卷积核大小预设,不同尺度特征提取不足。
(6)对后续网络的影响
-
VGG/GoogleNet:沿用“Conv→Pool”模块化设计,探索更深(16–22 层)与更窄(3×3 卷积)结构。
-
BatchNorm、ResNet:针对梯度消失与训练深度的改进,最终实现上百层网络可训练。
-
模型压缩与加速:对大规模模型的需求催生剪枝、量化、轻量化网络(MobileNet 等)。
三、VGGNet
VGGNet 是由 Oxford 大学视觉几何组(Visual Geometry Group,简称 VGG)于 2014 年提出的深度卷积神经网络,论文标题为 “Very Deep Convolutional Networks for Large‑Scale Image Recognition”。它在 ILSVRC‑2014 比赛中以优异表现(Top‑5 错误率 7.3%)获得第二名,同时其简洁的网络设计思路和可复现性,对后续深层网络研究产生了深远影响。
网络总体架构概览:
VGGNet 以“堆叠同尺寸小卷积核”著称,主要有两种变体:
-
VGG16:13 个卷积层 + 3 个全连接层,共 16 层
-
VGG19:16 个卷积层 + 3 个全连接层,共 19 层
核心设计原则:
-
连续使用多个 3×3 卷积核(代替大尺寸卷积,如 5×5、7×7),保持感受野相同的同时增加非线性表达;
-
每两到三层卷积后接一个 2×2 最大池化,逐步降低空间分辨率;
-
全连接层放在网络末端,用于分类。
1、VGG16
(1)详细层级结构
以 VGG16 为例,其网络结构可分为 5 个卷积块(Block)和 3 个全连接层:
Block | 层次 | 输出尺寸 | 通道数 | 说明 |
---|---|---|---|---|
Block1 | Conv3×3×64 ×2 → MaxPool | 224×224 → 112×112 | 64 | 两个 3×3 卷积后下采样 |
Block2 | Conv3×3×128 ×2 → MaxPool | 112×112 → 56×56 | 128 | |
Block3 | Conv3×3×256 ×3 → MaxPool | 56×56 → 28×28 | 256 | 三个卷积层 |
Block4 | Conv3×3×512 ×3 → MaxPool | 28×28 → 14×14 | 512 | |
Block5 | Conv3×3×512 ×3 → MaxPool | 14×14 → 7×7 | 512 | |
FC | FC‑4096 → FC‑4096 → FC‑1000 (Softmax) | 1×1 | – | 两层大尺寸全连接 + 最后一层分类输出 |
-
卷积核均为 3×3,步长 1,填充 1;
-
池化窗口 2×2,步长 2;
-
激活函数:ReLU;
-
总参数量:VGG16 约 138M,VGG19 约 144M。
(2)关键设计思想与数学原理
-
多层小卷积等效大卷积
-
两个连续 3×3 卷积层的等效感受野为 5×5;三个连续 3×3 的等效感受野为 7×7。
-
小卷积核参数少、计算量低,同时中间多次 ReLU 增加了非线性表达能力。
-
-
深度网络的可训练性
-
相比 AlexNet(8 层)和 ZFNet(8 层),VGGNet 将深度提高至 16–19 层。
-
ReLU 激活、合适的初始化(Xavier、He 初始化)以及小批量 SGD,使得深层网络收敛成为可能。
-
-
统一架构简化实现
-
全网络采用相同的卷积核大小和池化方式,代码实现简单,易于复现和扩展。
-
多数后续工作(如 ResNet、Inception)都在此基础上进行改进。
-
(3)训练细节
-
数据预处理:
-
输入图像先缩放到 256×256,再在训练时随机裁剪出 224×224;
-
随机水平翻转;
-
均值归一化(减去 ImageNet 训练集的 RGB 均值)。
-
-
优化器:
-
SGD + momentum(动量 0.9);
-
初始学习率 0.01,每隔 30 个 epoch 降为原来的 1/10;
-
批大小 256;
-
训练周期约 74 万次迭代(约 90 epochs 总共耗时数周)。
-
-
正则化:
-
权重衰减(L2 正则)系数 5e‑4;
-
Dropout(0.5)仅应用于全连接层。
-
(4)优势与局限
优势
-
深度与性能:在 ImageNet 上取得优异分类效果,为深度网络可行性提供了实证。
-
设计简单易扩展:卷积块模块化,可灵活堆叠;代码实现与复现成本低。
-
小卷积核组合:减少参数,提升非线性表达。
局限
-
模型体积大:138M 参数对存储与内存要求高,不适合移动端部署。
-
计算量大:推理与训练耗时较长。
-
缺少归一化层:未使用 BatchNorm,后续往往需要在其基础上加入 BN 层以加快收敛并提高精度。
(5)对后续网络发展的影响
-
批归一化(Batch Normalization)
-
Ioffe & Szegedy(2015)提出 BatchNorm,可插入到 VGG 卷积/全连接层后,大幅加速收敛并提升精度。
-
-
更深与更轻量化网络
-
ResNet(2015)引入残差连接,成功训练百层以上深度;
-
GoogleNet/Inception(2014–2016)通过 Inception 模块提高宽度与效率;
-
MobileNet、ShuffleNet(2017+)等轻量化网络关注资源受限场景。
-
-
特征提取与迁移学习
-
VGG 的卷积块常被作为“通用特征提取器”,在目标检测(Faster R‑CNN)、语义分割(FCN)等任务中作为 backbone 广泛使用。
-
2、VGG19
VGG19 是 Oxford 大学 Visual Geometry Group(VGG)在 2014 年提出的“Very Deep Convolutional Networks for Large‑Scale Image Recognition”一文中的一种变体。相比 VGG16,VGG19 在每个卷积块中多堆叠了一层 3×3 卷积,从而将网络深度提高到 19 层(不含输入层与输出 Softmax 层)。其简洁而统一的设计,使得深度卷积网络在当时取得了极佳性能,也为后续网络架构提供了范式。
(1)网络整体架构概览
VGG19 主要由 5 个卷积模块(Block)和 3 个全连接层(FC)组成:
-
输入:224×224×3 彩色图像
-
Block1:2 层 3×3 卷积 → 最大池化
-
Block2:2 层 3×3 卷积 → 最大池化
-
Block3:4 层 3×3 卷积 → 最大池化
-
Block4:4 层 3×3 卷积 → 最大池化
-
Block5:4 层 3×3 卷积 → 最大池化
-
FC6:4096 单元全连接 → ReLU → Dropout(0.5)
-
FC7:4096 单元全连接 → ReLU → Dropout(0.5)
-
FC8:1000 单元全连接 → Softmax
整网约 19 层(不含输入与 Softmax 层),总参数量约 144M,在 ILSVRC‑2014 上获得 Top‑5 错误率 7.3%。
(2)分层细节
模块 | 层数 | 输出尺寸 | 通道数 | 说明 |
---|---|---|---|---|
Block1 | Conv3×3×64 ×2 → Pool2×2 | 224→112 | 64 | 两个卷积后下采样 |
Block2 | Conv3×3×128 ×2 → Pool2×2 | 112→56 | 128 | |
Block3 | Conv3×3×256 ×4 → Pool2×2 | 56→28 | 256 | 四个连续 3×3 |
Block4 | Conv3×3×512 ×4 → Pool2×2 | 28→14 | 512 | |
Block5 | Conv3×3×512 ×4 → Pool2×2 | 14→7 | 512 | |
FC6 | FC‑4096 → ReLU → Dropout | 1×1 | 4096 | Dropout 概率 0.5 |
FC7 | FC‑4096 → ReLU → Dropout | 1×1 | 4096 | |
FC8 | FC‑1000 → Softmax | 1×1 | 1000 | ImageNet 1000 类别 |
-
卷积:均为 3×3、步长 1、填充 1;
-
最大池化:2×2、步长 2;
-
激活:ReLU;
-
丢弃:仅在全连接层中使用 Dropout(0.5)。
(3)设计动机与数学原理
-
堆叠小卷积核
-
两层连续的 3×3 等效于一次 5×5 感受野,三层等效 7×7。
-
小核带来参数更少(3×3×C×C’ vs. 7×7×C×C’),且每层后插入 ReLU 增加非线性。
-
-
统一架构简化实现
-
全网卷积核、池化、激活方式一致,代码极其简洁可复现。
-
容易堆叠更深层次,推动了深度网络可行性研究。
-
-
深度表示能力
-
随着深度提高,网络学习更抽象、更复杂的特征。但深度增加也带来梯度消失与训练难度,需要合适的初始化与优化策略。
-
(4)训练细节
-
数据预处理
-
图像缩放到 256×256,再随机裁剪 224×224;
-
随机水平翻转;
-
减去 ImageNet 训练集 RGB 均值。
-
-
优化器
-
SGD + momentum(0.9);
-
初始学习率 0.01,每隔 30 个 epoch 降为原来 1/10;
-
批大小 256;
-
权重衰减(L2 正则) 5e‑4。
-
-
训练时间
-
多 GPU 并行训练,约需数周,视硬件性能而定。
-
(5)参数量与计算量
-
参数量:约 144M(VGG16 为 138M),主要集中在全连接层(≈123M),卷积层约 20M。
-
计算量:由于深度与通道数大,卷积操作浮点运算极多,推理耗时较长,不利于实时和资源受限环境。
(6)优势与局限
优势
-
性能优异:在当时 ImageNet 上与 VGG16、GoogleNet 共同位列前茅。
-
设计简单:易于理解和实现,成为后续研究的基准模型。
-
迁移学习效果好:前面多层卷积块可作为通用特征提取器,广泛用于检测、分割等任务。
局限
-
资源消耗大:144M 参数和深层结构导致存储与内存占用高,推理速度慢。
-
缺少归一化:未使用 BatchNorm,训练深度网络较困难;后来常在 VGG 基础上加入 BN。
-
冗余特征:连续四层相同通道卷积存在信息冗余,后续网络通过瓶颈结构、残差连接等加以改进。
(7)VGG19 在现代的地位与应用
-
基准模型:仍被用作研究新算法时的对照网络。
-
特征提取器:在目标检测(Faster R‑CNN、Mask R‑CNN)、语义分割(FCN、U-Net)等领域大量采用 VGG19 预训练权重。
-
网络改进研究:
-
引入 BatchNorm 形成 VGG19‑BN,加速训练并略微提升精度;
-
用 1×1 卷积或瓶颈层减少计算量(e.g. SqueezeNet、ResNet)。
-
四、GoolgeNet
GoogLeNet 是由 Szegedy 等人在 2014 年提出的 Inception 系列第一版网络,论文题为 “Going Deeper with Convolutions”。它在 ILSVRC‑2014 比赛中以 6.7% 的 Top‑5 错误率夺冠,同时参数量仅约 6.8M,远低于当时常见的 VGG(138M)和 AlexNet(60M)。GoogLeNet 的成功标志着“深度与宽度并重”与“高效结构设计”成为卷积网络新方向。
1、GoolgeNet——Inception - v1
(1)网络整体架构概览
GoogLeNet 总体深度 22 层(不含池化层和辅助分类器),可分为以下部分:
-
初始卷积层与池化层:提取低级特征并快速降维
-
五个 Inception 模块组合:每个模块内部并行多尺度卷积与降维
-
全局平均池化 + Softmax:用全局特征直接分类,抛弃大规模全连接层
-
两个辅助分类器:插入中间层,缓解梯度消失并作训练正则化
网络总体结构示意:
输入 224×224×3 → Conv(7×7, stride=2) → MaxPool(3×3,2) → Conv(1×1) → Conv(3×3) → MaxPool(3×3,2) → [Inception ×3] → MaxPool(3×3,2) → [Inception ×5] → MaxPool(3×3,2) → [Inception ×2] → 全局平均池化(7×7) → Dropout(0.4) → FC(1000) → Softmax
(2)Inception 模块详解
Inception 模块的核心思想是在同一层并行使用多种感受野(1×1、3×3、5×5 卷积和 3×3 池化),并通过 1×1 卷积在每路上进行通道降维,达到“宽度”与“深度”兼顾、参数高效的效果。
→ 1×1 Conv (降维) → 1×1 Conv → │ 输入 → 1×1 Conv (降维) → 3×3 Conv → │ ├→ 1×1 Conv (降维) → 5×5 Conv → │ └→ 3×3 MaxPool → 1×1 Conv (降维) →
-
1×1 卷积:
-
用于快速降低通道数,减少后续大核(3×3、5×5)计算
-
增加网络非线性
-
-
多尺度卷积并行:
-
同时捕捉局部与全局信息
-
-
池化分支:
-
保留领域不变性
-
每个 Inception 模块输出通道数视具体版本而定,整个网络通过堆叠多级 Inception 模块实现 22 层深度。
(3)辅助分类器(Auxiliary Classifiers)
在第 4、7 两个 Inception 模块后各接一个小型卷积→全局平均池化→全连接→Softmax 分支:
-
目的:
-
在训练过程中提供额外的梯度信号,缓解深层网络梯度消失
-
作轻度正则化,防止中间层过拟合
-
-
权重:Auxiliary loss 占总 loss 的 0.3;测试时舍弃,仅保留主分支。
(4)训练细节
-
数据预处理与增强:
-
图像缩放至 256×256,再随机裁剪 224×224;
-
随机水平翻转;
-
PCA 颜色抖动(与 AlexNet 类似)。
-
-
优化器:
-
SGD + momentum(0.9);
-
初始学习率 0.01,每隔 30 万次迭代降为原来的 1/3;
-
权重衰减 0.0002;
-
批大小 128;
-
训练约 90 万次迭代。
-
-
正则化:
-
Dropout(0.4) 仅在最后全局平均池化后使用;
-
Auxiliary classifiers 自身亦含 Dropout(0.7)。
-
(5)参数量与计算成本
项目 | 数值 |
---|---|
总参数量 | ≈ 6.8M |
浮点运算量 (FLOPs) | ≈ 1.5B(十亿级) |
特征图尺寸 | 224 → 112 → 56 → 28 → 14 → 7 |
GPU 内存需求 | 约 2–3 GB |
相比同时期的 VGG(138M)和 AlexNet(60M),GoogLeNet 在参数量上减少 90%+,同时保持更深的结构。
(6)优势与局限
优势
-
参数高效:1×1 降维显著减少参数。
-
多尺度特征融合:并行卷积捕捉不同大小的图案。
-
深度可达 22 层:在当时可训练更深网络。
-
辅助分类器:提高训练速度与稳定性。
局限
-
结构复杂:模块内部多分支,代码与调试难度大。
-
计算开销依旧可观:虽参数少但 FLOPs 高,不利于实时部署。
-
无批归一化:Inception v1 未使用 BatchNorm,训练对超参较敏感。
(7)对后续网络的影响
-
Inception 系列:
-
v2/v3 引入 BatchNorm、Factorization(分解大卷积);
-
v4/v5 融合残差连接,形成 Inception‑ResNet。
-
-
ResNet:
-
Inspired by 深度可训练性与辅助分类器,提出残差单元(Residual Block)使网络可达百层。
-
-
MobileNet/ShuffleNet:
-
继承 1×1 降维与分组卷积思想,进一步轻量化。
-
-
自动化结构搜索(NAS):
-
Inception 模块的“多分支”思想启发 NAS 方法自动搜索最佳分支组合。
-
2、Inception 系列模型对比
以下表格与分析对比了 Inception 系列主要版本(v1/v2/v3/v4 及 Inception-ResNet)的设计思想、模块改进、参数规模与性能提升。随后给出逐项详解。
特性/版本 | Inception v1<br>(GoogLeNet) | Inception v2 | Inception v3 | Inception v4 | Inception-ResNet v1/v2 |
---|---|---|---|---|---|
首次发表 | 2014 年 “Going Deeper…” | 2015 年 “Batch Norm…” | 2015 年 “Rethinking…” | 2016 年 “Inception v4…” | 2016 年 “Inception-ResNet…” |
基本模块 | 原始 Inception 4 支路 | 加入 BatchNorm 降维 Factor | 进一步 Factorize 卷积 | 简化版 Inception-v3 模块 | 在 v3 基础上加入残差连接 |
卷积分解(Factorization) | 无 | 5×5→两个 3×3;3×3→1×3+3×1 | 进一步将 3×3 分解为 1×3+3×1 | 沿用 v3,同时微调模块宽度 | 同 v4,同时使用残差合并 |
归一化(Normalization) | 无 | 在几乎所有卷积后加入 BatchNorm | 同 v2 | 同 v2 | 同 v2 |
辅助分类器 | 存在两路 训练时使用 | 保留但权重微调 | 去除辅助分支 | 去除辅助分支 | 去除辅助分支 |
池化策略 | 普通 3×3 最大池化 | 同 v1 | 同 v1 | 同 v1 | 同 v1 |
全局池化 + FC | 全局平均池化 → Dropout → FC | 同 v1 | 同 v1 | 同 v1 | 同 v1 |
深度(大约层数) | 22 层 | ~55 层 | ~75 层 | ~80 层 | ~80 层 |
参数量 | ~6.8M | ~11M | ~23M | ~42M | ~55M |
Top-5 ImageNet(单裁剪) | 6.7% | ~5.6% | ~5.6% | ~5.5% | ~5.5% |
主要创新点 | 多尺度并行 + 1×1 降维 | BatchNorm + 卷积分解 | 更细粒度卷积分解 + 新模块 | 统一模块设计 + 更深网络 | 残差连接加速收敛 + 提升性能 |
(1)从 v1 到 v2:BatchNorm 与卷积分解引入
-
Batch Normalization:在几乎所有卷积层后加入 BN,大幅加快收敛、提高学习率容忍度;
-
卷积分解(Factorization):
-
将原始模块中的 5×5 卷积分解为两个串联的 3×3,减少参数与计算;
-
将某些 3×3 分支再分解为 1×3 + 3×1,进一步降低计算开销。
-
效果:训练更稳定,Top-5 错误率从 6.7% 降至约 5.6%;参数量增加到 ~11M,但计算效率更高。
(2)从 v2 到 v3:更细粒度分解与模块优化
-
更细粒度分解:对所有 3×3 卷积引入 1×3+3×1 分解;
-
模块重构:Inception-v3 重新设计了各个 Inception 模块(A/B/C 类型),细分通道分配策略;
-
辅助分类器:v3 中逐步淡化,训练时可选加入,评估阶段通常舍弃。
效果:网络深度增至 ~75 层,参数量 ~23M,Top-5 ≈5.6%,精度和计算效率均优于 v2。
(3)v4:更深、更统一的模块设计
-
统一模块:将 Inception-v3 中不同类型模块统一为三种 Inception-A/B/C,更易复现;
-
更深网络:整个网络深度扩展到 ~80 层;
-
Removed Technical Debt:去除少量历史冗余(如部分辅助分支),仅保留必要结构。
效果:参数量 ~42M,Top-5 进一步微小提升至 ≈5.5%,但训练与推理成本增大。
(4)Inception-ResNet:残差连接的融合
-
残差连接(Residual Connection):在每个 Inception 模块输出添加短路分支(identity mapping),借鉴 ResNet “恒等”思想;
-
加速收敛:残差有助于缓解梯度消失,使得更深网络训练更高效;
-
版本区别:
-
v1:轻量级残差改造,参数 ~55M;
-
v2:批量归一化、模块微调,精度略优。
-
效果:在 v4 精度基础上,收敛速度更快,训练更稳定。Top-5 ≈5.5%,但参数与计算量进一步增加。
(5)综述对比与选型建议
需求场景 | 建议版本 | 理由 |
---|---|---|
资源受限部署 | Inception v1 | 参数最少(≈6.8M),推理轻量 |
高精度分类 | Inception v3/v4 | 精度与效率平衡;v3 参数较少(≈23M),v4 精度略优但更重 |
训练速度优先 | Inception-ResNet | 残差连接加速收敛,适合超深网络训练 |
研究与改进基线 | v3 + ResNet 混合 | 模块化与性能成熟,易于在此基础做新颖结构探索 |
迁移学习通用特征提取 | v3/v4 | 中层特征丰富,模块设计规范,社区支持广泛 |
3、GoolgeNet-Inception系列的后续改进:Xception、MobileNet、EfficientNet
下面,我们从网络设计思想、核心模块、架构配置、性能对比及适用场景五个维度,详细分析 Xception、MobileNet(含 v1/v2/v3)与 EfficientNet(B0–B7)三大轻量级与高效网络。
(1)设计思想对比
网络 | 核心思想 |
---|---|
Xception | “Extreme Inception”——将 Inception 模块中多分支卷积分解为深度可分离卷积(Depthwise Separable Convolution) |
MobileNet | 轻量化全卷积: |
-
v1:标准深度可分离卷积 + 宽度/分辨率乘子
-
v2:倒残差结构 + 线性瓶颈
-
v3:NAS 自动搜索 + SE 注意力 | | EfficientNet| 复合缩放(Compound Scaling):
按比例同时缩放网络深度、宽度、输入分辨率,基于 NAS 搜索得到基准 B0,再生成 B1–B7 |
(2)核心模块详解
2.1 深度可分离卷积(Depthwise Separable Convolution)
-
Depthwise:对每个输入通道独立应用 a×a 卷积
-
Pointwise:紧接 1×1 卷积将通道混合
-
参数与计算量:
-
普通卷积:
-
可分离卷积:
参数量、FLOPs 减少约
-
2.2 倒残差结构与线性瓶颈(MobileNet-v2)
-
扩张层:先用 1×1 卷积扩展通道;
-
Depthwise 卷积:3×3;
-
线性投影:1×1 减少通道;
-
跳跃连接:在通道和空间尺寸一致时实施残差。
2.3 SE 注意力模块(MobileNet-v3 & EfficientNet)
-
Squeeze:全局平均池化得到通道统计;
-
Excitation:两层 FC→Sigmoid,生成每通道缩放系数;
-
Scale:对原特征图通道加权。
2.4 复合缩放(EfficientNet)
-
定义系数
,使深度
,宽度
,分辨率
,并满足
。
-
在基准 B0 上依次生成 B1–B7。
(3)架构配置与规模
网络/版本 | 参数量 | FLOPs | ImageNet Top-1<br>(单裁剪) | 关键结构 |
---|---|---|---|---|
Xception | ~22.9M | ~8.4B | 79.0% | 36× depthwise sep conv + 14× pointwise conv |
MobileNet-v1 | ~4.2M | ~569M | 70.6% | Depthwise sep conv + width/res multipliers |
MobileNet-v2 | ~3.4M | ~300M | 72.0% | Inverted ResBlock + linear bottleneck |
MobileNet-v3-Large | ~5.4M | ~219M | 75.2% | NAS 搜索模块 + SE |
EfficientNet-B0 | ~5.3M | ~390M | 77.1% | 基准复合缩放网络 |
EfficientNet-B4 | ~19M | ~4.2B | 82.9% | φ=4 复合缩放 |
EfficientNet-B7 | ~66M | ~37B | 84.3% | φ=7 复合缩放 |
注:FLOPs 均指单次前向推理的乘加运算量;Top-1 精度基于 ImageNet 验证集。
(4)性能与效率对比
-
计算效率(FLOPs)
-
最低:MobileNet-v2 (~300M)
-
中等:MobileNet-v1/v3、EfficientNet-B0 (~400–600M)
-
最高:Xception (~8.4B)、EfficientNet-B4/B7
-
-
参数规模
-
极小:MobileNet-v2 (~3.4M)
-
小:MobileNet-v1/v3、EfficientNet-B0 (~4–6M)
-
中等:Xception (~23M)、EfficientNet-B4 (~19M)
-
大:EfficientNet-B7 (~66M)
-
-
精度(Top-1)
-
入门级:MobileNet-v1 (~70.6%)
-
中档:MobileNet-v2 (~72.0%)、MobileNet-v3 (~75.2%)
-
高级:Xception (~79.0%)、EfficientNet-B0 (~77.1%)
-
顶级:EfficientNet-B4/B7 (82.9% / 84.3%)
-
(5)适用场景与选型建议
应用场景 | 推荐网络 | 理由 |
---|---|---|
极致轻量化部署 | MobileNet-v2 | 参数与计算量最小,适合算力极低的嵌入式设备 |
移动端与边缘端 | MobileNet-v3 / EfficientNet-B0 | 在有限资源下兼顾精度,SE 注意力和复合缩放提升了表示能力 |
通用高效特征提取 | Xception / EfficientNet-B0 | Xception 多层深度可分离卷积能提取丰富特征;EfficientNet-B0 综合效率与精度最佳 |
高精度离线推理 | EfficientNet-B4 / B7 | 高精度需求、计算资源充足时优选 |
研究新架构对比基线 | Xception / EfficientNet | 经典模块化设计与复合缩放策略,常见于论文对比基线 |
小结
-
Xception:将 Inception 极端化,全面引入深度可分离卷积,性能优异但计算量大;
-
MobileNet 系列:轻量化代表,从 v1 的宽度/分辨率乘子到 v2/v3 的结构改进(倒残差、SE),适合移动与边缘场景;
-
EfficientNet 系列:最系统的复合缩放策略,在各资源预算下取得最优精度/效率平衡,是当前轻量化高性能网络的旗舰。
五、ResNet
Residual Network(ResNet)由 Kaiming He 等人在 2015 年提出,论文题为 “Deep Residual Learning for Image Recognition”。它在 ILSVRC-2015 比赛中以显著优势(Top-5 错误率 3.57%)夺冠,解决了“网络加深反而性能下降”的难题,开启了百层以上超深网络的时代。
1、ResNet 系列
(1)残差学习(Residual Learning)动机
-
随着网络深度增加,传统的“堆叠卷积→ReLU”结构出现 退化现象:更深网络反而在训练/验证上损失更高。
-
ResNet 提出残差模块(Residual Block),让网络学习残差映射
通过“旁路”直连(identity shortcut),保证主分支至少能学习到恒等映射 x,从而缓解退化、加速收敛。
(2)残差模块结构
2.1 基本残差块(Basic Block)
用于 ResNet-18/34,结构如下:
输入 x ↓ Conv3×3, C→C, stride s ↓ BatchNorm → ReLU ↓ Conv3×3, C→C, stride 1 ↓ BatchNorm ↓ + Shortcut(x) ——→ ReLU ↓ 输出
-
Shortcut 分支:当输入输出通道或空间尺寸不一致时,用 1×1 卷积 + BatchNorm 做对齐;否则直接恒等映射。
-
参数量:每个 Basic Block ≈ 2×(3×3×C×C) 卷积参数。
2.2 瓶颈残差块(Bottleneck Block)
用于 ResNet-50/101/152,将 3×3 卷积分为三段:
输入 x ↓ 1×1 Conv, C→C/4 ↓ BatchNorm → ReLU ↓ 3×3 Conv, C/4→C/4, stride s ↓ BatchNorm → ReLU ↓ 1×1 Conv, C/4→C ↓ BatchNorm ↓ + Shortcut(x) ——→ ReLU ↓ 输出
-
思路:先降维(1×1),再做计算(3×3),再升维(1×1),大幅减少计算量。
-
参数量:每个 Bottleneck Block ≈
总和。
(3)ResNet 系列典型变体
版本 | 层数 | Block 类型 | 每个 Stage Block 数量 | 参数量 | Top-1 ImageNet 精度 |
---|---|---|---|---|---|
ResNet-18 | 18 | Basic | [2,2,2,2] | 11.7M | ~69.8% |
ResNet-34 | 34 | Basic | [3,4,6,3] | 21.8M | ~73.3% |
ResNet-50 | 50 | Bottleneck | [3,4,6,3] | 25.6M | ~76.2% |
ResNet-101 | 101 | Bottleneck | [3,4,23,3] | 44.5M | ~77.4% |
ResNet-152 | 152 | Bottleneck | [3,8,36,3] | 60.2M | ~78.3% |
ResNet-200 | 200 | Bottleneck | [3,24,36,3] | ~64M | ~79.0% |
-
Stage:表示网络中输出特征图尺寸相同的卷积块组,每组下第一个 block 可能 stride=2 以做空间降采样。
-
深度越大,提取特征更丰富,但计算与内存开销也随之上升。
(4)网络总体流程
-
输入处理
-
图像缩放到 256×256,随机裁剪 224×224;
-
随机水平翻转;
-
减去 ImageNet 训练集 RGB 均值;
-
-
Stem 模块
Conv7×7, stride=2, 64 filters → BatchNorm → ReLU → MaxPool3×3, stride=2
-
四个残差 Stage
-
Stage1:C=64 输出,块数视版本而定
-
Stage2:C=128, 第一个块 stride=2
-
Stage3:C=256, 第一个块 stride=2
-
Stage4:C=512, 第一个块 stride=2
-
-
全局平均池化 + 全连接
GlobalAvgPool → FC (1000) → Softmax
(5)训练细节
-
优化器:SGD + momentum(0.9)
-
初始学习率:0.1,每隔 30 个 epoch 降为 1/10
-
批大小:256
-
权重衰减:1e-4
-
训练周期:90 epoch
(6)优势与局限
优势
-
可训练超深网络:残差连接有效解决退化与梯度消失问题,使网络深度可扩展到上百层。
-
模块化设计:Basic 与 Bottleneck 两种可选结构,自由组合,易于扩展与改进。
-
迁移学习基石:ResNet 各版本预训练权重广泛用于目标检测、分割、生成对抗等下游任务。
局限
-
计算与内存开销大:尤其是 ResNet-50 以上的变体,不适合资源极度受限场景。
-
信息冗余:恒等映射旁路虽保留信息,却也带来一定冗余,后续 DenseNet 等尝试更紧密特征复用。
-
网络宽度固定:每个 Stage 通道数翻倍,可能不是最优分配,后续网络(e.g. ResNeXt、Wide ResNet)对“宽度”做了更多探索。
(7)对后续网络的影响
-
Wide ResNet:将 Bottleneck Block 通道数加宽,减少深度,取得更快收敛与更高精度;
-
ResNeXt:在残差基础上引入“分组卷积+聚合”(cardinality)概念;
-
DenseNet:用“密集连接”替代恒等旁路,实现更强特征复用;
-
Res2Net、ResNeSt:细化残差单元内部结构、引入注意力机制,进一步提升性能。
(8)小结
ResNet 通过残差学习的核心思想,成功击破“网络过深退化”难题,使得超深网络训练成为可能。其模块化、易扩展的设计,不仅在分类任务中大放异彩,更成为现代各类视觉任务的基础 Backbone。深入理解 ResNet 的原理与架构,有助于把握深度网络设计要点,并为创新高效网络提供重要启示。
2、ResNet 的改进(概述)
以下是 ResNet 自问世以来,社区和产业界在“残差学习”基础上所作的主要改进与衍生网络,按改进思路可分为“结构改进”“宽度/基数探索”“连接模式创新”“注意力/自适应模块”四大类。
(1)结构改进
网络 | 主要改进点 |
---|---|
ResNet-v2 | “Pre-activation” 版本,将 BatchNorm→ReLU 置于残差分支前端,显著加快收敛并提高精度。 |
ResNet-D | 在空间降采样处(stride=2)对 shortcut 分支做轻量卷积填充、避免信息丢失,提升小物体识别性能。 |
Stochastic Depth | 对残差分支随机丢弃(训练时每个 block 以一定概率跳过),起到正则化作用,加速超深网络训练。 |
Pre-activation ResNeXt | 将 ResNeXt 与 Pre-activation 结合,兼具多分支聚合和更稳定的梯度流。 |
(2)宽度与基数(Cardinality)探索
网络 | 关键思路 |
---|---|
Wide ResNet | 减少深度、成倍增加每层通道数(width),在参数量相近下大幅提升精度;训练和推理更快。 |
ResNeXt | 引入“基数”(cardinality)概念:将单个残差块拆分为多路等结构并行、再聚合(类似分组卷积),比增加深度或宽度更有效。 |
Res2Net | 在单个残差块内部进一步拆分“多尺度”子特征流,并做交互融合,增强块内部的多尺度表示能力。 |
(3)连接模式与特征复用
网络 | 创新点 |
---|---|
DenseNet | “密集连接”:每层与前面所有层直接连接,梯度和特征高度复用,大幅减少冗余、增强特征传递;参数量更少。 |
DualPathNet | 同时兼具 ResNet 的恒等旁路和 DenseNet 的密集连接,好处兼得——既有特征复用又保留残差学习优势。 |
PyramidNet | 随网络向深处,残差块的通道数以线性或指数方式累积增长,实现渐进式宽度提升,并结合预激活设计。 |
(4)注意力与自适应模块
网络 | 模块/机制 |
---|---|
SENet | “Squeeze-and-Excitation”:对通道维度做全局信息压缩与两层 FC 生成通道权重,自适应重标定;2017 ILSVRC 冠军。 |
CBAM | “Convolutional Block Attention Module”:在空间和通道两个维度依次做注意力,用更少开销提升表示能力。 |
SKNet | “Selective Kernel”:用不同大小卷积核并行,再通过软注意力自适应融合各核响应,实现动态感受野选择。 |
ResNeSt | 在残差块中引入“Split-Attention”分支,将多路特征分组后自适应融合,并结合全局上下文或位置信息,效果优于 SENet/CBAM。 |
(5)其他优化
-
Shake-Shake / ShakeDrop:在 ResNeXt 基础上对多分支输出做随机加权或丢弃,进一步正则化。
-
EfficientNet-ResNet 混合:基于 EfficientNet 的复合缩放策略,使用残差或注意力模块,取得更优精度/效率平衡。
-
RegNet 系列:从可解释参数化设计出发,直接搜索一族高效、可伸缩的网络宽度与深度配置,并可结合残差结构。
(6)小结与选型建议
-
训练更深:选择 ResNet-v2、ResNet-D + Stochastic Depth,可轻松训练百层以上网络且更稳定。
-
资源受限:
Wide ResNet
(参数量适中、精度高、推理快)或ResNeXt
(基数可调、通用性好)。 -
特征复用:
DenseNet
/DualPathNet
,在轻量级场景中也能取得不俗性能。 -
注意力增强:在 ResNet 基础上加 SE/CBAM/Split-Attention 模块,可几乎“零”额外深度提升精度。
-
自动化设计:考虑
RegNet
或EfficientNet+Residual
混合模型,用可解释的设计原则或 NAS 产生的配置,平衡精度与效率。
以上网络针对「更深更宽」「更高效特征利用」「更智能注意力分配」等不同维度,对 ResNet 做出了多样化改进,可根据应用场景和算力预算酌情选择与组合。