模型壓縮(0) - background

模型壓縮出了一系列文章,包括 MobileNet,Xception,ShuffleNet,SqueezeNet等,對相關論文進行閱讀與總結。 服務器

 

CNN模型設計研究點
  • 模型壓縮:

    對pre-trained的模型進行壓縮,使其變成小模型,如採用網絡剪枝和量化等 網絡

  • layer優化:

    採用1x1的小卷積核,可分解卷積(factorized convolution)結構,模塊化結構(blocks, modules) 架構

  • 網絡架構設計與優化:

    網絡深度、Resnet殘差鏈接(bypass connection, shortcut) 分佈式

  • 組合優化:

    不一樣超參數、網絡結構、優化其等的組合優化模塊化

 

 

模型壓縮Background

增長網絡的深度有利於提升Accuracy 學習

在Accuracy接近的狀況下,參數量少的模型更有優點: 優化

  • 高效的分佈式訓練:

    服務器間通訊影響分佈式CNN訓練的computation performance, 小模型對通訊需求低 編碼

  • 減小通訊開銷:

    自動駕駛等應用中常常要更新模型,小的model須要的額外通訊開銷小,更容易更新 spa

  • 減少內存消耗:

    利於在小內存的硬件上部署,如FPGA .net

 

常見模型壓縮技術
  • 奇異值分解 (Singular Value Decomposition, SVD)
  • 網絡剪枝(Network Pruning):

    網絡剪枝和稀疏矩陣(調整卷積方式)

    經過dropout,L1/L2-regularization等能產生權重稀疏性的方法訓練體積和密度都很大的網絡,

    把網絡中貢獻小(也就是被稀疏過)的權重裁剪掉,至關於去除一些冗餘鏈接,

    最後對模型作一下fine-tune,獲得30%的壓縮率。可是效率提升上不適合大多數通用CPU,

    由於存儲不連續,索引權重時容易發生Cache miss,得不償失。

  • 深度壓縮(Deep Compression):

    網絡剪枝、數字化(quantization)、Huffman編碼

  • 硬件加速器 (Hardware Accelerator)

 

 

Reference

CNN網絡優化學習總結——從MobileNet到ShuffleNet

相關文章
相關標籤/搜索