【EagleEye】2020-ECCV-EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning-論文閱讀


EagleEye

2020-ECCV-EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning

來源:ChenBong 博客園


Introduction

預備介紹

目前filter剪枝方法主要有以下3類:

  • 端到端【End to End】(包含稀疏訓練【Sparse Training】)
    • autopruner
  • 卷積核重要性分數【Importance Score】(包含【Class Discrimination】)
    • 【Prune-Iimportant Score】
      • L1-norm
      • taylor
      • HRank
    • 【Prune-Iimportant Score-Class Discrimination】
      • Discrimination-aware Channel Pruning for Deep Neural Networks
      • Channel Pruning Guided by Classification Loss and Feature Importance
      • Rethinking Class-Discrimination Based CNN Channel Pruning
  • 結構搜索與評估【Structure Search and Evaluation】
    • ABCPruner
    • MetaPruning

其中卷積核重要性分數側重確定剪枝結構,而結構搜索與評估側重剪枝結構的快速評估。


本文屬於結構評估類的filter剪枝,模型剪枝可以看做一個在搜索空間中搜索最佳子結構的問題:

  1. 確定搜索空間(所有的剪枝結構;在原始網絡上剪枝得到的所有網絡可以稱為候選網絡)
  2. 搜索階段:從中生成一個剪枝結構以及權重(選擇一個候選網絡)
  3. 評估階段:評估剪枝結構(該候選網絡)性能的好壞

這個想法和NAS中評估搜索空間中候選網絡的性能的問題幾乎一樣:

  1. 確搜索空間(根據搜索空間中的所有候選網絡)
  2. 搜索階段:從中生成一個候選網絡結構以及權重
  3. 評估階段:評估該候選網絡的好壞

因此本文其實是借鑒了NAS中候選網絡評估的想法,將剪枝問題看成一種NAS問題,要解決的關鍵是不訓練子網,而通過評估器快速評估候選網絡的性能。

兩個問題的區別在於:

  1. 搜索空間的不同:剪枝問題的搜索空間是超網的(滿足約束的)子網,NAS問題的搜索空間是事先定義的
  2. 搜索階段,候選網絡權重的生成方式不同:只有候選網絡的結構是無法直接評估性能的,有2種獲得候選網絡權重的方法:
    1. 繼承法,從超網繼承權重(本文的EagleEye,nas中one-shot的超網訓練)
    2. 生成法,為候選網絡生成權重(MetaPruning中的PruningNet)

評估器的衡量指標:fine-tune前后的網絡性能相關性


本文介紹

image-20200916114331363


剪枝后未fine-tune的網絡的acc 與 fine-tune到收斂的acc 存在相關性,如果一個評估算法能夠根據剪枝后未fine-tune的網絡直接估計出結構最終的acc那么就可以節省大量的fine-tune 時間開銷。

作者發現剪枝后未fine-tune的網絡性能下降嚴重,主要原因是網絡的BN層的統計信息是根據原始網絡計算出來的,不適用於剪枝后的網絡結構;因此作者提出一種 adaptive BN,即不更新網絡權重,只重更新網絡的BN層的方法,來評估不同候選剪枝網絡的性能。


Motivation

找到最佳剪枝子結構的方法:

  • 訓練法:訓練不同的子結構,找到收斂后性能最佳的子結構。
    • 優點:准確
    • 缺點:過於耗時
  • 評估法:不訓練子結構,使用評估器快速評估。
    • 優點:快速
    • 缺點:
      • inaccurate,評估性能和收斂性能相關性不強
      • complicated,使用強化學習,輔助網絡,知識蒸餾等;超參多,難復現

因此我們希望找到一種 accurate(相關性高),simple(方法簡單)的評估方法

image-20200916114518395

從 圖3左 我們發現fine-tune前后的網絡性能差距巨大,且性能相關性不強:

  1. 為什么移除不重要的filter會導致性能的嚴重下降?
  2. 為什么fine-tune前后的性能相關性不強?

圖3右 我們發現fine-tune前后網絡權重的分布變化並不大,因此可能不是權重的變化導致性能的下降。

有趣的是,我們發現BN層會對評估產生巨大的影響(這里的發現和前面的實驗沒有邏輯上的聯系,像是憑空發現的)。每一層的feature map數據受到model dimensions的影響,但vanilla evaluation 依然使用 full-size model 的BN層,因此會嚴重影響評估時的性能,更重要的是會破壞 評估acc 與 收斂acc 的相關性。


Contribution

  1. 首次在剪枝問題中引入相關性分析
  2. 提出 Adaptive BN 方法,快速:可以快速評估剪枝網絡的性能,強相關性:該評估方法的搜索/評估兩階段性能有較強的相關性,通用性:本方法是評估階段的算法,可以和任意搜索階段的算法結合
  3. 達到SOTA性能

Method

Vanilla Pruning

image-20200916114415667

結構化剪枝的問題可以描述為:

\(\begin{aligned}\left(r_{1}, r_{2}, \ldots, r_{L}\right)^{*} &=\underset{r_{1}, r_{2}, \ldots, r_{L}}{\arg \min } \mathcal{L}\left(\mathcal{A}\left(r_{1}, r_{2}, \ldots, r_{L} ; w\right)\right) \\ & \text { s.t. } \mathcal{C}<\text { constraints } \end{aligned} \qquad(1)\)

其中 \((r_{1}, r_{2}, \ldots, r_{L})\) 是各層的Layer-wise剪枝率,A表示網絡結構,C表示(FLOPs/latency等)約束

