05 计算机视觉进阶本域第 3 篇
图像分类
不告诉它「猫有胡须」,给它看够多的猫,它自己会总结
定义
图像分类是给定一张图,输出它属于预定义类别集合中的哪一类(通常表示成每个类别的概率)。它不关心物体在哪里、有几个,只回答「这张图整体是什么」,是视觉任务中最基础、也是深度学习最早的爆发点。
直观理解
把分类器想成一位见多识广的鉴定师。你递给他一张照片,他在脑中把它与见过的上千万张逐一比照,最后给出「85% 是猫,10% 是狗,3% 是狐狸」的判断。深度学习做的,就是用海量带标签的图片,把这种比照直觉训练成一个可计算的过程。
ImageNet 上的十年:从 AlexNet 到 ViT,错误率断崖式下降,而「数据规模」始终是隐含的门槛
ImageNet 冠军模型的 top-5 错误率逐年下降,2015 年前后越过人类水平(虚线为人类约 5.1% 的参考线)
- ILSVRC 冠军模型
- 人类水平(约 5.1%)
工作原理
- 01
特征提取 → 分类头
卷积主干把图像逐步压成高层特征向量,最后一层全连接(或线性层)把它映射到 K 个类别的分数,softmax 归一化为概率分布。
- 02
损失与反向传播
交叉熵衡量预测分布与真实标签之间的差距;梯度反向传回,同时更新主干与分类头——全部参数被同一份损失一次性推动。
- 03
ImageNet 与架构的相互成就
2012 年 AlexNet 用 8 层卷积网络、两块 GPU 和 120 万张图,把 top-5 错误率从 25.8% 降到 15.3%。此后 VGG、GoogLeNet、ResNet 依次把错误率压到人类水平附近。
- 04
ViT:把图像当作词序列
2020 年的 ViT 把图像切成 16×16 的 patch,线性嵌入后当作 token 交给 Transformer。它在中小数据上不如 CNN,但在 JFT-300M 这类上亿量级数据上反超——说明架构的优势依赖数据规模。
CNN 与 ViT 的取舍:谁更依赖数据、谁更依赖归纳偏置
应用场景
- 内容审核与相册归类:自动打标签与检索
- 医学影像多分类辅助诊断:X 光、病理切片的类别判定
- 工业质检:良品 / 次品判定与缺陷分类
- 作为预训练任务:学到的特征迁移到检测、分割等下游任务
常见误区
- 单标签假设:一张图常同时含多个物体,ImageNet 式的单标签训练会掩盖这一点,模型被迫在多物体图上「只挑一个」。
- 类别不平衡与长尾:少数类表现差,但整体准确率仍然好看,掩盖了真正的问题。
- 「超过人类」要谨慎解读:ImageNet top-5 人类约 5.1%,但这是在限定类别与标注体系下的比较,不代表模型具备通用视觉理解。
关键术语
- top-1 / top-5 错误率
- 预测第一名 / 前五名是否命中真实标签
- 交叉熵损失
- 分类训练的标准目标函数
- 迁移学习
- 在大数据集上预训练,再在小任务上微调
- ViT
- 用 Transformer 处理图像 patch 的架构