天天看點

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

作者:計算機視覺研究院

關注并星标

從此不迷路

計算機視覺研究院

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

公衆号ID|ComputerVisionGzq

學習群|掃碼在首頁擷取加入方式

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%
  • 論文和項目網址:http://zhiqiangshen.com/projects/FKD/index.html
  • 代碼:https://github.com/szq0214/FKD

計算機視覺研究院專欄

作者:Edison_G

今天介紹一篇來自卡耐基梅隆大學等機關 ECCV 2022 的一篇關于快速知識蒸餾的文章,用基本的訓練參數配置就可以把 ResNet-50 在 ImageNet-1K 從頭開始 (from scratch) 訓練到 80.1% (不使用 mixup,cutmix 等資料增強),訓練速度(尤其是資料讀取開銷)相比傳統分類架構節省 16% 以上,比之前 SOTA 算法快 30% 以上,是目前精度和速度雙雙最優的知識蒸餾政策之一,代碼和模型已全部開源!

轉自《機器之心》

知識蒸餾(KD)自從 2015 年由 Geoffrey Hinton 等人提出之後,在模型壓縮,視覺分類檢測等領域産生了巨大影響,後續産生了無數相關變種和擴充版本,但是大體上可以分為以下幾類:vanilla KD,online KD,teacher-free KD 等。最近不少研究表明,一個最簡單、樸素的知識蒸餾政策就可以獲得巨大的性能提升,精度甚至高于很多複雜的 KD 算法。但是 vanilla KD 有一個不可避免的缺點:每次 iteration 都需要把訓練樣本輸入 teacher 前向傳播産生軟标簽 (soft label),這樣就導緻很大一部分計算開銷花費在了周遊 teacher 模型上面,然而 teacher 的規模通常會比 student 大很多,同時 teacher 的權重在訓練過程中都是固定的,這樣就導緻整個知識蒸餾架構學習效率很低。針對這個問題,本文首先分析了為何沒法直接為每張輸入圖檔産生單個軟标簽向量然後在不同 iterations 訓練過程中複用這個标簽,其根本原因在于視覺領域模型訓練過程資料增強的使用,尤其是 random-resize-cropping 這個圖像增強政策,導緻不同 iteration 産生的輸入樣本即使來源于同一張圖檔也可能來自不同區域的采樣,導緻該樣本跟單個軟标簽向量在不同 iterations 沒法很好的比對。本文基于此,提出了一個快速知識蒸餾的設計,通過特定的編碼方式來處理需要的參數,繼而進一步存儲複用軟标簽(soft label),與此同時,使用配置設定區域坐标的政策來訓練目标網絡。通過這種政策,整個訓練過程可以做到顯式的 teacher-free,該方法的特點是既快(16%/30% 以上訓練加速,對于叢集上資料讀取緩慢的缺點尤其友好),又好(使用 ResNet-50 在 ImageNet-1K 上不使用額外資料增強可以達到 80.1% 的精度)。首先我們來回顧一下普通的知識蒸餾結構是如何工作的,如下圖所示:

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

知識蒸餾架構包含了一個預訓練好的 teacher 模型(蒸餾過程權重固定),和一個待學習的 student 模型, teacher 用來産生 soft 的 label 用于監督 student 的學習。可以看到,這個架構存在一個比較明顯的缺點:當 teacher 結構大于 student 的時候,訓練圖像前饋産生的計算開銷已經超過 student,然而 teacher 權重并不是我們學習的目标,導緻這種計算開銷本質上是 “無用的”。本文的動機正是在研究如何在知識蒸餾訓練過程中避免或者說重複利用這種額外的計算結果,該文章的解決政策是提前儲存每張圖檔不同區域的軟監督信号(regional soft label)在硬碟上,訓練 student 過程同時讀取訓練圖檔和标簽檔案,進而達到複用标簽的效果。是以問題就變成了:soft label 怎麼來組織和存儲最為有效?下面具體來看該文章提出的政策。

1. FKD 算法架構介紹

FKD 架構的核心部分包含了兩個階段,如下圖:(1)軟标簽(soft label)的生成和存儲;(2)使用軟标簽(soft label)進行模型訓練。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

如圖所示,上半部分展示了軟标簽的生成過程,作者通過輸入多個 crops 進入預訓練好的 teacher 來産生需要的軟标簽向量,同時作者還儲存了:(1)每個 crop 對應的坐标和(2)是否翻轉的 Boolean 值。下半部分展示了 student 訓練過程,作者在随機采樣圖檔的時候同時也會讀取它們對應的軟标簽檔案,從中選取 N 個 crops 用于訓練,額外資料增強比如 mixup,cutmix 會放在這個階段,進而節省了由于引入更多資料增強參數帶來的額外存儲開銷。

