Image Classification/zh
| Article | |
|---|---|
| Topic area | Computer Vision |
| Prerequisites | Convolutional Neural Networks, Cross-Entropy Loss, Backpropagation |
概述
图像分类是为输入图像分配来自固定类别集合中标签的任务。它是计算机视觉中典型的监督学习问题之一,也是衡量大多数视觉数据表示学习方法的基础基准。给定一幅图像,分类器返回从预定义类目体系中抽取的单一类别(单标签分类)或类别集合(多标签分类)。该任务支撑着包括目标检测、语义分割、医学影像诊断和内容审核在内的下游应用,因为这些问题中使用的骨干网络通常是在大规模带标注语料上预训练得到的图像分类器。
图像分类的现代时代始于 2012 年深度卷积神经网络在 ImageNet 大规模视觉识别挑战赛上的成功,这取代了人工设计特征流水线作为主导范式的地位。在架构、优化、正则化和数据规模方面的后续进展,将 ImageNet 上的 top-1 准确率从大约 63% 推升至 90% 以上,同时也将图像分类器的实际应用范围从受控基准扩展到网络规模、多领域的环境。
问题表述
设 $ \mathcal{X} $ 表示输入图像的空间(通常是 $ \mathbb{R}^{H \times W \times C} $ 中的张量,其中 $ H $ 为高度,$ W $ 为宽度,$ C $ 为通道数),并设 $ \mathcal{Y} = \{1, 2, \ldots, K\} $ 表示具有 $ K $ 个类别的有限标签集合。分类器是由 $ \theta $ 参数化的函数 $ f_\theta: \mathcal{X} \to \Delta^{K-1} $,它将一幅图像映射到标签上的概率分布,其中 $ \Delta^{K-1} $ 是概率单纯形。预测标签为
$ {\displaystyle \hat{y} = \arg\max_{k \in \mathcal{Y}} f_\theta(x)_k.} $
给定从未知分布 $ p(x, y) $ 中独立同分布抽取的带标签数据集 $ \mathcal{D} = \{(x_i, y_i)\}_{i=1}^N $,训练过程最小化期望损失,通常为分类交叉熵:
$ {\displaystyle \mathcal{L}(\theta) = -\frac{1}{N} \sum_{i=1}^N \log f_\theta(x_i)_{y_i}.} $
优化通过随机梯度下降的变体来进行,例如带动量的 SGD或AdamW,梯度通过网络中的反向传播计算得到。
经典方法
在深度学习时代之前,图像分类流水线主要由两阶段系统主导。第一阶段提取人工设计的特征,例如 SIFT、HOG 或颜色直方图;第二阶段在这些特征之上应用诸如支持向量机或随机森林之类的分类器。视觉词袋(Bag-of-Visual-Words)表示将局部描述子量化到一个固定词表中并生成直方图风格的图像嵌入,是一种特别有影响力的前深度学习方法。这些方法在规模较小、整理良好的基准上取得了不错的结果,但在自然图像的多样性面前难以扩展,因为特征设计需要大量的领域专业知识,并且很少能够跨域迁移。
深度学习方法
深度神经网络从原始像素中联合学习特征提取器和分类器,从而消除了对人工设计特征的需求。当前主导的有两大架构家族。
卷积神经网络通过堆叠的可学习卷积滤波器,并交错使用逐点非线性函数和空间降采样,来利用平移等变性和局部连通性。具有影响力的设计包括 AlexNet、VGG、ResNet(引入了残差连接,使得训练非常深的网络成为可能)、Inception 以及 EfficientNet(联合缩放深度、宽度和分辨率)。卷积的归纳偏置使这些模型具有数据效率,并且非常适合处理不同分辨率的图像。
视觉 Transformer(ViT)用对图像块序列的自注意力取代了卷积。每幅输入图像被切分为不重叠的图像块网格,线性嵌入后再加入位置编码,并由一堆Transformer 编码器块进行处理。要在从零开始训练时与 ImageNet 上的CNN相匹敌,ViT 通常需要更大规模的预训练数据集,但它在极大规模下表现出色,并且更容易扩展到诸如CLIP之类的多模态场景。混合设计(Swin Transformer、ConvNeXt)将卷积组件与基于注意力的组件结合起来,从而在不放弃可扩展性的前提下恢复数据效率。
训练
在实践中训练一个有竞争力的图像分类器,需要结合损失函数和优化器之外的多种要素。数据增强通过应用保持标签不变的变换——例如随机裁剪、水平翻转、颜色抖动、Mixup和CutMix——来扩大有效训练集。包括权重衰减、Dropout和标签平滑在内的正则化技术能够减小在训练分布上的过拟合。批归一化或层归一化使深度网络的优化更加稳定。诸如余弦退火之类的学习率调度,通常与学习率预热结合使用,是标准做法。
迁移学习无处不在:从业者通常不是从随机初始化开始训练,而是从在 ImageNet、JFT 或 LAION 等大型数据集上预训练的模型初始化骨干网络,然后再在目标任务上进行微调。这极大地减少了在小型下游数据集上达到良好准确率所需的数据量和计算量。自监督学习方法,包括对比方法(SimCLR、MoCo)和掩码图像建模(MAE、BEiT),可以从未标注的图像中提供预训练信号,从而进一步减少对带标签数据的依赖。
评估
标准的度量是 top-$ k $ 准确率:测试样本中真实标签出现在前 $ k $ 个预测得分类别之内的比例。按照惯例,在 ImageNet 上会报告 top-1 和 top-5 准确率。对于类别不平衡的数据集,平衡准确率或按类别计算的 F1 分数更具信息量。预测的校准也通过期望校准误差来评估,因为众所周知深度分类器即使在预测准确时也会输出过度自信的概率。
基准数据集覆盖了多种难度和规模:MNIST 和 CIFAR-10/100 是小规模的玩具基准;ImageNet-1k(128 万张图像,1000 个类别)是事实上的中等规模基准;ImageNet-21k、JFT-300M/3B 和 LAION 提供了预训练规模的语料。诸如 ImageNet-C(受损图像)、ImageNet-A(经过对抗筛选的自然图像)和 ImageNet-R(渲染分布偏移)之类的鲁棒性基准,用于衡量超出训练分布的泛化能力。
变体与扩展
若干变体扩展了基本的单标签设置。多标签分类预测每幅图像对应 $ \mathcal{Y} $ 的一个子集,将每个标签视为带二元交叉熵损失的独立二分类问题。层次分类利用一棵标签树(例如 ImageNet 所使用的 WordNet)来鼓励在 top-1 标签错误时仍犯出合理的错误。细粒度分类(鸟类物种、汽车型号)针对仅在细微局部特征上有所不同的类别,通常使用基于注意力或部件的机制。小样本学习和零样本学习针对的是某些类别在训练时只有极少或没有标注样本的场景;现代的视觉-语言模型(如 CLIP)通过将图像嵌入与自然语言类别描述进行匹配,从而实现零样本分类。
局限性
图像分类器继承了若干被充分记录的失败模式。它们对分布偏移很敏感:在 ImageNet 上的准确率并不能可靠地预测在新领域、光照条件或渲染风格下的准确率。它们容易受到对抗样本的影响,这类样本通过施加难以察觉的像素级扰动来翻转预测。标签与背景上下文之间的虚假相关性(例如,草地上的奶牛、雪地中的哈士奇)即使在前景信息无关时也可能驱动预测。数据集偏差会通过分类器传播到下游系统,从而引发公平性方面的担忧,尤其是在与人脸或人相关的分类任务中。最后,即便是高度准确的分类器,其校准通常也很差,因此需要使用诸如温度缩放之类的事后方法来获得可靠的概率估计。
这些局限性推动了在鲁棒训练、分布外检测、算法公平性以及不确定性量化方面的活跃研究,同时也推动着将图像分类器集成到更广泛的多模态和自监督系统中,使视觉表示在语言和结构层面有所依托。
参考文献
- ↑ Krizhevsky, A., Sutskever, I., and Hinton, G. ImageNet Classification with Deep Convolutional Neural Networks. NeurIPS, 2012.
- ↑ He, K., Zhang, X., Ren, S., and Sun, J. Deep Residual Learning for Image Recognition. CVPR, 2016.
- ↑ Dosovitskiy, A. et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR, 2021.
- ↑ Russakovsky, O. et al. ImageNet Large Scale Visual Recognition Challenge. International Journal of Computer Vision, 2015.
- ↑ Radford, A. et al. Learning Transferable Visual Models From Natural Language Supervision. ICML, 2021.