深度學習網絡壓縮模型方法總結(model compression)

兩派

1. 新的卷機計算方法

這種是直接提出新的卷機計算方式,從而減小參數,達到壓縮模型的效果,例如SqueezedNet,mobileNet網絡

  1. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size學習

    修改網絡結構,相似於mobileNet編碼

  2. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applicationslua

    修改卷機計算方式,depth-wise 卷積.net

2. 已訓練好的模型上作裁剪

這種就是在訓練好的模型上作一些修改,而後在fine-tuning到原來的準確率,主要有一些方法blog

  • 剪枝:神經網絡是由一層一層的節點經過邊鏈接,每一個邊上會有權重,所謂剪枝,就是當咱們發現某些邊上的權重很小,能夠認爲這樣的邊不重要,進而能夠去掉這些邊。在訓練的過程當中,在訓練完大模型以後,看看哪些邊的權值比較小,把這些邊去掉,而後繼續訓練模型;ci

  • 權值共享:就是讓一些邊共用一個權值,達到縮減參數個數的目的。假設相鄰兩層之間是全鏈接,每層有1000個節點,那麼這兩層之間就有1000*1000=100萬個權重參數。能夠將這一百萬個權值作聚類,利用每一類的均值代替這一類中的每一個權值大小,這樣同屬於一類的不少邊共享相同的權值,假設把一百萬個權值聚成一千類,則能夠把參數個數從一百萬降到一千個。get

  • 量化:通常而言,神經網絡模型的參數都是用的32bit長度的浮點型數表示,實際上不須要保留那麼高的精度,能夠經過量化,好比用0~255表示原來32個bit所表示的精度,經過犧牲精度來下降每個權值所須要佔用的空間。it

  • 神經網絡二值化:比量化更爲極致的作法就是神經網絡二值化,也即將全部的權值不用浮點數表示了,用二進制的數表示,要麼是+1,要麼是-1,用二進制的方式表示,原來一個32bit權值如今只須要一個bit就能夠表示,能夠大大減少模型尺寸。io

  1. XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

    網絡權重二值化、輸入二值化,從頭開始訓練一個二值化網絡,不是在已有的網絡上二值化

  2. Learning both Weights and Connections for Efficient Neural Networks

    學習重要的鏈接,根據鏈接的權重進行裁剪,fine-tuning讓網絡保持稀疏的鏈接

  3. Exploiting linear structure within convolutional networks for efficient evaluation.

    對已經訓練好的網絡應用奇異值分解

  4. Eie: Efficient inference engine on compressed deep neural network.

    加速器

  5. Deep compression: Compressing DNNs with pruning, trained quantization and huffman coding.

    裁剪(閾值)、量化(8bit,存儲方式)、哈夫曼編碼
    http://blog.csdn.net/may0324/article/details/52935869

  6. Deep Model Compression: Distilling Knowledge from Noisy Teachers

    Teacher-student Framework,一個網絡指導另一個網絡的訓練

  7. PerforatedCNNs: Acceleration through Elimination of Redundant Convolutions

    在一些稀疏位置跳過CNN求值,加速效果不明顯,且不能壓縮模型

  8. Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1

    訓練二值化網絡
    https://tensortalk.com/?cat=model-compression-parameter-pruning

  9. PRUNING FILTERS FOR EFFICIENT CONVNETS

    計算filter的L1範數,直接過濾掉較小L1範數對應的feature map, 而後再次訓練,有兩種,一是每裁剪一層訓練一下,一是直接裁剪整個網絡,而後fine-tuning. 相比權值鏈接的裁剪,這種比較暴力,好處就是不會引入稀疏矩陣的計算,從而也不須要稀疏矩陣庫,壞處就是可能沒法恢復到最開始的準確率。

相關文章
相關標籤/搜索