2. 采樣政策

本文還提出了一個 multi-crop sampling 的政策,即在一個 mini-batch 裡面每張圖檔采樣多個樣本 crops。當總的訓練 epochs 不變的前提下,該采樣方式可以大大減少資料讀取的次數,對于一些資料讀取不是非常高效或者産生嚴重瓶頸的叢集裝置,這種政策的加速效果非常明顯(如下表格所示)。同時在一張圖檔采樣多個 crops 可以減少訓練樣本間的方差,幫助穩定訓練,作者發現如果 crops 的數目不是太大的情況下可以明顯提升模型精度,但是一張圖檔裡面采樣太多 crops 數目會造成每個 mini-batch 裡面訓練樣本的資訊差異不足(過于相似),是以過度采樣會影響性能,是以需要設定一個合理的數值。

3. 加速比

作者在實驗部分跟标準的訓練方式以及 ReLabel 訓練進行了速度的比較,結果如下表格所示:可以看到,相比正常的分類架構,FKD 會快 16% 左右,而相比 ReLabel 則快了 30%,因為 ReLabel 相比正常訓練需要讀取雙倍的檔案數目。需要注意的是這個速度對比實驗中,FKD crop 數目為 4,如果選取更大的 crop 數目可以得到更高的加速比。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

加速原因分析:除了上述介紹的采用多個 crops 來進行加速外,作者還分析了其他一些加速的因素,如下圖所示,ReLabel 在訓練模型階段需要生成采樣資料的坐标,同時需要使用 RoI-Align 和 Softmax 來生成所需的軟标簽,相比而言,FKD 直接儲存了坐标資訊和最終軟标簽格式,是以讀取标簽檔案之後不需要做任何額外的後處理就可以直接訓練,速度相比 ReLabel 也會更快。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

4. 标簽品質分析

軟标簽品質是保證模型訓練精度的一項最重要的名額,作者通過可視化标簽分布以及計算不同模型預測之間的交叉熵(cross-entropy)來證明了所提出的方式擁有更好的軟标簽品質。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

上圖展示了 FKD 和 ReLabel 軟标簽分布的情況對比,得到如下結論:

  • (第一行)FKD 相比 ReLabel 置信度更加平均也與輸入樣本内容更加一緻,作者分析原因是 ReLabel 将全局圖像輸入到模型中,而不是局部區域,這使得生成的全局标簽映射編碼了更多全局類别資訊同時忽略了背景資訊,使得生成的軟标簽過于接近單個語義标簽。
  • (第二行)雖然存在一些樣本 ReLabel 和 FKD 之間的最大預測機率相似,但 FKD 包含更多标簽分布中的從屬類别機率,而 ReLabel 的分布中并沒有捕獲這些從屬類别的資訊。
  • (第三行)對于某些異常情況,FKD 比 ReLabel 更加健壯,例如目标框含有松散邊界,或者隻定位部分目标等。
  • (第四行)在有些情況下,ReLabel 的标簽分布意外的崩潰了(均勻分布),沒有産生一個主要的預測,而 FKD 仍然可以預測得很好。

5. 标簽壓縮、量化政策

1)硬化 (Hardening)。在該政策中,樣本标簽 Y_H 使用 teacher 預測的最大 logits 的索引。标簽硬化政策産生的依然是 one-hot 的标簽,如下公式所示:

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

2)平滑 (Smoothing)。平滑量化政策是将上述硬化後的标簽 Y_H 替換為軟标簽和均勻分布的分段函數組合,如下所示:

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

3)邊際平滑 (Marginal Smoothing with Top-K)。邊際平滑量化政策相比單一預測值保留了更多的邊際資訊(Top-K)來平滑标簽 Y_S:

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

4)邊際平滑歸一化 (Marginal Re-Norm with Top-K)。邊際平滑歸一化政策會将 Top-K 預測值重新歸一化到和為 1,并保持其他元素值為零(FKD 使用歸一化來校準 Top-K 預測值的和為 1,因為 FKD 存儲的軟标簽是 softmax 處理之後的值):

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

具體對應上述各種量化政策的圖示如下圖所示:

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

6. 不同标簽量化 / 壓縮政策的存儲大小比較

不同标簽壓縮方法需要的存儲空間如下表格所示,所使用的資料集為 ImageNet-1K,其中 M 是軟标簽生成階段每張圖像被采樣的數目,這裡作者選取了 200 作為示例。Nim 是圖像數量, ImageNet-1K 資料集為 1.2M,SLM 是 ReLabel 标簽矩陣的大小,Cclass 是類的數量,DDA 是需要存儲的資料增強的參數次元。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

