图像分类与 ImageNet 里程碑

核心04-深度学习视觉预计 25 分钟图像分类ImageNet交叉熵softmax

前置知识点

kp-015 视觉深度学习骨架:从 CNN 引用到骨干网络

一句话定义

图像分类把整图映射为类别概率分布,训练用 softmax 交叉熵最小化负对数似然;ImageNet 竞赛以百万级标注图像把这一任务的错误率从 26% 压到 3.6%,直接引爆了深度学习时代。

为什么重要

分类是视觉任务的「果蝇」:结构最简单、指标最清晰,骨干网络、训练技巧、预训练范式几乎都在这里先验证再扩散;工业上它又是最容易落地的任务(质检、场景识别、内容审核的第一道闸),一个准确率数字背后是完整的训练工程。

直观类比

分类网络像一位只回答单选题的考官:无论考卷多大(图像多少像素),最后只交一张答题卡(1000 维概率);交叉熵惩罚的不是「没选对」本身,而是「给正确答案的信心不足」——逼着网络把正确类别的概率拉满。

前置知识

kp-015(骨干网络);库外的反向传播与优化器基础由深度学习站覆盖。

核心概念

原理与机制

前向:骨干输出特征 → 全局池化 → 全连接得 logits z → softmax 得概率。训练目标是对全部样本的交叉熵均值,其梯度恰为 ŷ − y(softmax 与 one-hot 之差),形式简洁且无饱和区。评测口径必须分清:ImageNet 报告的 top-5 在 1000 类下比 top-1 宽松得多;AlexNet 2012 年把 top-5 错误率从 26.2% 降到 15.3%(第二名 26.2%,传统方法),2015 年 ResNet 达到 3.57%,首次超过人类报告水平(约 5.1%)——这两次跃迁分别确立了「深度卷积 + GPU」与「残差训练」两个范式。迁移学习是该任务最重要的工程遗产:ImageNet 预训练 + 少量目标域微调至今仍是小数据分类的默认路径。

公式与模型

ŷ_c = exp(z_c) / Σ_k exp(z_k) L = − Σ_c y_c · log(ŷ_c) (one-hot 时 L = −log ŷ_true)

图示

2012 AlexNet 15.3% 2013 11.7% 2014 GoogLeNet 6.7% 2015 ResNet 3.57% 人类约 5.1% 纵轴:top-5 错误率(越低越好)

实例与案例

工业缺陷分类:产线每分钟数千张图,用 MobileNet 级骨干 + 缺陷数据微调,top-1 达标即可上线;罕见缺陷用复制-粘贴增强补齐。医疗影像:类别极度不平衡且代价不对称(漏诊远贵于误报),需要按代价重设阈值并报告敏感度/特异度,而非单一准确率。内容审核:分类器只做初筛,边界样本进人工复审,形成「机审 + 人审」闭环。

logits = model(images)                       # (B, num_classes)
loss = torch.nn.functional.cross_entropy(logits, labels, label_smoothing=0.1)
pred = logits.argmax(dim=1)
acc = (pred == labels).float().mean()

常见误区

与其他知识点的关系

分类损失与指标是 kp-017 检测评测的文化母体;预训练权重直接服务于 kp-026 迁移学习;ImageNet 里程碑的时间线并入 kp-029 的学科脉络。

自测题

  1. 交叉熵对 logits 的梯度为什么形式简洁?

答案要点:softmax + 交叉熵复合后梯度恰为 ŷ − y,无链式膨胀,数值稳定且不饱和。

  1. AlexNet 与 ResNet 分别确立了什么范式?

答案要点:AlexNet 确立「深度卷积 + GPU + ReLU/Dropout」的可行性与数据规模路线;ResNet 确立残差训练,使上百层网络可优化。

  1. 95 类正常 + 5 类缺陷、准确率 95%,这个分类器有价值吗?

答案要点:无法判断——它可能把缺陷全判为正常;必须看缺陷类的召回率与代价加权指标。

延伸阅读

相关知识点

kp-017 目标检测:IoU、mAP 与两阶段流程kp-025 数据集与标注工作流