[2017ICCV F] Learning Efficient Convolutional Networks through Network Slimming

Title Venue Type Code
Learning Efficient Convolutional Networks Through Network Slimming ICCV F pytorch

Abstract

,我們提出一種新穎的CNNs學習方案,在不影響精度下:

  1. 同時減小模型尺寸;
  2. 減少運行時內存佔用;
  3. 減少運算次數
    這是通過以一種簡單而有效的方式在網絡中強制信道級稀疏來實現的。所提出的方法直接適用於現代的CNN體​​繫結構,將訓練過程的開銷降至最低,並且對於生成的模型不需要特殊的軟件/硬件加速器。我們稱這種方法爲網絡瘦身,它以大型網絡和大型網絡爲輸入模型,但是在訓練過程中,會自動識別並修剪不重要的渠道,從而產生具有可比精度的精簡模型。

思路

  • 在訓練的過程中,對 Loss 函數加入稀疏誘導項(L1正則化),迫使模型訓練的過程中,通道變得稀疏,這種稀疏是通過 BN 層的 γ\gamma 係數來實現的。隨着訓練的進行,BN 層的 γ\gamma 係數趨向於0,貢獻度小的 γ\gamma 係數所對應的 filter 將會被裁剪掉。

一些關鍵詞

  • 通道剪枝(卷積核剪枝)
  • 通道稀疏
  • 全局閾值剪枝
  • L1 正則化稀疏誘導
  • 通道重要性評估剪枝
  • 需要 finetuning
  • BN層剪枝

超參數

  1. 稀疏化。 LOSS 函數稀疏正則項係數γ\gamma
  2. 剪枝比例。全局剪枝比例超參數。

1 Introduction

目前問題
CNN在實際應用中的部署主要受到以下因素的限制

  1. 模型的大小
  2. 運行內存
  3. 計算操作數

方法操作對象
卷積核

總述
我們的方法在批量歸一化(BN)層中對縮放因子施加 L1正則化,因此易於實現而無需對現有CNN架構進行任何更改。 使用 L1 正則化將 BN 縮放因子的值推近零,使我們能夠識別無關緊要的通道(或神經元),因爲每個縮放因子都對應於特定的卷積通道(或全連接層中的神經元)。

貢獻

  1. 通道級稀疏性在靈活性和易於實現之間提供了很好的折衷。

2 Related Works

  • 低階分解

  • 權重量化
    這種激進的低位逼近方法通常會帶來中等程度的精度損失

  • 重量修剪/稀疏。
    這些方法只能使用專用的稀疏矩陣運算庫和/或硬件來實現加速。 運行時內存的節省也非常有限,因爲大多數內存空間都被激活映射(仍然很密集)而不是權重佔用了

  • 結構化修剪/稀疏化。

3 Algorithm

相關圖解

  • 圖1. 稀疏誘導與裁剪

在這裏插入圖片描述

  • 圖2. 剪枝流程

在這裏插入圖片描述

算法流程

【v】裁剪流程:
.----------------------------------------------------
1、對 LOSS 函數加入 L1 正則化
.-------------------
2、對沒有 BN 層的模型加入BN層,有的則不用
.-------------------
3、稀疏化訓練,設定稀疏化超參數
.-------------------
4、裁剪。設定全局裁剪比例超參數
.-------------------
5、剪掉貢獻度低的通道,貢獻度的高低通過 γ\gamma 係數來決定。
.-------------------
6、生成新的被裁剪過的模型
.-------------------
7、finetuning 網絡
.-------------------

算法的數學實現

優化的 LOSS 函數

L=(x,y)l(f(x,W),y)+λγΓg(γ)L=\sum_{(x, y)} l(f(x, W), y)+\lambda \sum_{\gamma \in \Gamma} g(\gamma)

gg(·) 是稀疏性對比例因子的懲罰,而 λλ 平衡了這兩項

g(s)=sg(s)=|s|

g(s)g(s) 是 L1 正則化,廣泛用於實現稀疏性。

  • BN層操作

z^=zinμBσB2+ϵ;zout=γz^+β\hat{z}=\frac{z_{i n}-\mu_{\mathcal{B} } } {\sqrt{ {\sigma}_ {\mathcal{B}}^ {2}+\epsilon}} ; \quad z_{\text {out}}=\gamma \hat{z}+\beta

LOSS 的作用就是訓練的過程中,迫使每一層的不同通道對應的 γ\gamma 稀疏化,接近甚至變成了 0

4 Experiments

實驗對象

實驗數據集

  • CIFAR-10
  • CIFAR-100
  • SVHN
  • MNIST
  • ImageNet

實驗模型

  • VGG
  • DenseNet
  • ResNet
  • 3個全連接層網絡

實驗結果

  • CIFAR-10, CIFAR-100, SVHN

  • VGG

  • DenseNet

  • ResNet
    在這裏插入圖片描述

  • ImageNet,MNIST

  • VGG

  • 3個全連接層網絡

在這裏插入圖片描述

多次剪枝過程

  • CIFAR-10,CIFAR-100
  • VGGNet

在這裏插入圖片描述

  • VGG 的剪枝細節
    在這裏插入圖片描述

論文評價

  • 優點
    算法思路清晰,容易實現,效果好

  • 缺點

  1. 對剪枝的程度沒有先驗知識的指導。剪枝的效果依靠人工經驗,即試
  2. 模型各個層的剪枝閾值是相同的,不過在後期的一個實現過程中,可以逐層進行,但是會很繁瑣
  3. 總共 2 個超參數。

其他文獻

  • 解讀文獻

模型壓縮 | 結構性剪枝Data-Driven Sparse Structure Selection 以及實際剪枝實現流程_網絡_HongYuSuiXinLang的博客-CSDN博客
https://blog.csdn.net/HongYuSuiXinLang/article/details/82592585

  • 相似文獻
    [2018ECCV F] Data-Driven Sparse Structure Selection for Deep Neural Networks

  • 應用項目

【Pruning系列:一】Learning Efficient Convolutional Networks through Network Slimming_網絡_鹿鹿的博客-CSDN博客
https://blog.csdn.net/qq_31622015/article/details/103825048?ops_request_misc=&request_id=&biz_id=102&utm_term=Learning%20Efficient%20Convolution&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-103825048

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章