從表格中可以看到,在不做任何壓縮的情況下 FKD 軟标簽需要的存儲空間為 0.9T,這在實際使用中顯然是不現實的,标簽資料的大小已經遠遠超過訓練資料本身了。通過标簽壓縮可以極大減少存儲大小,同時後面實驗也證明了合适的壓縮方式并不會損害模型精度。

7. 自監督學習任務上的應用

FKD 的訓練方式也可以應用于自監督學習任務。作者使用自監督算法比如 MoCo,SwAV 等來預訓練 teacher 模型,然後按照上述方式生成用于自監督的軟标簽(unsupervised soft label),這個步驟跟監督學習得到的 teacher 很相似。生成标簽過程會保留原始自監督模型中 projection head 并使用之後的最終輸出向量,然後将這個向量作為軟标簽儲存下來。得到該軟标簽後,可以使用同樣的監督式的訓練方式來學習對應的 student 模型。

8. 實驗結果

1)首先是在 ResNet-50 和 ResNet-101 上的結果,如下表所示,FKD 取得了 80.1%/ResNet-50 和 81.9%/ResNet-101 的精度。同時訓練時間相比普通訓練和 ReLabel 都快了很多。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

2)作者還測試了 FKD 在 MEAL V2 上的結果,同樣得到了 80.91% 的結果。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

3)Vision Transformer 上的結果:接下來作者展示了在 vision transformer 上的結果,在不使用額外資料增強的情況下,FKD 就可以比之前知識蒸餾方法得到将近一個點的提升,同時訓練速度快了 5 倍以上。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

4)Tiny CNNs 上的結果:

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

5)消融實驗:首先是不同壓縮政策,綜合考慮存儲需求和訓練精度,邊際平滑政策是最佳的。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

接下來是訓練階段不同 crop 數目的對比,MEAL V2 由于使用了 pre-trained 的參數作為初始化權重,是以不同 crop 數目下性能都比較穩定和接近。而 vanilla 和 FKD 在 crop=4 的時候表現得最好。尤其 vanilla,相比 crop=1 精度提升了一個點,crop 大于 8 之後精度下降明顯。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

6)自監督任務上的結果:如下表所示,在自監督學習任務上 FKD 方式還是可以很好的學習目标模型,同時相比雙子結構自監督網絡訓練和蒸餾訓練,可以加速三到四倍。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

9. 下遊任務

下表給出了 FKD 模型在 ImageNet ReaL 和 ImageNetV2 兩個資料集上的結果,可以看到,FKD 在這些資料集上取得了穩定的提升。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

下表是 FKD 預訓練模型在 COCO 目标檢測任務上的結果,提升同樣明顯。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

10. 可視化分析

如下兩張可視化圖所示,作者通過可視化中間特征層(attention map)的方式探索 FKD 這種 region-based 訓練方式對模型産生的影響,作者對比了三種不同訓練方式得到的模型:正常 one-hot label,ReLabel 和本文提出的 FKD。(i) FKD 的預測的機率值相比 ReLabel 更加小(soft),因為 FKD 訓練過程引入的上下文以及背景資訊更多。在 FKD 随機 crop 的訓練政策中,許多樣本采樣于背景(上下文)區域,來自 teacher 模型的軟預測标簽更能真實的反映出實際輸入内容,并且這些軟标簽可能與 one-hot 标簽完全不同,FKD 的訓練機制可以更好的利用上下文中的額外資訊。(ii) FKD 的特征可視化圖在物體區域上具有更大的高響應值區域,這表明 FKD 訓練的模型利用了更多區域的線索進行預測,進而捕獲更多差異性和細粒度的資訊。(iii)ReLabel 的注意力可視化圖與 PyTorch 預訓練模型更加接近,而 FKD 的結果跟他們相比具有交大差異性。這說明 FKD 方式學習到的注意力機制跟之前模型有着顯著的差别,從這點出發後續可以進一步研究其有效的原因和工作機理。

ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%
ECCV | 首個快速知識蒸餾的視覺架構:ResNet50 80.1%精度,訓練加速30%

© THE END

轉載請聯系本公衆号獲得授權

計算機視覺研究院學習群等你加入!

ABOUT

計算機視覺研究院

計算機視覺研究院主要涉及深度學習領域,主要緻力于人臉檢測、人臉識别,多目标檢測、目标跟蹤、圖像分割等研究方向。研究院接下來會不斷分享最新的論文算法新架構,我們這次改革不同點就是,我們要着重”研究“。之後我們會針對相應領域分享實踐過程,讓大家真正體會擺脫理論的真實場景,培養愛動手程式設計愛動腦思考的習慣!

VX:2311123606

🔗

  • Yolov7:最新最快的實時檢測架構,最詳細分析解釋(附源代碼)

繼續閱讀