ECCV 2022 | 新方案: 先剪枝再蒸餾
前言 論文提出了一個新的框架,“prune, then distill”,該框架首先剪枝模型,使其更具可移植性,然後提取給student。並進一步從理論上證明了剪枝後的teacher在蒸餾中起到正則化器的作用,減少了泛化誤差。
在此基礎上,還提出了一種新的神經網路壓縮方案,其中student網路是基於剪枝後的teacher,然後應用“prune, then distill”策略。
歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀、CV招聘資訊。目前公眾號正在徵稿中,可以獲取對應的稿費哦。
QQ交流群: 444129970。群內有大佬負責解答大家的日常學習、科研、程式碼問題。
論文:https://arxiv.org/pdf/2109.14960.pdf
程式碼:https://github.com/ososos888/prune-then-distill
創新思路
神經網路壓縮技術受到越來越多的關注,如知識蒸餾和剪枝。知識蒸餾(KD)是一種模型壓縮工具,它將特徵從一個繁瑣的網路轉移到一個較小的網路。最近,一系列研究提出了專注於“student友好型”teacher的蒸餾方案,這種teacher在有限的容量下向student網路提供更多可轉移的知識。
網路剪枝是另一種網路壓縮技術,它可以有效地去除網路的權值或神經元,同時保持準確性。由於剪枝簡化了神經網路,剪枝後的teacher提供的知識對student友好,更容易轉移。但引發了一個主要問題:剪枝能夠提高知識蒸餾的效能嗎?
為了回答這個問題,本文提出了一個新的框架,“prune, then distill”,包括三個步驟:
1)訓練teacher網路;
2)剪枝teacher網路;
3)提取剪枝後的網路到更小的student網路。
知識蒸餾可以看作是一種標籤平滑正則化(LSR),它通過提供更平滑的標籤來正則化訓練。作者發現,經過正則化訓練的teacher比原來的teacher提供了一個更平滑的標籤。這意味著,正則化的teacher的蒸餾等價於標籤更平滑的LSR。由於剪枝可以看作是一個正則化的模型,具有一個稀疏誘導正則化器,得出剪枝後的teacher正則化了蒸餾過程。
在此基礎上,作者提出了一種新的網路壓縮方案。當提供了一個麻煩的網路時,通過應用“prune, then distill”策略來壓縮網路。然而,由於蒸餾將知識轉移到給定的student網路,因此,作者提出了一種深度相同但神經元數量較少的student網路,使每層的權值數量與相應層中剪枝後的網路的非零權值數量匹配。
本文的主要貢獻
1.提出了一個新的框架,“prune, then distill”,在提取之前先剪枝teacher網路。
2.通過實驗驗證了teacher的非結構化剪枝可以提高知識提取的表現。
3.提供了一個理論分析,一個剪枝的teacher的蒸餾是一個有效的標籤平滑正則化與更平滑的標籤。
4.提出了一種新的網路壓縮方法,在剪枝teacher的基礎上構建student網路,然後應用“prune, then distill”策略。
方法
prune, then distill
探索性實驗
作者通過實驗來驗證剪枝後的teacher在KD方面的有效性。沒有直接提取teacher網路(圖1中藍色點的方塊),而是先(非結構化)對teacher網路進行剪枝,然後提取到student網路(圖1中紅色點的方塊)。
圖1:“prune, then distill”策略。
採用非結構化剪枝,去除更多的權值,更精確的LR 復卷,來剪枝teacher模型。
實驗的目的不是獲得最佳的測試精度,而是比較從剪枝過的網路中提取和從未剪枝過的網路中提取。如表1所示,經過剪枝的VGG19的VGG11始終優於未剪枝的teacher的VGG11。表1還給出了teacher網路為VGG19DBL。在這兩種情況下,剪枝過的teacher表現得更好。
表1:CIF AR100上VGG19到VGG11的知識提取,teacher剪枝。
自我蒸餾:作者進行了自我蒸餾實驗,teacher和student共享相同的模型。
表2顯示了
1)沒有KD的模型,
2)從未剪枝的teacher那裡學習到的模型,
3)從剪枝過的teacher那裡學習到的模型的測試精度。
表2:對VGG19和ResNet18進行teacher剪枝的自蒸餾。
與其他實驗類似,作者也觀察到與沒有teacher的網路相比,從未經剪枝的網路中學習也增加了測試的準確性,然而,經過剪枝的teacher的收穫更顯著。
作者還研究了當student和teacher擁有不同的網路架構時,剪枝後的teacher的KD。
表3比較了
1)沒有teacher的student,
2)從未經修飾的teacher那裡學習的student
3)從經過修飾的teacher那裡學習的student的測試準確率。
表3。從ResNet18提取到MobileNetV2和VGG16,並進行teacher剪枝。
觀察到,當teacher被剪枝時,KD的表現會更好。這意味著更好的提取並不侷限於teacher和student網路之間的類似架構。然而,teacher網路的精度越高,並不能保證蒸餾的結果越好。此外,即使在測試準確性低於未受過訓練的teacher時,受過訓練的teacher也能發揮更好的作用。這意味著,剪枝過的teacher更好,不是因為它有更高的準確性,而是因為它提供了更好的可轉移知識。
另外,作者還觀察到一致性和準確性表現獨立。例如,在VGG19自蒸餾實驗中,剪枝後的teacher提供了更高的一致性,對應的student提供了更高的準確性;而在ResNet18自我蒸餾中,儘管student的準確率更高,但經過剪枝的teacher的一致性較低。這意味著一些student模仿teacher模仿得更好,但表現得更差。這一結果說明蒸餾間接地幫助訓練student模型與額外的正則化。
剪枝後的teacher作為正則化器
使用正則化器訓練的teacher在蒸餾過程中提供了額外的正則化。
最小交叉熵損失為:
知識蒸餾損失為:
正則化teacher ft通過最小化得到:
由於LCE(wt) = minw LCE(w),則有:
這意味著
剪枝可被視為具有稀疏性誘導正則化的經驗風險最小化問題的解決方案。因此,從剪枝的teacher中提取的是具有更平滑的標籤分佈的標籤平滑正則化,這減少了泛化誤差。
傳遞稀疏性知識
基於剪枝teacher傳遞更好知識的觀察,本文提出了一種新的網路壓縮框架,該框架從(非結構化)剪枝網路中學習。關鍵的挑戰是student網路體系結構設計,以有效地從剪枝過的teacher網路那學習。
student網路設計的關鍵思想是,經過剪枝的teacher也可以提供稀疏的知識。作者構造了一個較窄的student,其中每一層都與剪枝後的teacher的相應層相匹配。student網路具有相同的深度,但每層的通道數量減少,使得權重的數量(近似)等於剪枝後的teacher中剩餘引數的數量(如圖2所示)。
圖2:student網路設計。
所提出的壓縮演算法有四個步驟:
1.訓練原始網路並獲得ft。
2.應用非結構化剪枝,得到剪枝後的網路ft。
3.基於剪枝網路ft的每層稀疏性構造fs。
4.將剪枝後的網路ft提取到studentfs。
該方案將知識從稀疏網路(非結構化剪枝)轉移到具有較少通道的網路,以進一步減少通道數量。這類似於殘餘蒸餾,其去除殘餘網路的不需要部分。在本文的設定中,通過KD將稀疏濾波器合併到更少的濾波器中,來移除非結構化剪枝的不需要部分。
實驗
表4:所提出的壓縮演算法在具有CIF AR100的VGG19上的效能
表5:使用TinyImageNet在ResNet18上提出的壓縮演算法的效能。
表6:人為設計的student網路的知識提取
圖3:剪枝比率和演算法的影響。
結論
本文的實驗表明,在KD中,剪枝後的teacher可以比原始teacher更有效。作者進一步從理論上證明,經過剪枝的teacher在蒸餾中提供了額外的正則化。
基於這一觀察,提出了一種新的網路壓縮方案,將經過剪枝的teacher網路提取為student網路,student網路的體系結構基於(非結構化)剪枝網路。所提出的網路壓縮是一種有效的結構化剪枝演算法,它利用了非結構化剪枝的稀疏性知識。
搞了個QQ交流群,打算往5000人的規模擴充套件,還專門找了大佬維護群內交流氛圍,大家有啥問題可以直接問,主要用於演算法、技術、學習、工作、求職等方面的交流,徵稿、公眾號或星球招聘、一些福利也會優先往群裡發。感興趣的請搜尋群號:444129970
加微信群加知識星球方式:關注公眾號CV技術指南,獲取編輯微信,邀請加入。
歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀、CV招聘資訊。目前公眾號正在徵稿中,可以獲取對應的稿費哦。
其它文章
ECCV 2022 | FPN:You Should Look at All Objects
ECCV 2022 | ScalableViT:重新思考視覺Transformer面向上下文的泛化
ECCV 2022 | RFLA:基於高斯感受野的微小目標檢測標籤分配
遷移科技-工業機器人3D視覺方向2023校招-C++、演算法、方案等崗位
文末贈書 |【經驗】深度學習中從基礎綜述、論文筆記到工程經驗、訓練技巧
ECCV 2022 | 通往資料高效的Transformer目標檢測器
ECCV 2022 Oral | 基於配準的少樣本異常檢測框架
CVPR 2022 | 網路中批處理歸一化估計偏移的深入研究
- 普通段位玩家的CV演算法崗上岸之路(2023屆秋招)
- 用於超大影象的訓練策略:Patch Gradient Descent
- 關於知識蒸餾,你一定要了解的三類基礎演算法
- 深度理解變分自編碼器(VAE) | 從入門到精通
- CUDA 教程(一) GPU 程式設計概述和 CUDA 環境搭建
- 一文總結當下常用的大型 transformer 效率優化方案
- 多模態學習有哪些架構?MBZUAI最新《多模態表示學習》綜述,29頁詳述多模態表示學習的演化、預訓練及其應用綜述
- Transformer-Based Learned Optimization
- U-Net在2022年相關研究的論文推薦
- ECCV 2022 | 新方案: 先剪枝再蒸餾
- CVPR2022 | 簡單高效的語義分割體系結構
- CVPR 2022 | 網路中批處理歸一化估計偏移的深入研究
- CVPR2022 | 通過目標感知Transformer進行知識蒸餾
- 經典論文 | 300FPS,超快結構感知的深度車道檢測
- YOLO系列梳理(九)初嘗新鮮出爐的YOLOv6
- CVPR2022 | 長期行動預期的Future Transformer
- CVPR2022 | 可精簡域適應
- CVPR2022 | 弱監督多標籤分類中的損失問題
- 計算機視覺中的論文常見單詞總結
- CVPR2022 | A ConvNet for the 2020s & 如何設計神經網路總結