深度學(xué)習(xí)模型壓縮技巧

一霜大、首先,為什么網(wǎng)絡(luò)模型需要模型壓縮捡絮?

通常:給定一個(gè)精度級(jí)別熬芜,存在多個(gè)達(dá)到該精度級(jí)別的CNN架構(gòu)。在同等精度下福稳,具有較少參數(shù)的CNN有三大優(yōu)勢(shì):

  1. 更高效的分布式訓(xùn)練:分布式訓(xùn)練的數(shù)據(jù)并行方法在每個(gè)服務(wù)器上保留整個(gè)模型的副本涎拉,處理訓(xùn)練數(shù)據(jù)集的不同子集。因此通信開銷與模型中的參數(shù)數(shù)成正比,換而言之曼库,越小的模型区岗,訓(xùn)練更快略板。

2.將新模型導(dǎo)出到客戶端時(shí)毁枯,開銷較小。Over-the-air update(OTA)是指移動(dòng)終端通過(guò)無(wú)線網(wǎng)絡(luò)下載遠(yuǎn)程服務(wù)器上的升級(jí)包叮称,對(duì)系統(tǒng)或應(yīng)用進(jìn)行升級(jí)的技術(shù)种玛。越小的模型,需要的通信更少瓤檐,因此可以實(shí)現(xiàn)頻繁更新赂韵。

3.更容易在嵌入式設(shè)備上部署。芯片存儲(chǔ)空間有限挠蛉,較小的模型讓芯片(FPGA)祭示,嵌入式設(shè)備存儲(chǔ),部署神經(jīng)網(wǎng)絡(luò)更加可行谴古。

image.png
image.png

二质涛、兩種類型

1. 新的卷機(jī)計(jì)算方法

image.png

(1)是直接提出新的卷機(jī)計(jì)算方式,從而減少參數(shù)掰担,達(dá)到壓縮模型的效果汇陆,例如SqueezedNet,mobileNet

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

本方法旨在在保持相同精度的情況下,構(gòu)建更小的神經(jīng)網(wǎng)絡(luò)模型带饱,提出了SqueezeNet網(wǎng)絡(luò)

  • 概述了利用很少的參數(shù)進(jìn)行CNN架構(gòu)設(shè)計(jì)的策略
  • 引入了Fire Module作為網(wǎng)絡(luò)基本構(gòu)成單元
  • 以Fire Module為基礎(chǔ)毡代,構(gòu)建了輕量級(jí)網(wǎng)絡(luò)

結(jié)構(gòu)型策略設(shè)計(jì):

  • 策略1:用1x1卷積替換3x3卷積
    在卷積核數(shù)目一定的情況下,用大多數(shù)的1x1卷積替換3x3卷積勺疼,因?yàn)?x3卷積的參數(shù)量是1x1卷積的9倍之多
image.png
  • 策略2:減少3x3卷積的輸入特征通道數(shù)
    假定某卷積層全由3x3卷積組成教寂,則該層的參數(shù)量計(jì)算為:(input channel)x(output channel)x(3x3)
    因此,要在CNN中減少參數(shù)执庐,不僅要減少3x3卷積核的數(shù)量孝宗,而且還要減少輸入通道的數(shù)量

  • 策略3:降采樣后置
    在卷積網(wǎng)絡(luò)中,每個(gè)卷積層都會(huì)生成輸出特征圖耕肩,特征圖主要受以下因素控制:輸入數(shù)據(jù)size因妇,降采樣層的位置。
    尺寸更大的特征圖包含更豐富的空間信息猿诸,能最大化分類精度婚被,因此將降采樣層放在靠后的位置,例如VGG網(wǎng)絡(luò)結(jié)構(gòu)梳虽。

VGG

(2)修改網(wǎng)絡(luò)結(jié)構(gòu)址芯,類似于mobileNet

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications


image.png

image.png

image.png

image.png
  • MobileNets主要致力于優(yōu)化延遲,但也可以產(chǎn)生小型網(wǎng)絡(luò)
  • MobileNets 主要基于深度可分離卷積構(gòu)成,通過(guò)設(shè)置兩個(gè)超參數(shù)谷炸,實(shí)現(xiàn)準(zhǔn)確率和延時(shí)性之間的平衡


    image.png

(3)修改卷機(jī)計(jì)算方式北专,depth-wise 卷積

深度可分離卷積
輸入特征 F:DF x DF x M 輸出特征 G:DF x DF x N

image.png

2. 已訓(xùn)練好的模型上做裁剪

這種就是在訓(xùn)練好的模型上做一些修改,然后在fine-tuning到原來(lái)的準(zhǔn)確率旬陡,主要有一些方法

  • 剪枝:神經(jīng)網(wǎng)絡(luò)是由一層一層的節(jié)點(diǎn)通過(guò)邊連接拓颓,每個(gè)邊上會(huì)有權(quán)重,所謂剪枝描孟,就是當(dāng)我們發(fā)現(xiàn)某些邊上的權(quán)重很小驶睦,可以認(rèn)為這樣的邊不重要,進(jìn)而可以去掉這些邊匿醒。在訓(xùn)練的過(guò)程中场航,在訓(xùn)練完大模型之后,看看哪些邊的權(quán)值比較小廉羔,把這些邊去掉溉痢,然后繼續(xù)訓(xùn)練模型;

  • 權(quán)值共享:就是讓一些邊共用一個(gè)權(quán)值憋他,達(dá)到縮減參數(shù)個(gè)數(shù)的目的孩饼。假設(shè)相鄰兩層之間是全連接,每層有1000個(gè)節(jié)點(diǎn)举瑰,那么這兩層之間就有1000*1000=100萬(wàn)個(gè)權(quán)重參數(shù)捣辆。可以將這一百萬(wàn)個(gè)權(quán)值做聚類此迅,利用每一類的均值代替這一類中的每個(gè)權(quán)值大小汽畴,這樣同屬于一類的很多邊共享相同的權(quán)值,假設(shè)把一百萬(wàn)個(gè)權(quán)值聚成一千類耸序,則可以把參數(shù)個(gè)數(shù)從一百萬(wàn)降到一千個(gè)忍些。

  • 量化:一般而言,神經(jīng)網(wǎng)絡(luò)模型的參數(shù)都是用的32bit長(zhǎng)度的浮點(diǎn)型數(shù)表示坎怪,實(shí)際上不需要保留那么高的精度罢坝,可以通過(guò)量化,比如用0~255表示原來(lái)32個(gè)bit所表示的精度搅窿,通過(guò)犧牲精度來(lái)降低每一個(gè)權(quán)值所需要占用的空間嘁酿。

  • 神經(jīng)網(wǎng)絡(luò)二值化:比量化更為極致的做法就是神經(jīng)網(wǎng)絡(luò)二值化,也即將所有的權(quán)值不用浮點(diǎn)數(shù)表示了男应,用二進(jìn)制的數(shù)表示闹司,要么是+1,要么是-1,用二進(jìn)制的方式表示沐飘,原來(lái)一個(gè)32bit權(quán)值現(xiàn)在只需要一個(gè)bit就可以表示游桩,可以大大減小模型尺寸牲迫。

(1) XNOR-Net: ImageNet Classi?cation Using Binary Convolutional Neural Networks

網(wǎng)絡(luò)權(quán)重二值化、輸入二值化借卧,從頭開始訓(xùn)練一個(gè)二值化網(wǎng)絡(luò)盹憎,不是在已有的網(wǎng)絡(luò)上二值化

(2) Learning both Weights and Connections for Ef?cient Neural Networks

學(xué)習(xí)重要的連接,根據(jù)連接的權(quán)重進(jìn)行裁剪铐刘,fine-tuning讓網(wǎng)絡(luò)保持稀疏的連接

(3) Exploiting linear structure within convolutional networks for ef?cient evaluation.

對(duì)已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)應(yīng)用奇異值分解

(4) Eie: Ef?cient inference engine on compressed deep neural network.

加速器

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

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

(7) Deep Model Compression: Distilling Knowledge from Noisy Teachers

Teacher-student Framework滨达,一個(gè)網(wǎng)絡(luò)指導(dǎo)另外一個(gè)網(wǎng)絡(luò)的訓(xùn)練

(8) PerforatedCNNs: Acceleration through Elimination of Redundant Convolutions

在一些稀疏位置跳過(guò)CNN求值奶稠,加速效果不明顯俯艰,且不能壓縮模型

(9) Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or ?1

訓(xùn)練二值化網(wǎng)絡(luò)
https://tensortalk.com/?cat=model-compression-parameter-pruning

(10) PRUNING FILTERS FOR EFFICIENT CONVNETS

計(jì)算filter的L1范數(shù)捡遍,直接過(guò)濾掉較小L1范數(shù)對(duì)應(yīng)的feature map, 然后再次訓(xùn)練,有兩種竹握,一是每裁剪一層訓(xùn)練一下画株,一是直接裁剪整個(gè)網(wǎng)絡(luò),然后fine-tuning. 相比權(quán)值連接的裁剪啦辐,這種比較暴力谓传,好處就是不會(huì)引入稀疏矩陣的計(jì)算,從而也不需要稀疏矩陣庫(kù)芹关,壞處就是可能無(wú)法恢復(fù)到最開始的準(zhǔn)確率续挟。

本文還未寫完,更加詳細(xì)還在陸續(xù)完善侥衬,待續(xù)诗祸。。轴总。直颅。。怀樟。
(本文參考與總結(jié)他人功偿,侵權(quán)立刪)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市往堡,隨后出現(xiàn)的幾起案子械荷,更是在濱河造成了極大的恐慌,老刑警劉巖虑灰,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吨瞎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瘩缆,警方通過(guò)查閱死者的電腦和手機(jī)关拒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人着绊,你說(shuō)我怎么就攤上這事谐算。” “怎么了归露?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵洲脂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我剧包,道長(zhǎng)恐锦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任疆液,我火速辦了婚禮一铅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堕油。我一直安慰自己潘飘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布掉缺。 她就那樣靜靜地躺著卜录,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眶明。 梳的紋絲不亂的頭發(fā)上艰毒,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音搜囱,去河邊找鬼丑瞧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛犬辰,可吹牛的內(nèi)容都是我干的嗦篱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼幌缝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼灸促!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起涵卵,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浴栽,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后轿偎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典鸡,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年坏晦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了萝玷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫁乘。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖球碉,靈堂內(nèi)的尸體忽然破棺而出蜓斧,到底是詐尸還是另有隱情,我是刑警寧澤睁冬,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布挎春,位于F島的核電站,受9級(jí)特大地震影響豆拨,放射性物質(zhì)發(fā)生泄漏直奋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一施禾、第九天 我趴在偏房一處隱蔽的房頂上張望脚线。 院中可真熱鬧,春花似錦拾积、人聲如沸殉挽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至一死,卻和暖如春肛度,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背投慈。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工承耿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伪煤。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓加袋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抱既。 傳聞我的和親對(duì)象是個(gè)殘疾皇子职烧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容