0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)集,網(wǎng)絡架構和剪枝方法

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-10-23 09:15 ? 次閱讀

模型剪枝被認為是一種有效的模型壓縮方法。然而,剪枝方法真的有文獻中聲稱的那么有效嗎?最近UC Berkeley、清華大學的研究人員提交給ICLR 2019的論文《重新思考剪枝》質(zhì)疑了六種剪枝方法,引起關注。

網(wǎng)絡剪枝(Network Pruning)是常用的模型壓縮方法之一,被廣泛用于降低深度模型的繁重計算量。

一個典型的剪枝算法通常有三個階段,即訓練(大型模型),剪枝和微調(diào)。在剪枝過程中,根據(jù)一定的標準,對冗余權重進行修剪并保留重要權重,以最大限度地保持精確性。

剪枝通常能大幅減少參數(shù)數(shù)量,壓縮空間,從而降低計算量。

然而,剪枝方法真的有它們聲稱的那么有效嗎?

最近一篇提交給ICLR 2019的論文似乎與最近所有network pruning相關的論文結果相矛盾,這篇論文質(zhì)疑了幾個常用的模型剪枝方法的結果,包括韓松(Song Han)獲得ICLR2016最佳論文的“Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding”。

這篇論文迅速引起關注,有人認為它甚至可能改變我們在工業(yè)中訓練和部署模型的workflow。論文作者來自UC Berkeley和清華大學,他們在OpenReview上與被他們質(zhì)疑的模型作者有一些有意思的反饋,感興趣的讀者可以去看看。地址:

https://openreview.net/forum?id=rJlnB3C5Ym

論文地址:

https://arxiv.org/pdf/1810.05270.pdf

在這篇論文里,作者發(fā)現(xiàn)了幾個與普遍觀念相矛盾的的觀察。他們檢查了6種最先進的剪枝算法,發(fā)現(xiàn)對剪枝后的模型進行fine-tuning,只比使用隨機初始化權重訓練的網(wǎng)絡的性能好一點點,甚至性能更差。

作者說:“對于采用預定義目標網(wǎng)絡架構的剪枝算法,可以擺脫整個pipeline并直接從頭開始訓練目標網(wǎng)絡。我們的觀察結果對于具有多種網(wǎng)絡架構,數(shù)據(jù)集和任務的各種剪枝算法是一致的?!?/p>

作者總結認為,這一發(fā)現(xiàn)有幾個意義:

1)訓練一個大型、over-parameterized的模型對于最終得到一個efficient的小模型不是必需的;

2)為了得到剪枝后的小模型,求取大模型的“important” weights不一定有用;

3)剪枝得到的結構本身,而不是一組“important” weights,是導致最終模型效果提升的原因。這表明一些剪枝算法可以被視為執(zhí)行了“網(wǎng)絡結構搜索”(network architecture search)。

推翻網(wǎng)絡剪枝背后的兩個共同信念

過度參數(shù)化(over-parameterization)是深度神經(jīng)網(wǎng)絡的一個普遍屬性,這會導致高計算成本和高內(nèi)存占用。作為一種補救措施,網(wǎng)絡剪枝(network pruning)已被證實是一種有效的改進技術,可以在計算預算有限的情況下提高深度網(wǎng)絡的效率。

網(wǎng)絡剪枝的過程一般包括三個階段:1)訓練一個大型,過度參數(shù)化的模型,2)根據(jù)特定標準修剪訓練好的大模型,以及3)微調(diào)(fine-tune)剪枝后的模型以重新獲得丟失的性能。

網(wǎng)絡剪枝的三個階段

通常,這種剪枝程序背后有兩個共同的信念。

首先,人們認為從訓練一個大型的、過度參數(shù)化的網(wǎng)絡開始是很重要的,因為它提供了一個高性能的模型,從中可以安全地刪除一組冗余參數(shù)而不會顯著損害準確性。因此,這通常被認為是比直接從頭開始訓練較小的網(wǎng)絡更好的方法,也是一種常用的baseline方法。

其次,修剪后得到的結構及其相關權重被認為是獲得最終的有效模型所必需的。

因此,大多數(shù)現(xiàn)有的剪枝技術選擇fine-tune剪枝模型,而不是從頭開始訓練。剪枝后保留的權重通常被認為是關鍵的,因此如何準確地選擇重要權重集是一個非常活躍的研究課題。

在這項工作中,我們發(fā)現(xiàn)上面提到的兩種信念都不一定正確。

基于對具有多個網(wǎng)絡架構的多個數(shù)據(jù)集的最新剪枝算法的經(jīng)驗評估,我們得出了兩個令人驚訝的觀察。

