- 目前深度學(xué)習(xí)模型壓縮方法主要分為更精細(xì)化模型設(shè)計(jì)、模型裁剪、核的稀疏化、量化、低秩分解、遷移學(xué)習(xí)等方法,而這些方法又可分為前端壓縮和后端壓縮
27.1 前端壓縮和后端壓縮對比
| 對比項(xiàng)目 | 前端壓縮 | 后端壓縮 |
|---|---|---|
| 含義 | 不會改變原始網(wǎng)絡(luò)結(jié)構(gòu)的壓縮技術(shù) | 會大程度上改變原始網(wǎng)絡(luò)結(jié)構(gòu)的壓縮技術(shù) |
| 主要方法 | 知識蒸餾、緊湊的模型結(jié)構(gòu)設(shè)計(jì)、濾波器層面的剪枝 | 低秩近似、未加限制的剪枝、參數(shù)量化、二值網(wǎng)絡(luò) |
| 實(shí)現(xiàn)難度 | 較簡單 | 較難 |
| 是否可逆 | 可逆 | 不可逆 |
| 成熟應(yīng)用 | 剪枝 | 低秩近似、參數(shù)量化 |
| 待發(fā)展應(yīng)用 | 知識蒸餾 | 二值網(wǎng)絡(luò) |
27.2 網(wǎng)絡(luò)剪枝
深度學(xué)習(xí)模型因其稀疏性,可以被裁剪為結(jié)構(gòu)精簡的網(wǎng)絡(luò)模型,具體包括結(jié)構(gòu)性剪枝與非結(jié)構(gòu)性剪枝。
| 事項(xiàng) | 特點(diǎn) | 舉例 |
|---|---|---|
| 非結(jié)構(gòu)化剪枝 | 通常是連接級、細(xì)粒度的剪枝方法,精度相對較高,但依賴于特定算法庫或硬件平臺的支持 | Deep Compression, Sparse-Winograd算法等; |
| 結(jié)構(gòu)化剪枝 | 是filter級或layer級、粗粒度的剪枝方法,精度相對較低,但剪枝策略更為有效,不需要特定算法庫或硬件平臺的支持,能夠直接在成熟深度學(xué)習(xí)框架上運(yùn)行。 | 如局部方式的、通過layer by layer方式的、最小化輸出FM重建誤差的Channel Pruning, ThiNet, Discrimination-aware Channel Pruning ;全局方式的、通過訓(xùn)練期間對BN層Gamma系數(shù)施加L1正則約束的Network Slimming;全局方式的、按Taylor準(zhǔn)則對Filter作重要性排序的Neuron Pruning ;全局方式的、可動態(tài)重新更新pruned filters參數(shù)的剪枝方法 |
-
如果按剪枝粒度分,從粗到細(xì),可分為中間隱含層剪枝、通道剪枝、卷積核剪枝、核內(nèi)剪枝、單個(gè)權(quán)重剪枝。下面按照剪枝粒度的分類從粗(左)到細(xì)(右)。
(a)層間剪枝 (b)特征圖剪枝 (c)k*k核剪枝 (d)核內(nèi)剪枝
| 事項(xiàng) | 特點(diǎn) |
|---|---|
| 單個(gè)權(quán)重粒度 | 早期 Le Cun[16]提出的 OBD(optimal brain damage)將網(wǎng)絡(luò)中的任意權(quán)重參數(shù)都看作單個(gè)參數(shù),能夠有效地提高預(yù)測準(zhǔn)確率,卻不能減小運(yùn)行時(shí)間;同時(shí),剪枝代價(jià)過高,只適用于小網(wǎng)絡(luò) |
| 核內(nèi)權(quán)重粒度 | 網(wǎng)絡(luò)中的任意權(quán)重被看作是單個(gè)參數(shù)并進(jìn)行隨機(jī)非結(jié)構(gòu)化剪枝,該粒度的剪枝導(dǎo)致網(wǎng)絡(luò)連接不規(guī)整,需要通過稀疏表達(dá)來減少內(nèi)存占用,進(jìn)而導(dǎo)致在前向傳播預(yù)測時(shí),需要大量的條件判斷和額外空間來標(biāo)明零或非零參數(shù)的位置,因此不適用于并行計(jì)算 |
| 卷積核粒度與通道粒度 | 卷積核粒度與通道粒度屬于粗粒度剪枝,不依賴任何稀疏卷積計(jì)算庫及專用硬件;同時(shí),能夠在獲得高壓縮率的同時(shí)大量減小測試階段的計(jì)算時(shí)間.由 |
- 從剪枝目標(biāo)上分類,可分為減少參數(shù)/網(wǎng)絡(luò)復(fù)雜度、減少過擬合/增加泛化能力/提高準(zhǔn)確率、減小部署運(yùn)行時(shí)間/提高網(wǎng)絡(luò)效率及減小訓(xùn)練時(shí)間等。
大數(shù)據(jù)視頻推薦:
網(wǎng)易云課堂
CSDN
人工智能算法競賽實(shí)戰(zhàn)
AIops智能運(yùn)維機(jī)器學(xué)習(xí)算法實(shí)戰(zhàn)
ELK7 stack開發(fā)運(yùn)維實(shí)戰(zhàn)
PySpark機(jī)器學(xué)習(xí)從入門到精通
AIOps智能運(yùn)維實(shí)戰(zhàn)
騰訊課堂
大數(shù)據(jù)語音推薦:
ELK7 stack開發(fā)運(yùn)維
企業(yè)級大數(shù)據(jù)技術(shù)應(yīng)用
大數(shù)據(jù)機(jī)器學(xué)習(xí)案例之推薦系統(tǒng)
自然語言處理
大數(shù)據(jù)基礎(chǔ)
人工智能:深度學(xué)習(xí)入門到精通