找到的最佳的 Layer-wise 剪枝率表示為 \((r_{1}, r_{2}, \ldots, r_{L})^*\)


EagleEye

BN層的工作原理

BN層是對每一個batch的數據作歸一化: \(y=\gamma \frac{x-\mu}{\sqrt{\sigma^{2}+\epsilon}}+\beta \qquad (2)\)

其中,\(\frac{x-\mu}{\sqrt{\sigma^{2}+\epsilon}}\) 將一個batch的 feature map 均值歸一化到0,方差歸一化到1; \(γ, β\) 分別是縮放系數和偏移系數,是可學習的參數


每個batch的均值和方差 \(\mu_{\mathcal{B}}, \sigma_{\mathcal{B}}^{2}\) 的計算方式如下:

\(\mu_{\mathcal{B}}=E\left[x_{\mathcal{B}}\right]=\frac{1}{N} \sum_{i=1}^{N} x_{i}, \quad \sigma_{\mathcal{B}}^{2}=\operatorname{Var}\left[x_{\mathcal{B}}\right]=\frac{1}{N-1} \sum_{i=1}^{N}\left(x_{i}-\mu_{\mathcal{B}}\right)^{2} \qquad (3)\)


訓練過程中不同 iteration t 之間BN層使用的均值和方差使用以下 momentum 的方式更新:

\(\mu_{t}=m \mu_{t-1}+(1-m) \mu_{\mathcal{B}}, \quad \sigma_{t}^{2}=m \sigma_{t-1}^{2}+(1-m) \sigma_{\mathcal{B}}^{2} \qquad (4)\)

測試階段的輸入一般是單張圖片,沒有batch的單位,因此訓練結束后的 \(μ_t,σ_t^2\) 即作為網絡BN層的值,稱為"global BN statistics"


Adaptive Batch Normalization

vanilla evaluation 使用"global BN statistics" 作為剪枝模型的BN層參數,會導致剪枝模型性能嚴重下降以及兩階段acc的低相關性。

我們提出Adaptive BN的方法來重新計算剪枝后模型BN層的值 \(μ_T,σ_T^2\) ,具體來說即凍結網絡參數使用公式(4)進行幾次前向(不進行反向),來更新BN層的值 \(μ_T,σ_T^2\) 。我們將Adaptive BN statistics記為 \(\hat {μ_T},\hat {σ_T^2}\)

vanilla evaluation 與 使用adaptive BN 的相關性如下圖:

image-20200916155215786

另一方面,我們比較了 global BN statistics ( \(μ_t,σ_t^2\) ),adaptive BN statistics ( \(\hat {μ_T},\hat {σ_T^2}\) ) 與 true statistics ( \(μ_{val},σ_{val}^2\) )之間的距離,如下圖所示:

image-20200916155558096


Correlation Measurement

使用 adaptive BN 與 global BN 的不同剪枝模型acc分別表示為 \(X_1, X_2\) ,收斂后剪枝模型的acc 表示為 \(Y\)

三種相關系數:

\(\rho_{X, Y}=\frac{\sum_{i}\left(x_{i}-\bar{x}\right)\left(y_{i}-\bar{y}\right)}{\sqrt{\sum_{i}\left(x_{i}-\bar{x}\right)^{2}\left(y_{i}-\bar{y}\right)^{2}}} \qquad (5)\)

\(\phi x, y=1-\frac{6 \sum_{i} d_{i}^{2}}{n\left(n^{2}-1\right)} \qquad (6)\)

\(\tau_{X, Y}=\frac{2}{n(n-1)} \sum_{i<j} \operatorname{sgn}\left(x_{i}-x_{j}\right) \operatorname{sgn}\left(y_{i}-y_{j}\right) \qquad (7)\)


EagleEye pruning algorithm


Strategy generation

生成一個剪枝結構,即一個Layer-wise 剪枝率的vector: \((r_{1}, r_{2}, \ldots, r_{L})\) ,這里使用隨機采樣


Filter pruning process

根據第一步得到的Layer-wise剪枝率,對full-size模型進行剪枝,這里使用L1-norm重要性分數,剪掉重要性低的filters


The adaptive-BN-based candidate evaluation module

對每個剪枝模型重新計算BN statistics,即使用adaptive BN更新BN層,在ImageNet上用來更新BN的dataSet為1/55的training set,更新50個iteration。每個剪枝模型在單張2080Ti上完成adaptive BN的更新只需要10+秒。

根據 adaptive BN更新后的剪枝模型性能選出最有潛力的剪枝模型進行fine-tune


image-20200916115737361


Experiments

Quantitative analysis of correlation

線性相關可視化

上-adaptive BN based evaluation

下-vanilla evaluation

image-20200916115607023


三種相關系數

image-20200916115617961


Generality 通用性

與AMC結合,將 MobileNet V1 在 ImageNet 上的性能由 70.5% 提升到 70.7%


Efficiency 高效性

image-20200916115633960


Effectiveness 有效性

image-20200916115646016


image-20200916115659084


image-20200916115709073


Conclusion


Summary

將NAS中的模型性能評估應用到剪枝中

文中報的性能很高,只更新BN層會將fine-tune前后的acc相關性提高這么多嗎?


ToRead

Reference

Batch Normalization原理與實戰

深度學習加速策略BN、WN和LN的聯系與區別,各自的優缺點和適用的場景?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM