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.