自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

模型壓縮:CNN和Transformer通用,修剪后精度幾乎無(wú)損,速度提升40%

人工智能 新聞
隨著目標(biāo)檢測(cè)的蓬勃發(fā)展,近年來提出了幾種深度卷積神經(jīng)網(wǎng)絡(luò)模型,例如R-CNN、SSD和YOLO等。然而,隨著網(wǎng)絡(luò)變得越來越復(fù)雜,這些模型的規(guī)模不斷增加,這使得在現(xiàn)實(shí)生活中將這些模型部署到嵌入式設(shè)備上變得越來越困難。因此,開發(fā)一種高效快速的物體檢測(cè)模型以在不影響目標(biāo)檢測(cè)質(zhì)量的情況下減小參數(shù)大小至關(guān)重要。

本文經(jīng)計(jì)算機(jī)視覺研究院公眾號(hào)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。

PART/1 前言  

深度學(xué)習(xí)模型在目標(biāo)檢測(cè)的性能上取得了重大突破。然而,在傳統(tǒng)模型中,例如Faster R-CNN和YOLO,由于計(jì)算資源有限和功率預(yù)算緊張,這些網(wǎng)絡(luò)的規(guī)模使其難以部署在嵌入式移動(dòng)設(shè)備上。

圖片

深度學(xué)習(xí)領(lǐng)域的加速發(fā)展極大地促進(jìn)了目標(biāo)檢測(cè)的發(fā)展,其在人臉檢測(cè)、自動(dòng)駕駛、機(jī)器人視覺和視頻監(jiān)控等方面的廣泛應(yīng)用。隨著目標(biāo)檢測(cè)的蓬勃發(fā)展,近年來提出了幾種深度卷積神經(jīng)網(wǎng)絡(luò)模型,例如R-CNN、SSD和YOLO等。然而,隨著網(wǎng)絡(luò)變得越來越復(fù)雜,這些模型的規(guī)模不斷增加,這使得在現(xiàn)實(shí)生活中將這些模型部署到嵌入式設(shè)備上變得越來越困難。因此,開發(fā)一種高效快速的物體檢測(cè)模型以在不影響目標(biāo)檢測(cè)質(zhì)量的情況下減小參數(shù)大小至關(guān)重要。

PART/2 摘要總結(jié) 

今天我們分享的技術(shù),是通過減少網(wǎng)絡(luò)信道的傳統(tǒng)信道修剪方法難以有效地修剪具有深度卷積層和某些有效模塊(如流行的反向殘差塊)的有效CNN模型。由于存在一些歸一化層,通過減少網(wǎng)絡(luò)深度的先驗(yàn)深度修剪方法不適合于修剪一些有效的模型。此外,通過直接移除激活層來微調(diào)子網(wǎng)會(huì)破壞原始模型權(quán)重,阻礙修剪后的模型實(shí)現(xiàn)高性能。

為了解決這些問題,研究者提出了一種新的有效模型深度修剪方法。新方法為子網(wǎng)提出了一種新的塊修剪策略和漸進(jìn)訓(xùn)練方法。此外,將修剪方法擴(kuò)展到視覺Transformer模型。

圖片

最終實(shí)驗(yàn)結(jié)果表明,在各種修剪配置中,新方法始終優(yōu)于現(xiàn)有的深度修剪方法。將新方法應(yīng)用于ConvNeXtV1,獲得了三個(gè)修剪后的ConvNeXtV1模型,這些模型超過了大多數(shù)具有可比推理性能的SOTA有效模型。新方法還在視覺Transformer模型上實(shí)現(xiàn)了最先進(jìn)的修剪性能。

PART/3 動(dòng)機(jī)  

Network Pruning

神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺領(lǐng)域已被廣泛應(yīng)用,表現(xiàn)出非凡的能力。然而,復(fù)雜的網(wǎng)絡(luò)架構(gòu)對(duì)高效的實(shí)時(shí)部署提出了挑戰(zhàn),并需要大量的計(jì)算資源和能源成本。在端側(cè)和邊緣側(cè)部署網(wǎng)絡(luò)具體的挑戰(zhàn):

  • 模型體積大;
  • FLOPs(float-point operations,浮點(diǎn)操作);
  • 耗能;
  • 處理器架構(gòu)和處理速度;
  • 內(nèi)存占用;
  • 推理時(shí)延;