圖2:預定義和非預定義目標架構的區(qū)別

首先,對于具有預定義目標網(wǎng)絡架構的剪枝算法(圖2),從隨機初始化開始直接訓練小型目標模型可以實現(xiàn)與剪枝方法獲得的模型相同(甚至更好)的性能。在這種情況下,不需要從大型模型開始,而是可以直接從頭開始訓練目標模型。

其次,對于沒有預定義目標網(wǎng)絡的剪枝算法,從頭開始訓練剪枝模型也可以實現(xiàn)與fine-tune相當或甚至更好的性能。這一觀察表明,對于這些剪枝算法,重要的是獲得的模型架構,而不是保留的權重,盡管找到目標結構需要訓練大型模型。

我們的結果主張重新思考現(xiàn)有的網(wǎng)絡剪枝算法。似乎在第一階段的訓練期間的過度參數(shù)化并不像以前認為的那樣有益。此外,從大型模型繼承權重不一定是最優(yōu)的,并且可能將修剪后的模型陷入糟糕的局部最小值,即使權重被剪枝標準視為“重要”。

相反,我們的結果表明,自動剪枝算法的價值在于識別有效的結構和執(zhí)行隱式架構搜索(implicit architecture search),而不是選擇“important”權重。我們通過精心設計的實驗驗證了這一假設,并展示了剪枝模型中的模式可以為有效的模型架構提供設計指導。

從頭開始訓練小模型的方法

本節(jié)描述了從頭開始訓練小型目標模型的方法。

目標剪枝架構(Target Pruned Architectures)

我們首先將網(wǎng)絡剪枝方法分為兩類。在pruning pipeline中,目標剪枝模型的架構可以由人(即預定義的)或剪枝算法(即自動的)來確定(見圖2)。

數(shù)據(jù)集,網(wǎng)絡架構和剪枝方法

在network pruning 的相關文獻中,CIFAR-10,CIFAR-100和ImageNet數(shù)據(jù)集是事實上的基準,而VGG,ResNet和DenseNet是常見的網(wǎng)絡架構。

我們評估了三種預定義目標架構的剪枝方法:Li et al. (2017), Luo et al. (2017), He et al. (2017b),以及評估了三種自動發(fā)現(xiàn)目標模型的剪枝方法Liu et al. (2017), Huang & Wang (2018), Han et al. (2015)。

訓練預算

一個關鍵問題是,我們應該花多長時間從頭開始訓練這個剪枝后的小模型?用與訓練大型模型同樣的epoch數(shù)量來訓練可能是不公平的,因為小模型在一個epoch中需要的計算量要少得多。

在我們的實驗中,我們使用Scratch-E表示訓練相同epoch的小剪枝模型,用Scratch-B表示訓練相同數(shù)量的計算預算。

實現(xiàn)(Implementation)

為了使我們的設置盡可能接近原始論文,我們使用了以下協(xié)議:

1)如果以前的剪枝方法的訓練設置是公開的,如Liu et al.(2017)和Huang & Wang(2018),就采用原始實現(xiàn);

2)對于更簡單的剪枝方法,如Li et al.(2017)和Han et al.(2015),我們重新實現(xiàn)了剪枝方法,得到了與原論文相似的結果;

3)其余兩種方法(Luo et al., 2017; He et al., 2017b),剪枝后的模型是公開的,但是沒有訓練設置,因此我們選擇從頭訓練目標模型。

結果和訓練模型的代碼可以在這里中找到:

https://github.com/Eric-mingjie/rethinking-networks-pruning

實驗與結果

在本節(jié)中,我們將展示實驗結果,這些實驗結果比較了從頭開始的訓練剪枝模型和基于繼承權重進行微調(diào),以及預定義和自動發(fā)現(xiàn)的目標體系結構的方法。此外還包括從圖像分類到物體檢測的轉(zhuǎn)移學習實驗。

表1:基于L1范數(shù)的通道剪枝的結果(準確度)?!凹糁δP汀笔菑拇笮湍P椭羞M行剪枝的模型。原模型和剪枝模型的配置均來自原始論文。

表2:ThiNet的結果(準確度)?!癡GG-GAP”和“ResNet50-30%”等指ThiNet中配置的剪枝模型。為了適應本文的方法和原論文之間不同框架的影響,我們比較了相對于未剪枝的大型模型的相對精度下降。例如,對于剪枝后的模型VGG-Conv為-1.23,即表示相對左側的71.03的精度下降,后者為原始論文中未剪枝的大型VGG-16的報告精度

表3:基于回歸的特征重建結果(準確度)。與表2類似,我們比較了相對于未剪枝的大型模型的相對精度下降。

