10億級數據規模半監督圖像分類模型,Imagenet測試精度高達81.2%
譯者 | linstancy作者| I. Zeki Yanlniz, Herve Jegou, Kan Chen, Manohar Paluri, Dhruv Mahajan編輯 | 藍色琥珀魚,Rachel出品 | AI科技大本營(ID:rgznai100)
【導讀】本文提出了一種十億級數據規模的半監督圖像分類模型,通過使用教師-學生架構以及一個小規模的帶標籤數據集,作者提出了一個基於卷積神經網路的半監督學習方法。另外,作者對模型的不同架構和模型參數進行了消融實驗,並提出了一些構建半監督學習模型的建議。
摘要
本文基於教師-學生架構(teacher-student schema),利用大規模無標籤圖像數據集 (多達十億張),提出了一種基於大規模卷積神經網路的半監督學習方法,旨在改善給定目標模型架構的性能,如 ResNet-50 或 ResNext。隨後,作者通過大量的評估分析了本文所提出方法的成功因素,提出了一些用於構建高性能半監督圖像分類學習模型的建議。總的來說,本文的方法在構建圖像、視頻及細粒度分類的標準模型架構方面有著重要的意義,如利用一個含十億張未標記的圖像數據集訓練得到的 vanilla ResNet-50 模型,在 Imagenet 數據集的基準測試中取得了 81.2% 的 top-1 精度。
簡介
當前,利用網路弱監督數據集,圖像和視頻分類技術在諸如圖像分類、細粒度識別等問題上取得了非常好的表現。但是,弱監督學習的標籤存在一些缺陷。首先,非視覺性標籤、缺失標籤和不相關標籤會導致雜訊,這將對模型的訓練造成很大影響。第二,弱監督的網路數據集通常遵循齊普夫定律,存在大量長尾(long-tail)標籤,這使得模型只會對那些最顯著的標籤有良好的性能。最後,這些弱監督方法假定其可用於目標任務所使用的大型弱監督數據集,然而在許多現實情況中並非如此。
針對這些問題,本文利用數十億張未標記的圖像以及一個針對特定任務的相對較小的標籤數據集,提出了一個用於網路規模數據的半監督深度學習模型,如圖1所示:
(1)在標籤數據集上訓練以獲得初始的教師模型 (teacher model); (2) 對於每個 class/label 對,使用該教師模型來對未標記的圖像打標籤並進行打分,選擇每一標籤類別的 top-K 個圖像來構建新的訓練數據; (3)使用新構建的數據來訓練學生模型 (student model)。通常來說,學生模型與教師模型存在一定的差異,因此在測試時可以降低模型的複雜性; (4) 在初始的標籤數據集上,對預訓練的學生模型進行微調(fine-tuning) ,以避免一些可能存在的標籤錯誤。
打開今日頭條,查看更多圖片圖1 半監督學習方法說明:通過一個優秀的教師模型,從一個非常大型的無標籤圖像數據集 (億級)
除此模型之外,本研究還嘗試了幾種其他的模型結構,一是移除教師 - 學生模型並使用自訓練模型,二是在進行模型微調時使用推斷出的標籤作為訓練數據。在實驗分析部分,作者討論了幾個影響模型性能的敏感因素,如用於標籤排名的教師模型的性能,無標籤數據的規模以及性質,教師模型和學生模型之間的關係等。研究結果表明,利用主題標籤或查詢作為弱監督信號來收集無標籤數據能夠顯著地提升模型的性能。
本文的貢獻如下:
- 提出了一個用於大規模億級無標籤數據集的半監督深度學習方法,並展示了在標籤數據上訓練得到的教師模型能夠有效地指導學生模型在無標籤圖像數據上的訓練學習過程。
- 總結了這種學習策略在何種情況下能帶來最大收益,如圖2。
- 對多種模型架構進行消融實驗並做詳細分析,如教師/學生模型的強度,無標籤數據集的性質,所選擇樣本的標籤數等。
- 展示了這種半監督學習方法在視頻分類和細粒度識別任務中的表現。
圖2 用於構建大規模半監督學習模型的建議
半監督學習方法
本文所提出的半監督學習方法主要包含四個部分,如圖3所示:
圖3 半監督學習方法流程
這與當前的一些蒸餾研究流程相類似,不同之處如下:(1) 聯合利用無標籤和標籤數據的方法;(2) 構建標籤數據集 D 的方法;(3) 使用的數據規模以及針對 Imagenet 數據集的改進。
教師模型訓練
這一步驟在標籤數據集上訓練一個教師模型,以便對無標籤數據集的圖像打標籤。這種方法的一大優點在於推理過程是高度可並行的,這意味著不論是在 CPU 還是在 GPU 上,對大規模億級數據的計算也能在很短時間內完成。該階段訓練一個性能優秀的教師模型,以便為無標籤數據生成可靠的標籤信息,且不引入多餘的標籤雜訊。
數據選擇和標籤
這一步旨在收集大量的圖像數據,並對標籤雜訊進行控制。由於無標籤數據的規模很大,因此對於每個目標標籤,從無標籤數據集中選用 top-K 個樣本。首先,用無標籤數據集的每個樣本來訓練教師模型,以獲得 softmax 預測向量。而對於每張圖像而言,只能得到與類別相關的 P 個最高分數,其中 P 是一個用來反映我們期望出現在每個圖像中的最多的類別數量。隨後,基於相關的類別分數,對圖像進行排名 (ranking),並選擇用於多類別半監督圖像分類的新的圖像數據。圖4展示了在 ImageNet-val 數據集上基於ResNet-50 訓練出的教師模型在 YFCC100M 數據上的排名結果,其中 P = 5 。排名越高的圖像,所帶的標籤雜訊越少。
圖4 通過本文方法從 YFCC100M 上所收集的圖像樣本
學生模型的訓練與微調
這一步用新的標籤數據集數據來訓練學生模型,旨在得到一個更簡單通用的模型。實際上,這裡可以選用與教師模型相同結構的學生模型。值得注意的是,雖然為標籤數據集中每個圖像分配多個類別標籤信息是可以實現的,但這裡仍通過圖像複製的方式將問題視為一種多類別分類任務。之後,在原始標籤數據集上對學生模型微調並進行評估,在預訓練和微調過程都採用 softmax 損失函數。
圖像分類實驗與分析
這一部分,作者通過在 ImageNet1K 數據集上的一系列圖像分類實驗評估了該模型的效果。
實驗設置
數據集:使用下面兩個網路規模的數據集作為無標籤數據,用於半監督學習實驗。
- YFCC-100M:這一數據集是從 Flickr 網站提取得到的一個含9千萬張圖像的公開數據集。移除數據集中的重複樣本後,作者將該數據集用於後續大部分的實驗。
- IG-1B-Targeted:這一數據集是作者從社交媒體網站上收集的,包含10億張公共圖像數據。
除非有特別的說明,這裡統一採用標準的1000個類別的 ImageNet 作為標籤數據集。
模型:對於教師和學生模型,分別採用殘差網路(residul network) ResNet-d ,其中 d = {18, 50} ,以及使用群卷積(group convolution)的殘差網路 ResNeXt-101 32XCd ,其中分組寬度 C = {4, 8, 16, 48} 。具體的模型參數如圖5所示:
圖5 改變教師模型容量並用所提出的方法來訓練 ResNet-50 學生模型,這裡的收益是相對於監督學
訓練細節:實驗過程通過使用同步隨機梯度下降演算法(synchronous stochastic gradient descent, SGD) 在8台機器的64個 GPU 上訓練模型。每個 GPU 一次處理24張圖像,並對所有的卷積層採用批正則化策略(batch normalization)。權重衰減參數設置為0.0001,訓練過程的學習率設置採用帶 warm-up 的縮放策略,整體的 minibatch 大小為 64 * 24 = 1536 。
對於模型預訓練,採用 0.1 到 0.1/256×1536 的 warm-up 策略,這裡的 0.1 和 256分別是 ImageNet 訓練中使用的標準學習率和 minibatch 尺寸。此外,採用二等分間隔的學習率衰減策略,使得在訓練過程中學習率減少次數共為13次。在基於 ImageNet 數據集對模型進行微調時,將學習率設為 0.00025 / 256 × 1536,並在30 個 epochs 期間採用三等分間隔減少學習率。
不同模型的實驗分析
本文方法 vs 監督學習方法圖6比較了本文方法與監督學習方法在 ImageNet 數據集上的效果。可以看到,相比於監督學習,本文方法訓練的教師模型取得了顯著的性能改進。
圖6 本文方法與監督學習方法在不同容量的學生模型上微調前後的 ImageNet1k-val top-
模型微調的重要性由於預訓練的數據集和標籤數據集的標籤信息是一樣的,作者比較了模型在標籤數據上微調前後的性能。如上圖6所示,可以看到在標籤數據上進行微調對於模型性能有著至關重要的影響。
學生和教師模型容量的影響如上圖5、圖6所示,可以看到對於容量更低的學生模型,識別的精度有顯著地提高。而對於教師模型而言,增大模型的容量並不會對學生模型的性能造成顯著影響。
自訓練:教師/學生模型的消融實驗 (ablation) 圖7展示了在自訓練模式下,模型在ImageNet 數據集上訓練得到的不同模型在推斷時的準確度。可以看到,對於容量更大的模型,所取得的準確度表現相對更好。
圖7 自訓練模式下 ResNet 和 ResNeXt 模型在 YFCC 數據集上的 top-1 準確
參數分析
無標籤數據集的大小下圖8展示不同規模的無標籤數據集上半監督學習模型的準確度表現。可以看到,在數據集規模達到2千5百萬之前,每當數據集規模成倍增加時,模型能夠取得穩定的準確度提升。總的來說,採用大型的無標籤數據對於模型性能的提升是有幫助的。
圖8 ResNet-50 學生模型在不同規模的無標籤數據上的精度
預訓練迭代次數圖9展示了不同預訓練迭代次數下的模型性能表現。可以看到,當迭代次數為10億次時,模型能夠實現良好的識別準確度和計算資源的權衡。
圖9 不同預訓練步數對完全監督和半監督的 ResNet-50 學生模型性能的影響
參數 K 和 P圖10展示了當 P = 10 時,每個類別選擇的圖片數 K 的變化對模型性能的影響。作者發現,在所收集的無標籤數據集規模不是很大時,令 P = 10 能獲得較好的模型表現。
圖10 對於超參數 K 的不同取值,學生模型的精度表現。
此外,實驗還對一些不同的半監督學習的方法進行了分析,並將模型的表現與當前最先進的模型性能進行對比。除了圖像分類實驗外,本研究還進一步探究在視頻分類、遷移學習等不同應用中該半監督學習方法的性能。具體的分析內容和說明可參見原論文。
總結
本文研究利用大規模的無標籤圖像數據集,探究了半監督學習在圖像識別方面的應用,並提高了 CNN 模型的性能表現。通過一系列的實驗分析,作者提出,聯合使用大型標籤數據集和小規模有標籤數據集能夠有助於構建效果更好的卷積神經網路模型。此外,研究還對一些模型參數和模型變體進行了實驗分析,並總結了一些構建半監督圖像分類模型的經驗方法。
原文鏈接:
https://arxiv.org/abs/1905.00546
(本文為 AI科技大本營編譯文章,轉載請微信聯繫 1092722531)