資料高效影像 Transformer(data-efficient image transformer, DeiT)
DeiT 證明了視覺 Transformer 不需要龐大的私有資料集也能出色——只在 ImageNet-1k 上小心訓練就夠了。原始 ViT 那個亮眼的結果帶著一個令人清醒的註腳:它只有在以 JFT-300M(一個三億張影像、多數研究者無法取用的語料)預訓練之後才贏過卷積網路;只用 ImageNet-1k 時它落後。DeiT(Touvron 等人,2021)用完全相同的 ViT 架構、但一套強得多的訓練配方填平了這道鴻溝,讓有幾張 GPU 的普通實驗室也能訓練出有競爭力的 ViT。
它的配方有兩根支柱。第一根是激進的資料增強與正則化,用來補償 Transformer 微弱的內建先驗:RandAugment、Mixup 與 CutMix(混合影像與標籤)、隨機抹除(random erasing)、隨機深度(stochastic depth,訓練時隨機丟掉整層)、重複增強、強權重衰減與標籤平滑。這些手段逼著小資料集表現得像一個更大、更多變的資料集,並防止過參數化的 ViT 死記硬背。
第二根支柱、也是 DeiT 的招牌貢獻,是透過一個專屬的蒸餾詞元(distillation token)來做蒸餾。在一般的類別詞元之外,DeiT 多加一個可學習的詞元,其目標是一個教師網路的預測。值得注意的是最佳的教師是一個強大的卷積網路(一個 RegNet),於是 ViT 實際上學的是 CNN 的硬決定——DeiT 偏好「硬蒸餾」,去匹配教師的 top-1 標籤而非它的軟機率。透過這個詞元,Transformer 在自己的本體裡沒有一個卷積,卻繼承了卷積教師那些有用的內建偏好。
其持久的意義有兩面。在實務上,DeiT 讓 ViT 能在標準資料上從頭訓練,使 Transformer 視覺研究民主化。在概念上,它重新框定了 ViT 的「資料飢渴」問題:問題從來不是 Transformer 本質上需要好幾億張影像,而是它微弱的先驗必須以某種方式被供給——靠資料、靠增強,或靠從一個已經擁有那些先驗的模型把它們蒸餾過來。
DeiT 的「從 CNN 教師做硬蒸餾」是個低調的承認:卷積的內建偏好是有價值的;ViT 與其說從零發現局部性,不如說是向教師借來的。這也是為什麼在推論時,蒸餾詞元常常勝過類別詞元。