表4:網(wǎng)絡Slimming的結果(準確度)“剪枝比”表示在整個網(wǎng)絡中,剪枝通道所占的總百分比。每種模型使用與原論文的相同比率。

表5:使用稀疏結構選擇的殘余塊剪枝結果(準確度)。在原始論文中不需要微調(diào),因此存在一個“剪枝”列,而不是“微調(diào)”列

表6:非結構化剪枝的結果(準確度)“剪枝比”表示在所有卷積權重集中,進行剪枝的參數(shù)的比例。

表7:用于檢測任務的剪枝結果(mAP)。Prune-C指的是剪枝分類預訓練的權重,Prune-D指的是在權重轉(zhuǎn)移到檢測任務后剪枝。 Scratch-E / B表示從頭開始訓練分類剪枝模型,移至檢測任務。

總之,對于面向預定義目標架構的剪枝方法而言,使用與大型模型(Scratch-E)數(shù)量相同的迭代次數(shù)來訓練小模型,通常就足以實現(xiàn)與三步輸出的模型相同的精度。再加上目標架構是預定義的,在實際應用中,人們往往更愿意直接從頭開始訓練小模型。

此外,如果具備與大型模型相當?shù)挠嬎泐A算(算力)時,從頭訓練的模型的性能甚至可能微調(diào)模型更高。

討論與結論

我們建議,未來應采用相對高性能的基線方法來評估剪枝方法,尤其是在預定義目標的體系結構剪枝。除了高精度之外,從頭開始訓練預定義的目標模型與傳統(tǒng)的網(wǎng)絡剪枝相比具有以下優(yōu)勢:

? 由于模型較小,可以使用更少的GPU資源來訓練模型,而且可能比訓練原始大型模型速度更快。

? 無需實施剪枝的標準和流程,這些流程有時需要逐層微調(diào)和/或需要針對不同的網(wǎng)絡架構進行定制。

? 可以避免調(diào)整剪枝過程中涉及的其他超參數(shù)。

我們的結果可利用剪枝方法來尋找高效的架構或稀疏模式,可以通過自動剪枝方法來完成。此外,在有些情況下,傳統(tǒng)的剪枝方法比從頭開始訓練要快得多,比如:

?已經(jīng)提供預訓練的大型模型,且訓練預算很少。

? 需要獲得不同大小的多個模型,在這種情況下,可以訓練大型模型,然后以不同的比例剪枝。

總之,我們的實驗表明,從頭開始訓練小修剪模型幾乎總能達到與典型的“訓練-剪枝-微調(diào)”流程獲得的模型相當或更高的精度。這改變了我們對過度參數(shù)化的必要性的理解,進一步證明了自動剪枝算法的價值,可以用來尋找高效的架構,并為架構設計提供指導。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3032

    瀏覽量

    48374
  • 數(shù)據(jù)集

    關注

    4

    文章

    1197

    瀏覽量

    24538

