天天看點

【論文閱讀筆記】Rethinking the value of Network Pruning

論文位址:https://arxiv.org/abs/1810.05270

論文總結

  論文的中心思想其實就一句話:

在通過Prune算法得到了壓縮模型後,使用來自大網絡的權重進行fine-tune,還不如直接随機初始化訓練壓縮模型。

但需要注意的是,随機初始化訓練壓縮模型,需要比訓練大模型使用更多的epochs,才能獲得更好的效果。

論文摘要

  作者通過數個網絡和資料集的prune 測試,得到了三個觀察和結論:

  1. 如果有一個确定的“壓縮”模型,訓練一個大網絡不是必要的;
  2. 在prune算法中,我們所認為“重要”的權重,其實對裁剪的小模型來說,并不是那麼有用;
  3. 對于最終的壓縮小模型來說,通過prune算法得到的網絡架構,比通過prune得到的“重要”的權重更加重要。

  并得出一個最終結論:對于SOT的剪枝算法而言,使用裁剪的權重來fine-tune隻能得到類似的或者更差的效果;對于通過剪枝算法得到的特定網絡模型,可以直接随機初始化訓練,而不用經曆傳統的裁剪管道(訓練大網絡,裁剪出權重,finetune小網絡)。

  同時,作者對彩票假說(Lottery Tickety Hypothesis)進行了對比,發現使用所謂最佳學習率的“中獎彩票”初始化,并未必随機初始化有更好的結果。

論文介紹

  傳統的prune算法有三個通道:(1)訓練一個大模型;(2)按某名額來裁剪一個訓練好的大模型;(3)finetune裁剪模型以獲得因prune而損失的性能;

  在傳統的prune觀念中,有兩個“通識”:(1)訓練大模型是必要的,可以從大模型中無損裁剪。一系列工作認為從大模型變小模型,要比直接訓練一個小模型要好;(2)裁剪下來的權重和網絡架構都是重要的。是以,裁剪算法大都會選擇fine-tune而不是重頭訓練它。

  本文提出,對于結構化裁剪,上述觀點都不重要。對于統一裁剪(使用百分比,在每個layer上都裁剪百分比的channal數)的小網絡,也是随機初始化重頭訓練效果來得好;對于使用Prune算法自動獲得模型結構的小網絡,仍需一個較大網絡,最後随機初始化訓練比較好。

  但對于非結構化裁剪(權重系數化等),從頭訓練并不能達到較好的效果。

  同時,作者認為,通過prune算法裁剪出來的模型可以為設計高效網絡架構提供設計指導。

  (文章内容外)相關技術中,Zhu & Gupta(2018)提出,小而密集的網絡(small-dense model)在相同的記憶體占用時,并不能達到和大而稀疏的網絡(large-sparse model)一樣的準确度。展現了prune的重要性。

論文實驗

  Scratch-E,訓練所有prune的小模型使用相同的epochs;Scratch-B,使用相同的計算預算,即小模型使用更多的epochs訓練,以保證相同的訓練計算量。

Predefined structure pruning

  即預設裁剪方法,按照某種名額,在每一層裁剪相同比例的channel。

  

在三種預設裁剪方法的實驗上,Scratch 的結果都要比finetune要好。

   L 1 L_1 L1​-norm base Filter Pruning,在每層中,确定百分比的較小 L 1 L_1 L1​-norm的filters将會被裁剪。結果如下圖所示:基于Scratch的結果,至少都達到了與fine-tune一樣的效果;基于Scratch-B的結果要比fine-tune的要好一截。

【論文閱讀筆記】Rethinking the value of Network Pruning

  ThiNet,貪婪地裁剪掉對下一層激活值影響最小的channel。結果顯示:Srcath-B都比fine-tune要好。對于VGG-Tiny模型而言,Scratch-E效果不好,可能是因為裁剪太多了,Scratch-E沒有獲得足夠的訓練計算量。

(表中的數字表示為與unprune model的差距)
【論文閱讀筆記】Rethinking the value of Network Pruning

  Regression based Feature Reconstruction,裁減掉最小化下一層feature maps重構誤差的channel,其采用LASSO回歸,解決優化方法。結果顯示:

【論文閱讀筆記】Rethinking the value of Network Pruning
Automatic Structured Pruning

  自動結構裁剪方法,即通過prune算法得到網絡結構。

  Network Slimming,使用L1稀疏化BN層的scale factor,得到跨layer之間的channel 比較,以産生channel-wise的prune。結果顯示:在大部分實驗中,Scratch-B都比fine-tune要好;Scratch-E略微差一點,但仍在偏差之内。

【論文閱讀筆記】Rethinking the value of Network Pruning

  Sparse Structure Selection。prune的對象除了channel,也可以是ResNet的block,ResNeXt的group。結果顯示:

【論文閱讀筆記】Rethinking the value of Network Pruning
非結構化裁剪

  在裁剪率較高(95%)的時候,Scratch-E離finetune有一些距離,Scratch-B至少和finetune一樣。

【論文閱讀筆記】Rethinking the value of Network Pruning

網絡裁剪可以作為網絡結構搜尋的一種方式

  作者通過實驗證明了:

使用相同的訓練政策,通過prune得到的網絡,達到和統一百分比prune的網絡一樣的準确率,至少可以減少5倍的參數量

【論文閱讀筆記】Rethinking the value of Network Pruning

  

但在一些模型上,prune算法也存在prune算法得到的網絡并不比統一prune得到的網絡好的情況。

這更多發生在ResNets和DenseNet上這些結構,這些結構各層的稀疏度和統一百分比prune有些類似。這可能是統一prune和prune算法表現相同的原因。

(看資料集和任務,個人使用network slimming方法在pose檢測上,效果比統一prune要好)
【論文閱讀筆記】Rethinking the value of Network Pruning
從prune得到的網絡結構中獲得模型設計指導

  下圖中,Guided pruning是prune moel在每個stage(相同大小的feature map)上channel的均值作為模型建立的基礎;Transferred Guided pruning是在另一個網絡VGG-16在另一個資料集CIFAR-10上得到的Guided pruning模型指導放在VGG-19在CIFAR-100上的模型。

  下圖左是結構化裁剪,下圖右是非結構化裁剪。結果顯示:就算是Transformed Guided Pruning都要比統一裁剪來得好,這表明

我們可以不通過訓練大模型來獲得efficient model,我們也可以通過transfermed design pattern來獲得。
【論文閱讀筆記】Rethinking the value of Network Pruning

彩票假設的實驗

  結論:

在結構化剪枝上,不管使用大lr還是小lr,“中獎彩票”初始化都不比随機初始化要好;在非結構化剪枝上,“中獎彩票”初始化所帶來的的優勢隻存在于小lr上,但準确度不如大lr訓練出來的精确。

  

非結構化剪枝

:“中獎彩票”隻在 l r = 0.01 lr=0.01 lr=0.01時帶來收益,但比 l r = 0.1 lr=0.1 lr=0.1要差。

【論文閱讀筆記】Rethinking the value of Network Pruning
【論文閱讀筆記】Rethinking the value of Network Pruning

  

結構化剪枝

:“中獎彩票”并不會比随機初始化要有更高的收益。

【論文閱讀筆記】Rethinking the value of Network Pruning

  中獎彩票不能在ResNet18和VGG上使用大學習率。在較國小習率的時候,原始的初始化是由幫助的,這可能是因為lr較小時,學到的模型與初始化并不遠,較為類似的原因。

繼續閱讀