結(jié)構(gòu)化剪枝綜述數(shù)據(jù)派THU關(guān)注共 1987字,需瀏覽 4分鐘 ·2021-11-24 03:44 來源:專知本文附論文,建議閱讀6分鐘本文為結(jié)構(gòu)化剪枝綜述。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)特別是深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks)在計算機視覺任務(wù)上發(fā)揮著愈發(fā)重要的作用。在一個神經(jīng)網(wǎng)絡(luò)模型中,通常 包含卷積層、匯合層、全連接層、非線形層等基本結(jié)構(gòu),通過這些基本結(jié)構(gòu)的堆疊,最 終形成我們所常用的深度神經(jīng)網(wǎng)絡(luò)。早在 1998 年,LeCun 等人使用少數(shù)幾個基本結(jié)構(gòu)組 成 5 層的 LeNet-5 網(wǎng)絡(luò)[1],并在 MNIST 數(shù)據(jù)集上得到了 98.9%的分類精度,但此時的深 度神經(jīng)網(wǎng)絡(luò)還相對簡單,并且只能用于簡單的任務(wù)上;在 2012 年的 ImageNet 圖像分類 競賽中,AlexNet[2]將深度提高到了 8 層,并且達到了遠(yuǎn)超傳統(tǒng)方法的結(jié)果;此后,VGG 團隊提出的 VGG-Net[3]進一步加深了網(wǎng)絡(luò),使網(wǎng)絡(luò)最高達到了 19 層。雖然增加網(wǎng)絡(luò)的 深度能夠帶來性能的提升,但也不能無限制的增加網(wǎng)絡(luò)深度,隨著網(wǎng)絡(luò)的加深,梯度消 失會愈發(fā)嚴(yán)重,并且模型會變得愈發(fā)難以訓(xùn)練。因此在 2016 年,He 等人提出 ResNet[4], 在模型中加入殘差結(jié)構(gòu),并一舉將網(wǎng)絡(luò)的深度提高到 152 層。至此,隨著深度學(xué)習(xí)的研 究逐步推進,神經(jīng)網(wǎng)絡(luò)可以變得更寬更深更復(fù)雜,與此同時帶來更好的表示能力和性能 表現(xiàn)。當(dāng)一些研究者將模型變得更大、更深時,另一些則考慮在保持模型精度的同時使模 型變得更小、更快,其中一類重要的方法為模型壓縮。模型壓縮大致上可以分為四類:模型量化、模型剪枝、低秩近似和知識蒸餾。通常來說我們用 32 位浮點數(shù)來保存模型,模型量化主要考慮用更小位數(shù)來保存模型 參數(shù),通常使用的有 16 位浮點數(shù)和 8 位整數(shù),其參數(shù)量和計算量都會相應(yīng)地隨著存儲位 數(shù)而成倍降低;更有甚者,將模型量化成二值網(wǎng)絡(luò)[5],三元權(quán)重[6]或者同或網(wǎng)絡(luò)[7]。例 如,經(jīng)過簡單量化之后的 MobileNetV1[8]僅僅只有 4-5MB,能夠輕松部署在各種移動平臺上。https://cs.nju.edu.cn/wujx/模型剪枝[9,10,11,12]主要分為結(jié)構(gòu)化剪枝和非結(jié)構(gòu)化剪枝,非結(jié)構(gòu)化剪枝去除不重 要的神經(jīng)元,相應(yīng)地,被剪除的神經(jīng)元和其他神經(jīng)元之間的連接在計算時會被忽略。由 于剪枝后的模型通常很稀疏,并且破壞了原有模型的結(jié)構(gòu),所以這類方法被稱為非結(jié)構(gòu) 化剪枝。非結(jié)構(gòu)化剪枝能極大降低模型的參數(shù)量和理論計算量,但是現(xiàn)有硬件架構(gòu)的計 算方式無法對其進行加速,所以在實際運行速度上得不到提升,需要設(shè)計特定的硬件才 可能加速。與非結(jié)構(gòu)化剪枝相對應(yīng)的是結(jié)構(gòu)化剪枝,結(jié)構(gòu)化剪枝通常以濾波器或者整個 網(wǎng)絡(luò)層為基本單位進行剪枝。一個濾波器被剪枝,那么其前一個特征圖和下一個特征圖 都會發(fā)生相應(yīng)的變化,但是模型的結(jié)構(gòu)卻沒有被破壞,仍然能夠通過 GPU 或其他硬件來 加速,因此這類方法被稱之為結(jié)構(gòu)化剪枝。低秩近似[13,14,15]將一個較大的卷積運算或者全連接運算替換成多個低維的運算。常用的低秩近似方法有 CP 分解法[13],Tucker 分解[14]和奇異值分解[15]。例如,一個 ?? × ??的全連接操作若能近似分解為?? × ??和?? × ??(其中?? ? ??, ??)那么這一層全連接 操作的計算量和參數(shù)量將被極大地縮減。知識蒸餾(Knowledge Distillation)[16]通過使用一個足夠冗余的教師模型,來將其 知識 “傳授”給緊湊的學(xué)生模型。在訓(xùn)練時同時使用教師模型的軟標(biāo)簽和真實標(biāo)記的硬 標(biāo)簽來共同訓(xùn)練學(xué)生模型,從而能夠使學(xué)生模型達到接近教師模型的性能,也因此能夠 降低達到目標(biāo)精度所需的計算量和模型大小。上述模型壓縮方法能配合使用,一個模型經(jīng)過結(jié)構(gòu)化剪枝之后,由于其結(jié)構(gòu)沒有發(fā) 生重要變化,所以能緊接著進行低秩近似以減少參數(shù)量和計算量,最后再通過參數(shù)量化 進一步減少參數(shù)量并加速。近些年來,隨著物聯(lián)網(wǎng)的發(fā)展,企業(yè)將深度學(xué)習(xí)模型部署在 嵌入式設(shè)備的需求在快速增長,而嵌入式設(shè)備計算能力有限,并且由于成本原因希望部 署的模型盡可能地小。模型壓縮的意義在于保證精度的同時盡可能減少計算量和參數(shù)量, 因此對于嵌入式設(shè)備的部署有切實的價值。模型壓縮包含很多內(nèi)容,這里我們將主要關(guān) 注剪枝算法中的結(jié)構(gòu)化剪枝。在本章的剩余部分,我們將首先介紹結(jié)構(gòu)化剪枝的一些基本方式,然后介紹一些經(jīng)典的和最新的結(jié)構(gòu)化剪枝算法,最后對結(jié)構(gòu)化剪枝的應(yīng)用和未 來發(fā)展進行總結(jié)和展望。 瀏覽 89點贊 評論 收藏 分享 手機掃一掃分享分享 舉報 評論圖片表情視頻評價全部評論推薦 ThiNet:模型通道結(jié)構(gòu)化剪枝GiantPandaCV0基于一階泰勒展開式的結(jié)構(gòu)化剪枝GiantPandaCV0結(jié)構(gòu)化思維不止dotNET0結(jié)構(gòu)化計算機組成結(jié)構(gòu)化計算機組成0結(jié)構(gòu)化計算機組成AndrewcS.Tanenbaum獲得過美國麻省理工學(xué)院的理學(xué)學(xué)士學(xué)位和加利福尼亞大學(xué)伯克利分校的結(jié)構(gòu)化查詢語言 結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言0TheBigDB結(jié)構(gòu)化數(shù)據(jù)庫TheBigDB 是一個非常松散的結(jié)構(gòu)化數(shù)據(jù)庫軟件。其 API 是基于 HTTP 的 GET 和 P什么是結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)?跟著阿笨一起玩NET0puppy-language結(jié)構(gòu)化腳本語言puppy是一種解釋型的結(jié)構(gòu)化腳本語言。puppy的語法十分簡單,關(guān)鍵字也較少(14個),適合非專業(yè)編程人員使用,譬如游戲開發(fā)過程中某些邏輯的編寫,或為應(yīng)用程序提供腳本支持,由用戶為軟件編寫各種擴展。點贊 評論 收藏 分享 手機掃一掃分享分享 舉報