跳到正文
AI 图鉴
05 计算机视觉进阶本域第 3 篇

图像分类

不告诉它「猫有胡须」,给它看够多的猫,它自己会总结

定义

图像分类是给定一张图,输出它属于预定义类别集合中的哪一类(通常表示成每个类别的概率)。它不关心物体在哪里、有几个,只回答「这张图整体是什么」,是视觉任务中最基础、也是深度学习最早的爆发点。

直观理解

把分类器想成一位见多识广的鉴定师。你递给他一张照片,他在脑中把它与见过的上千万张逐一比照,最后给出「85% 是猫,10% 是狗,3% 是狐狸」的判断。深度学习做的,就是用海量带标签的图片,把这种比照直觉训练成一个可计算的过程。

图 1

ImageNet 上的十年:从 AlexNet 到 ViT,错误率断崖式下降,而「数据规模」始终是隐含的门槛

2012AlexNet8 层卷积 + 两块 GPU,top-5 错误率 15.3%2014VGG / GoogLeNet更深的网络与 Inception 模块,错误率降到 6.7%2015ResNet残差连接使 152 层可训练,错误率 3.57%2017SENet通道注意力,集成后错误率 2.25%2020ViT图像 patch + Transformer,需要海量数据才显优势
图 2

ImageNet 冠军模型的 top-5 错误率逐年下降,2015 年前后越过人类水平(虚线为人类约 5.1% 的参考线)

  • ILSVRC 冠军模型
  • 人类水平(约 5.1%)

工作原理

  1. 01

    特征提取 → 分类头

    卷积主干把图像逐步压成高层特征向量,最后一层全连接(或线性层)把它映射到 K 个类别的分数,softmax 归一化为概率分布。

  2. 02

    损失与反向传播

    交叉熵衡量预测分布与真实标签之间的差距;梯度反向传回,同时更新主干与分类头——全部参数被同一份损失一次性推动。

  3. 03

    ImageNet 与架构的相互成就

    2012 年 AlexNet 用 8 层卷积网络、两块 GPU 和 120 万张图,把 top-5 错误率从 25.8% 降到 15.3%。此后 VGG、GoogLeNet、ResNet 依次把错误率压到人类水平附近。

  4. 04

    ViT:把图像当作词序列

    2020 年的 ViT 把图像切成 16×16 的 patch,线性嵌入后当作 token 交给 Transformer。它在中小数据上不如 CNN,但在 JFT-300M 这类上亿量级数据上反超——说明架构的优势依赖数据规模。

图 3

CNN 与 ViT 的取舍:谁更依赖数据、谁更依赖归纳偏置

应用场景

  • 内容审核与相册归类:自动打标签与检索
  • 医学影像多分类辅助诊断:X 光、病理切片的类别判定
  • 工业质检:良品 / 次品判定与缺陷分类
  • 作为预训练任务:学到的特征迁移到检测、分割等下游任务

常见误区

  • 单标签假设:一张图常同时含多个物体,ImageNet 式的单标签训练会掩盖这一点,模型被迫在多物体图上「只挑一个」。
  • 类别不平衡与长尾:少数类表现差,但整体准确率仍然好看,掩盖了真正的问题。
  • 「超过人类」要谨慎解读:ImageNet top-5 人类约 5.1%,但这是在限定类别与标注体系下的比较,不代表模型具备通用视觉理解。

关键术语

top-1 / top-5 错误率
预测第一名 / 前五名是否命中真实标签
交叉熵损失
分类训练的标准目标函数
迁移学习
在大数据集上预训练,再在小任务上微调
ViT
用 Transformer 处理图像 patch 的架构

延伸阅读