2019年的最后一個(gè)月,這里有6種你必須要知道的最新剪枝技術(shù)
對(duì)于剪枝技術(shù),你了解多少?這里有一份秘籍,整理了 2019 年度的 6 篇論文所提到的最新剪枝方法。
剪枝是一種幫助神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)規(guī)模更小、效率更高的深度學(xué)習(xí)方法。這是一種模型優(yōu)化技術(shù),它刪除權(quán)重張量中不必要的值,從而使得壓縮后的神經(jīng)網(wǎng)絡(luò)運(yùn)行速度更快,網(wǎng)絡(luò)訓(xùn)練過程中的計(jì)算成本也有所降低。在將模型部署到手機(jī)等邊緣設(shè)備上時(shí),剪枝的作用更加明顯現(xiàn)。
本篇精選了神經(jīng)網(wǎng)絡(luò)剪枝領(lǐng)域的一些研究論文,供大家學(xué)習(xí)參考。
論文 1:Pruning from Scratch (2019)
作者提出了一種從頭開始剪枝的網(wǎng)絡(luò)剪枝流程。他們?cè)?CIFAR10 和 ImageNet 數(shù)據(jù)集上對(duì)多個(gè)壓縮分類模型進(jìn)行了試驗(yàn),結(jié)果表明該流程降低了正常剪枝方法的預(yù)訓(xùn)練開銷,同時(shí)提高了網(wǎng)絡(luò)的準(zhǔn)確率。
論文鏈接:https://arxiv.org/pdf/1909.12579.pdf
下圖展示了傳統(tǒng)剪枝流程的三個(gè)階段:預(yù)訓(xùn)練、剪枝和微調(diào)。
這篇論文提出的剪枝技術(shù)包括可基于隨機(jī)初始化權(quán)重學(xué)得的新的剪枝流程。通道重要性(channel importance)則可通過關(guān)聯(lián)標(biāo)量門控(scalar gate)值和每個(gè)網(wǎng)絡(luò)層來(lái)學(xué)得。
優(yōu)化通道重要性,可在稀疏性正則化的情況下提高模型性能。在此過程中,隨機(jī)權(quán)重并未得到更新。然后,基于給定資源約束,使用二分搜索策略確定剪枝后模型的通道數(shù)配置。
下表展示了模型在不同數(shù)據(jù)集上的準(zhǔn)確率:
論文 2:Adversarial Neural Pruning (2019)
這篇論文主要探討在遇到對(duì)抗擾動(dòng)時(shí)網(wǎng)絡(luò)隱特征的失真問題。該論文提出的方法是:學(xué)習(xí)貝葉斯剪枝掩碼,來(lái)抑制較高級(jí)的失真特征,從而最大化其面對(duì)對(duì)抗擾動(dòng)的穩(wěn)健性。
論文鏈接:https://arxiv.org/pdf/1908.04355.pdf
作者考慮了深度神經(jīng)網(wǎng)絡(luò)中隱特征的脆弱性。該方法提出剪除脆弱的特征,同時(shí)保留穩(wěn)健的特征。這一過程可通過在貝葉斯框架中對(duì)抗地學(xué)習(xí)剪枝掩碼來(lái)完成。
對(duì)抗神經(jīng)剪枝(Adversarial Neural Pruning,ANP)結(jié)合了對(duì)抗訓(xùn)練和貝葉斯剪枝方法。該論文提出的新模型及其基線模型是:
- 標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)(Standard)
- 使用貝塔-伯努利 dropout(beta-Bernoulli dropout)的 base 網(wǎng)絡(luò),即貝葉斯剪枝(BP)
- 對(duì)抗訓(xùn)練網(wǎng)絡(luò)(AT)
- 使用貝塔-伯努利 dropout 的對(duì)抗神經(jīng)剪枝(ANP)
- 使用脆弱抑制損失(vulnerability suppression loss)進(jìn)行正則化得到的對(duì)抗訓(xùn)練網(wǎng)絡(luò)(AT-VS)
- 使用脆弱抑制損失進(jìn)行正則化得到的對(duì)抗神經(jīng)剪枝網(wǎng)絡(luò)(ANP-VS)
下表展示了模型的性能:
論文 3:Rethinking the Value of Network Pruning (ICLR 2019)
這篇論文提出的網(wǎng)絡(luò)剪枝方法分為兩類,目標(biāo)剪枝模型的架構(gòu)由人類或剪枝算法來(lái)決定。在實(shí)驗(yàn)中,作者對(duì)比了從頭開始訓(xùn)練剪枝模型和基于繼承權(quán)重進(jìn)行微調(diào)得到的剪枝模型的結(jié)果,該對(duì)比針對(duì)預(yù)定義方法和自動(dòng)化方法。
論文鏈接:https://arxiv.org/pdf/1810.05270v2.pdf
下圖展示了使用基于 L1 范數(shù)的濾波器剪枝的預(yù)定義結(jié)構(gòu)化剪枝所得到的結(jié)果。每一層都使用較小的 L1 范數(shù)剪掉一定比例的濾波器。「Pruned Model」列是用于配置每個(gè)模型的預(yù)定義目標(biāo)模型列表。我們可以看到,每一行中,從頭開始訓(xùn)練的模型性能至少與微調(diào)模型持平。
如下表所示,ThiNet 貪婪地剪去了對(duì)下一層的激活值影響最小的通道。
下表展示了基于回歸的特征重建方法的結(jié)果。該方法最小化了下一層的特征圖重建誤差,從而實(shí)現(xiàn)對(duì)通道剪枝。該優(yōu)化問題可以通過 LASSO 回歸解決。
至于 Network Slimming,在訓(xùn)練過程中,對(duì)批歸一化層中的通道級(jí)縮放因子施加 L1 稀疏性。之后,利用較低的縮放因子對(duì)通道剪枝。由于通道縮放因子經(jīng)過跨層對(duì)比,因此該方法能夠得到自動(dòng)發(fā)現(xiàn)的目標(biāo)架構(gòu)。
論文 4:Network Pruning via Transformable Architecture Search (NeurIPS 2019)
這篇論文提出了直接對(duì)具備靈活通道數(shù)和層數(shù)的網(wǎng)絡(luò)應(yīng)用神經(jīng)架構(gòu)搜索。實(shí)現(xiàn)剪枝網(wǎng)絡(luò)的損失最小化有利于學(xué)習(xí)通道數(shù)。剪枝網(wǎng)絡(luò)的特征圖由基于概率分布采樣的 K 個(gè)特征圖片段組成,通過反向傳播將損失傳輸?shù)骄W(wǎng)絡(luò)權(quán)重和參數(shù)化分布。
論文鏈接:https://arxiv.org/pdf/1905.09717v5.pdf
剪枝網(wǎng)絡(luò)的寬度和深度是基于每個(gè)分布規(guī)模的最大概率得來(lái)的,然后通過從原始網(wǎng)絡(luò)進(jìn)行知識(shí)遷移來(lái)獲取這些參數(shù)。論文作者在 CIFAR-10、CIFAR-100、ImageNet 數(shù)據(jù)集上評(píng)估了該模型。
該剪枝方法包含三個(gè)步驟:
- 用標(biāo)準(zhǔn)分類訓(xùn)練步驟訓(xùn)練未經(jīng)剪枝的大規(guī)模網(wǎng)絡(luò);
- 通過 Transformable Architecture Search (TAS) 搜索小規(guī)模網(wǎng)絡(luò)的深度和寬度,旨在搜尋最佳規(guī)模的網(wǎng)絡(luò)。
- 用簡(jiǎn)單的知識(shí)蒸餾(KD)方法,將未經(jīng)剪枝網(wǎng)絡(luò)的信息遷移到搜索得到的小規(guī)模網(wǎng)絡(luò)中去。
下表對(duì)比了不同 ResNet 模型經(jīng)過不同剪枝算法后,所得到的模型在 ImageNet 數(shù)據(jù)集上的各自表現(xiàn):
論文 5:Self-Adaptive Network Pruning (ICONIP 2019)
這篇論文提出通過自適應(yīng)網(wǎng)絡(luò)剪枝方法(SANP)降低 CNN 的計(jì)算成本,通過對(duì)每個(gè)卷積層引入 Saliency-and-Pruning Module (SPM) 來(lái)實(shí)現(xiàn),SPM 模塊可以學(xué)習(xí)預(yù)測(cè)顯著性分?jǐn)?shù),并對(duì)每個(gè)通道剪枝。SANP 會(huì)根據(jù)每個(gè)層和每個(gè)樣本決定對(duì)應(yīng)的剪枝策略。
論文鏈接:https://arxiv.org/pdf/1910.08906.pdf
根據(jù)下面的架構(gòu)圖,SPM 模塊嵌入在卷積網(wǎng)絡(luò)的每個(gè)層中。該模塊可以基于輸入特征去預(yù)測(cè)通道的顯著性分?jǐn)?shù),然后為每個(gè)通道生成對(duì)應(yīng)的剪枝決策。
對(duì)于剪枝決策為 0 的通道,則跳過卷積運(yùn)算,然后利用分類目標(biāo)和成本目標(biāo)聯(lián)合訓(xùn)練骨干網(wǎng)絡(luò)和 SPM 模塊。計(jì)算成本取決于每一層的剪枝決策。
下表展示了該方法的一些結(jié)果:
論文 6:Structured Pruning of Large Language Models (2019)
這篇論文提出的剪枝方法基于低秩分解和增強(qiáng)拉格朗日 L_0 范數(shù)正則化(augmented Lagrangian 10 norm regularization)的原理。L_0 正則化放寬了結(jié)構(gòu)化剪枝帶來(lái)的約束,而低秩分解則保留了矩陣的密集結(jié)構(gòu)。
論文鏈接:https://arxiv.org/pdf/1910.04732.pdf
正則化讓網(wǎng)絡(luò)去選擇待移除的權(quán)重。權(quán)重矩陣被分解為兩個(gè)較小的矩陣,然后設(shè)置這兩個(gè)矩陣之間的對(duì)角線掩碼(diagonal mask)。在訓(xùn)練過程中,使用 L_0 正則化對(duì)該掩碼執(zhí)行剪枝。增強(qiáng)拉格朗日方法用于控制模型的最終稀疏程度, 論文作者將該方法叫做 FLOP (Factorized L0 Pruning)。
論文使用的字符級(jí)語(yǔ)言模型用在 enwik8 數(shù)據(jù)集的實(shí)驗(yàn)中,該數(shù)據(jù)集包含選取自維基百科的 100M 數(shù)據(jù)。作者在 SRU 和 Transformer-XL 模型上評(píng)估了 FLOP 方法。下表展示了部分結(jié)果:
以上就是本次為大家介紹的幾種剪枝技術(shù),本文介紹的論文也有代碼實(shí)現(xiàn),大家可以親自測(cè)試。