跳到主要内容

图像分类

图像分类是计算机视觉领域最基础也最重要的任务之一。给定一张图像,模型需要从预定义的类别集合中选出最匹配的标签。这项看似简单的任务催生了深度学习革命,推动了整个 AI 领域的发展。

任务定义

图像分类的核心是学习一个映射函数 f:

f(图像 X) → 类别标签 y
  • 输入:一张 RGB 图像,通常表示为形状 (H, W, 3) 的张量
  • 输出:类别概率分布,取概率最大的类别作为预测结果
  • 训练信号:带标注的图像-标签对,使用交叉熵损失函数优化

图像分类的难点在于类内差异大(同一只猫可以有无数种姿势、光照、角度)和类间相似(不同品种的猫在外观上高度相似),需要模型学习具有泛化能力的视觉特征。

ImageNet 竞赛历史

ImageNet 大规模视觉识别挑战赛(ILSVRC)是推动图像分类技术发展的最重要的基准之一,共包含 120 万张训练图像、1000 个类别。

2012 年:AlexNet 引爆深度学习革命

2012 年之前,计算机视觉领域主流方法依赖手工设计的特征(SIFT、HOG),配合 SVM 分类器,Top-5 错误率长期徘徊在 26% 以上。

2012 年,Geoffrey Hinton 团队的 AlexNet 以 15.3% 的 Top-5 错误率赢得 ILSVRC,比第二名低了近 11 个百分点。这一突破验证了深度卷积神经网络(CNN)在大规模视觉识别中的有效性,正式开启了深度学习时代。

AlexNet 的关键创新:

  • 使用 ReLU 激活函数代替 Sigmoid,大幅加速收敛
  • 在 GPU(NVIDIA GTX 580)上并行训练
  • 使用 Dropout 防止过拟合
  • 数据增强(随机裁剪、水平翻转、颜色抖动)

2013-2019 年:CNN 架构快速演进

年份模型Top-5 错误率关键创新
2012AlexNet15.3%深度 CNN + ReLU + Dropout
2014VGGNet7.3%全部使用 3×3 小卷积核,网络更深
2014GoogLeNet/Inception6.7%Inception 模块,多尺度并行卷积
2015ResNet-1523.57%残差连接,训练超过 100 层网络
2019EfficientNet2.9%复合缩放(宽度/深度/分辨率均衡扩展)

CNN 架构演进详解

VGGNet(2014)

VGG 系列(VGG-16、VGG-19)证明了深度是提升性能的关键。通过统一使用 3×3 的卷积核,两个 3×3 卷积等价于一个 5×5 感受野,且参数量更少、非线性更强。

输入 → [Conv3×3 × N → MaxPool] × 5 → FC → FC → Softmax

VGGNet 结构简单、可解释性强,至今仍是特征提取迁移学习的常用 backbone。

ResNet(2015)

ResNet(深度残差网络)解决了深层网络训练中的梯度消失问题。核心思想是引入残差连接(Skip Connection)

输出 = F(x) + x  # 学习残差而非全量映射

这使得梯度可以直接通过捷径通道回传,支持训练 50、101、152 甚至 1000 层以上的网络。ResNet 是目前工业界最广泛使用的 backbone 之一。

EfficientNet(2019)

EfficientNet 提出了复合缩放方法:同时按比例扩展网络的深度(层数)、宽度(通道数)和分辨率(输入图像大小)。相比 ResNet,EfficientNet 在相同 FLOPs 预算下取得更高精度,计算效率显著提升。

Vision Transformer(ViT):将图像视为序列

2020 年,Google 提出 Vision Transformer(ViT),首次将 Transformer 架构直接应用于图像分类,颠覆了 CNN 主导的格局。

核心思想:图像 Patch 化

ViT 将图像切分为固定大小的 Patch(如 16×16 像素),每个 Patch 线性投影为一个 embedding 向量,加上位置编码后作为序列送入标准 Transformer Encoder:

原始图像 (224×224×3)
→ 切分为 196 个 16×16 Patch
→ 每个 Patch 线性投影为 768 维向量
→ 加入 [CLS] token + 位置编码
→ Transformer Encoder(12 层)
→ [CLS] token 输出 → 分类头

ViT 的优劣势

  • 优势:全局注意力机制能捕获长距离像素依赖,无归纳偏置(inductive bias),数据量足够时性能超越 CNN
  • 劣势:需要大量训练数据(JFT-300M 级别),在小数据集上不如 CNN;计算复杂度与序列长度的平方成正比

后续改进

  • DeiT:通过知识蒸馏让 ViT 在 ImageNet 上无需额外数据也能训练
  • Swin Transformer:引入窗口注意力机制,将计算复杂度降为线性,成为下游任务的通用 backbone
  • MAE(Masked Autoencoder):自监督预训练 ViT,随机遮掩 75% 的 Patch 并重建

当前 SOTA

在 ImageNet-1K 分类任务上,当前最佳模型(2024 年)Top-1 精度已超过 92%,主要由以下方向推动:

  • 更大的预训练数据:在 JFT、LAION 等数十亿规模数据集上预训练
  • 自监督学习:MAE、DINO v2 等方法不依赖标注数据即可学到强大的视觉表示
  • 模型集成:多个 ViT 变体集成进一步提升精度

迁移学习在分类中的应用

实际业务中很少从头训练分类模型,迁移学习是标准做法:

  1. 选取预训练 backbone:ResNet-50、ViT-B/16、EfficientNet-B4 等
  2. 替换分类头:将最后的全连接层改为与目标类别数匹配的新层
  3. 微调策略
    • 特征提取:冻结 backbone,只训练分类头(数据量极少时)
    • 全量微调:在目标数据集上端到端更新所有参数(数据量充足时)
    • 逐层解冻:先训练分类头,再逐步解冻上层网络(折中方案)

评测指标

  • Top-1 Accuracy:模型预测概率最高的类别与真实标签一致的比例,是最严格的评测标准
  • Top-5 Accuracy:真实标签在模型预测的前 5 名类别中的比例,ImageNet 竞赛的传统指标
  • 混淆矩阵:可视化各类别之间的错分情况,识别模型的系统性错误
  • 推理延迟(Latency):在目标设备(GPU/CPU/边缘端)上的单张图像推理时间,工程部署时的关键指标