這些挑戰(zhàn)可以通過網(wǎng)絡(luò)壓縮等優(yōu)化來克服。網(wǎng)絡(luò)剪枝(Network Pruning)是網(wǎng)絡(luò)壓縮主要技術(shù)之一,是一種減小內(nèi)存大小和帶寬的重要技術(shù)。剪枝就是通過去除網(wǎng)絡(luò)中冗余的通道(channels),濾波器(filters),神經(jīng)元節(jié)點(diǎn)( neurons), 網(wǎng)絡(luò)層(layers)以得到一個(gè)更輕量級(jí)的網(wǎng)絡(luò),同時(shí)不影響性能。

剪枝的不同分類:

  • 根據(jù)網(wǎng)絡(luò)元素類型,可以分為神經(jīng)元剪枝和連接剪枝;
  • 根據(jù)剪枝前后網(wǎng)絡(luò)結(jié)構(gòu)是否是改變,可以分為結(jié)構(gòu)化剪枝和非結(jié)構(gòu)化剪枝;
  • 根據(jù)在推理階段是否有剪枝,可以分為靜態(tài)剪枝和動(dòng)態(tài)剪枝;

結(jié)構(gòu)化剪枝可以包括神經(jīng)元剪枝和連接剪枝,但是是改變了剪枝前的網(wǎng)絡(luò)結(jié)構(gòu)。非結(jié)構(gòu)化剪枝并沒有改變網(wǎng)絡(luò)結(jié)構(gòu),而是將分支權(quán)重改為0,這樣權(quán)重為0的分支對(duì)整個(gè)網(wǎng)絡(luò)沒有影響,從而相當(dāng)于減掉了該分支。如果觀察到在某些迭代權(quán)重為0的分支對(duì)本輪迭代作用很大(影響性能),可以動(dòng)態(tài)恢復(fù)非結(jié)構(gòu)化剪枝造成的為零權(quán)重,提供網(wǎng)絡(luò)性能。神經(jīng)元剪枝會(huì)改變網(wǎng)絡(luò)結(jié)構(gòu),屬于結(jié)構(gòu)化剪枝。連接剪枝,在權(quán)重設(shè)置為0并沒有改變網(wǎng)絡(luò)結(jié)構(gòu)時(shí)屬于非結(jié)構(gòu)化剪枝,在連接刪除改變網(wǎng)絡(luò)結(jié)構(gòu)時(shí)屬于結(jié)構(gòu)化剪枝。

Structural Reparameterization

在block內(nèi)不存在非線性激活函數(shù)的情況下,結(jié)構(gòu)重新參數(shù)化技術(shù)有助于將多個(gè)卷積層合并為單個(gè)卷積層。這種合并有效地減少了神經(jīng)網(wǎng)絡(luò)在推理過程中的內(nèi)存需求,從而加速了模型推理。RepVGG區(qū)分了訓(xùn)練和測(cè)試結(jié)構(gòu),使普通網(wǎng)絡(luò)能夠超越ResNet的性能。此外,DBB將多分支結(jié)構(gòu)合并為一個(gè)卷積,顯著地超過了傳統(tǒng)多分支單元的速度。

Neural Architecture Search (NAS)

既然網(wǎng)絡(luò)不是設(shè)計(jì)出來的,我們要搜,那么怎么搜網(wǎng)絡(luò)結(jié)構(gòu)呢?理解這個(gè)問題,你就能了解NAS的最基本的思想。想象你是一個(gè)考試命題組的出題人,你要出高考題,那怎么出題呢?首先這是高考,你肯定只能出高中生學(xué)過的內(nèi)容,所以需要框定一個(gè)出題的范圍,這便是搜索空間。確定了出題范圍,我們還需要知道到底怎么出題,到底是出選擇題好呢,還是填空題好呢?這是出題的策略,對(duì)應(yīng)到這個(gè)問題上,就是搜索策略?,F(xiàn)在題也出完了,但是我們還需要知道這個(gè)考卷的題目出的好不好,一個(gè)好的高考試卷應(yīng)該有一定的區(qū)分度!所以我們需要一個(gè)評(píng)判的標(biāo)準(zhǔn)去了解這個(gè)題目出的好不好,這個(gè)標(biāo)準(zhǔn)和可以是專家評(píng)議,或者學(xué)生調(diào)研等等,也就是相當(dāng)于我們需要給我們一個(gè)評(píng)價(jià)的指標(biāo)。

