模型輕量化方法總結 網絡剪枝 權值量化 低秩近似 知識蒸餾 高效網絡結構

網絡剪枝

剪枝目的在於找出網絡冗餘連接並移除。由於全連接的連接冗餘度遠高於卷積層,傳統的剪枝多在全連接層對冗餘神經元及連接進行移除。雖然移出的神經元及連接對結果影響不大,但仍會對性能造成影響,常見方法爲對剪枝後的模型進行微調,剪枝與微調交替進行,保證模型性能。
剪枝兩種方法。
後剪枝:模型訓練後進行剪枝。
訓練時剪枝:模型邊訓練邊剪枝。
剪枝後,權值矩陣由稠密變得稀疏。

權值量化

網絡量化通過減少表示每個權重的比特數的方法來壓縮神經網絡。量化的思想就是對權重數值進行聚類。模型的權值參數往往以 32 位浮點數的形式保存,神經網絡的參數,會佔據極大的存儲空間,因此,如果在存儲模型參數時將 32 位浮點數量化爲 8 位的定點數,可以把參數大小縮小爲原來的 1/4,整個模型的大小也可以縮小爲原來的 1/4,不僅如此,隨着參數量化後模型的減小,網絡前向運算階段所需要的計算資源也會大大減少。
量化有效原因:

  • 1.量化相當於引入噪聲,但CNN對噪聲不敏感。
    1. 位數減少後降低乘法操作,運算變快
  • 3 .減少了訪存開銷(節能),同時所需的乘法器數目也減少(減少芯片面積)。

低秩近似

低秩分解的方法從分解矩陣運算的角度對模型計算過程進行了優化。
通過使用線性代數的方法將參數矩陣分解爲一系列小矩陣的組合,使得小矩陣的組合在表達能力上與原始卷積層基本一致,這就是基於低秩分解方法的本質。
缺點:

  1. 低秩分解實現並不容易,且計算成本高昂;
  2. 目前沒有特別好的卷積層實現方式,而目前研究已知,卷積神經網絡計算複雜度集中在卷積層;
  3. 低秩近似只能逐層進行,無法執行全局參數壓縮。

知識蒸餾

使用一個大型預先訓練的網絡(即教師網絡)來訓練一個更小的網絡(又名學生網絡)。一旦對一個繁瑣笨重的網絡模型進行了訓練,就可以使用另外一種訓練(一種蒸餾的方式),將知識從繁瑣的模型轉移到更適合部署的小模型。

高效網絡結構

GoogleNet 使用了Inception 模塊而不再是簡單的堆疊網絡層從而減小了計算量。ResNet 通過引入瓶頸結構取得了極好的圖像識別效果。ShuffleNet 結合了羣組概念和深度可分離卷積,在 ResNet 上取得了很好的加速效果。MobileNet 採用了深度可分離卷積實現了目前的最好網絡壓縮效果。

  • 減小卷積核大小
  • 減少通道數
  • 減少filter數目
  • 池化操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章