原文標題:清華&伯克利ICLR論文:重新思考6大剪枝方法

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    解讀CPU的組成指令架構

    文章目錄腦圖視頻解讀CPU的組成指令架構: 復雜指令 (CISC) VS 精簡指令 (RISC)X86架構ARM
    發(fā)表于 07-30 06:20

    AVR架構下的匯編語言常用指令

    下面是AVR架構下的匯編語言常用指令,英語原版看起來會更容易理解,如下所示:上面是常用的指令,全部指令的使用方法可以在之類找到:
    發(fā)表于 11-23 09:10

    精簡指令架構RISC與復雜指令架構CISC有何區(qū)別

    精簡指令架構RISC是什么?復雜指令架構CISC又是什么?精簡指令架構RISC與復雜指令
    發(fā)表于 12-23 10:02

    基于Vague網(wǎng)絡安全態(tài)勢評估方法

    針對網(wǎng)絡安全態(tài)勢評估(NSSA)問題,提出一種基于Vague的評估方法。首先,綜合攻防雙方對安全態(tài)勢的影響構建評估指標體系并給出指標權重的計算方法;然后,建立基于Vague
    發(fā)表于 02-26 15:54 ?9次下載

    基于PC架構網(wǎng)絡時延測量方法

    本內(nèi)容提供了基于PC架構網(wǎng)絡時延測量方法
    發(fā)表于 06-29 16:22 ?28次下載
    基于PC<b class='flag-5'>架構</b>的<b class='flag-5'>網(wǎng)絡</b>時延測量<b class='flag-5'>方法</b>

    一種改進的神經(jīng)網(wǎng)絡相關性剪枝算法

    神經(jīng)網(wǎng)絡剪枝有利于網(wǎng)絡結構的簡化,而作為剪枝算法中的比較重要的相關性剪枝算法,在計算了隱層節(jié)點輸出的線性相關性和方差后,對于如何根據(jù)線性相
    發(fā)表于 05-14 11:54 ?0次下載

    基于影響度剪枝的ELM分類算法

    個數(shù),定義單個隱節(jié)點相對于整個網(wǎng)絡學習的影響度,根據(jù)影響度判斷隱節(jié)點的重要性并將其排序,采用與ELM網(wǎng)絡規(guī)模相匹配的剪枝步長刪除冗余節(jié)點,最后更新隱含層與輸入層和輸出層連接的權值向量。通過對多個UCI機器學習
    發(fā)表于 12-01 17:21 ?0次下載

    如何使用剪枝優(yōu)化與索引求交改進Eclat算法

    待連接的項集數(shù)量以減少項連接操作,同時利用先驗性質(zhì)對連接后的項進行后剪枝處理;接著提出了一種基于事務索引的布爾數(shù)組求交方法,即通過將事務標識作為索引來設置并檢索布爾數(shù)組,以獲得項
    發(fā)表于 12-19 11:44 ?2次下載
    如何使用<b class='flag-5'>剪枝</b>優(yōu)化與索引求交改進Eclat算法

    基于深度神經(jīng)網(wǎng)絡的結構化剪枝算法

      現(xiàn)有結構化剪枝算法通常運用深度神經(jīng)網(wǎng)絡(DNN)的一階或者零階信息對通道進行剪枝,為利用二階信息加快DNN網(wǎng)絡模型收斂速度,借鑒HAWQ算法思想提岀一種新的結構化
    發(fā)表于 03-10 16:41 ?2次下載
    基于深度神經(jīng)<b class='flag-5'>網(wǎng)絡</b>的結構化<b class='flag-5'>剪枝</b>算法

    嵌入式設備的YOLO網(wǎng)絡剪枝算法

    為保證YoLO網(wǎng)絡在嵌入式設備上正常運行,需采用剪枝算法精簡濾波器以減小網(wǎng)絡存儲空間和計算量,而現(xiàn)有剪枝算法耗時較長且剪枝精度較低。提出一種
    發(fā)表于 03-11 16:52 ?4次下載
    嵌入式設備的YOLO<b class='flag-5'>網(wǎng)絡</b><b class='flag-5'>剪枝</b>算法

    神經(jīng)網(wǎng)絡模型剪枝后泛化能力的驗證方案

    針對神經(jīng)網(wǎng)絡模型在剪枝操作中υr? opout率下調(diào)造成的過擬合冋題,提岀一種剪枝模型泛化能力的驗證方法。硏究人為遮擋數(shù)據(jù)
    發(fā)表于 05-25 14:48 ?4次下載

    基于LZW編碼的卷積神經(jīng)網(wǎng)絡壓縮方法綜述

    針對卷積神經(jīng)網(wǎng)絡(CNN)因參數(shù)量大難以移植到嵌入式平臺的問題,提出基編碼的CNN壓縮方法。通過浮點轉(zhuǎn)定點和剪枝2種方法來壓縮模型容量。對權值進行k- means聚類量化,并在此基礎上
    發(fā)表于 06-11 11:31 ?18次下載

    如何搭建VGG網(wǎng)絡實現(xiàn)Mnist數(shù)據(jù)的圖像分類

    如何搭建VGG網(wǎng)絡,實現(xiàn)Mnist數(shù)據(jù)的圖像分類? 2 方法 步驟:
    的頭像 發(fā)表于 02-14 15:00 ?623次閱讀

    DepGraph:任意架構的結構化剪枝,CNN、Transformer、GNN等都適用!

    結構化剪枝是一種重要的模型壓縮算法,它通過移除神經(jīng)網(wǎng)絡中冗余的結構來減少參數(shù)量,從而降低模型推理的時間、空間代價。在過去幾年中,結構化剪枝技術已經(jīng)被廣泛應用于各種神經(jīng)網(wǎng)絡的加速,覆蓋了
    的頭像 發(fā)表于 03-29 11:23 ?3739次閱讀

    CVPR 2023:基于可恢復性度量的少樣本剪枝方法

    在少樣本壓縮場景中,塊級(block-level)剪枝在本質(zhì)上優(yōu)于濾波器級(filter-level)。在相同的延遲下,塊級剪枝可以保留更多原始模型的容量,其準確性更容易通過微小的訓練恢復。如圖 1 所示,丟棄塊在延遲-準確性
    的頭像 發(fā)表于 05-10 14:56 ?959次閱讀
    CVPR 2023:基于可恢復性度量的少樣本<b class='flag-5'>剪枝</b><b class='flag-5'>方法</b>