圍繞搜索空間、搜索策略以及評(píng)價(jià)搜索的指標(biāo)三個(gè)維度展開搜索最優(yōu)的網(wǎng)絡(luò),先確定在哪些模塊(卷積,池化等等)里面搜索組合一個(gè)網(wǎng)絡(luò),然后用什么樣的方式組合我們的網(wǎng)絡(luò),最后得出的網(wǎng)絡(luò)我們?nèi)绾卧u(píng)價(jià)它是否好用。這便是NAS算法自動(dòng)搜索的基本思想。

PART/新框架詳解  

深度修剪方法旨在通過提出新的具有重新參數(shù)化技術(shù)的塊修剪策略來減少模型深度,而不是直接省略塊。如下圖所示,塊修剪策略在塊合并中將復(fù)雜而緩慢的塊轉(zhuǎn)換為簡(jiǎn)單而快速的塊。對(duì)于塊,將激活層替換為標(biāo)識(shí)層,將LayerNorm(LN)或GroupNorm(GN)層替換為BatchNorm(BN)層,并在塊末尾插入帶有BatchNorm層的激活層,以創(chuàng)建重新參數(shù)化的條件。然后,重新參數(shù)化技術(shù)可以合并BatchNorm層、相鄰的卷積或全連接層,并跳過連接,如下圖所示:

圖片

Depth Pruner on CNN

將新方法應(yīng)用于CNN模型可以參考上圖所示的管道。應(yīng)該先找到基本塊,并參考上圖中的修剪塊來設(shè)計(jì)相應(yīng)的修剪塊。對(duì)于塊中的激活層,將其替換為標(biāo)識(shí)層。對(duì)于塊中不是BatchNorm層的規(guī)范化層,將其替換為BatchNorm圖層,否則無(wú)需執(zhí)行任何操作。

最后,將在塊的末尾插入一個(gè)帶有BatchNorm層的激活層。如果像ResNet34塊這樣的位置已經(jīng)存在激活層,則只需要在塊末尾的激活層之后插入BatchNorm層。修剪塊完成后,回顧超網(wǎng)訓(xùn)練、子網(wǎng)搜索、子網(wǎng)訓(xùn)練和子網(wǎng)合并過程。將獲得修剪后的CNN模型。對(duì)于普通的CNN模型,可以定義可以包括兩個(gè)或多個(gè)順序卷積層的塊。

Depth Pruner on Vision Transformer

研究者還將提出的深度修剪器應(yīng)用于Vision Transformer模型。Vision Transformer塊通常具有多頭自注意(MHSA)模塊和包括兩個(gè)全連接層的MLP模塊。特別是,利用DeiT作為展示修剪流程的案例。如上圖所示,為了構(gòu)建Supernet,在原始模型的LN和活化(GELU)層旁邊添加BN旁路,并在剩余添加操作后插入GELU和BN塊。經(jīng)過子網(wǎng)搜索和子網(wǎng)訓(xùn)練,獲得了子網(wǎng),其原始LN和修剪塊的GELU操作都被BN取代。添加殘余物后,連接GELU&BN塊。然后合并子網(wǎng)以獲得快速修剪的模型,如上圖所示。

PART/5 實(shí)驗(yàn)及可視化  

下表與一些常見的有效模型進(jìn)行了比較,因?yàn)镃onvNeXtV1沒有壓縮方法。在AMD平臺(tái)上使用表中較慢的網(wǎng)絡(luò)EfficientFormerV2-S2作為基準(zhǔn),測(cè)試所有網(wǎng)絡(luò)的速度。作者將模型分為不同 Level ,深度剪枝方法在不同 Level 上實(shí)現(xiàn)了可比速度下的更高精度:

圖片

在今天分享中,研究者為有效的CNN和Vision Transformer模型提供了一個(gè)統(tǒng)一的深度修剪器,以在深度維度上修剪模型。深度修剪器包括四個(gè)步驟,即超網(wǎng)訓(xùn)練、子網(wǎng)搜索、子網(wǎng)訓(xùn)練和子網(wǎng)合并。提出了一種新的塊修剪方法和漸進(jìn)訓(xùn)練策略,以更好地利用基線模型權(quán)重。在子網(wǎng)合并過程中,使用重新參數(shù)化技術(shù)使子網(wǎng)變得更淺、更快。將新方法應(yīng)用于幾個(gè)CNN模型和transformer模型。SOTA修剪性能證明了新方法的優(yōu)越性。未來,研究者們將在更多的Transformer模型和任務(wù)上探索新方法。

圖片

責(zé)任編輯:張燕妮 來源: 計(jì)算機(jī)視覺研究院
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)