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

2024年2月6日 23点热度 0人点赞

點擊藍字

關註我們

關註並星標

從此不迷路

計算機視覺研究院

公眾號ID計算機視覺研究院

學習群掃碼在主頁獲取加入方式

論文地址:https://arxiv.org/pdf/2401.06426.pdf

計算機視覺研究院專欄

Column of Computer Vision Institute

隨著目標檢測的蓬勃發展,近年來提出了幾種深度卷積神經網絡模型,例如R-CNN、SSD和YOLO等。然而,隨著網絡變得越來越復雜,這些模型的規模不斷增加,這使得在現實生活中將這些模型部署到嵌入式設備上變得越來越困難。因此,開發一種高效快速的物體檢測模型以在不影響目標檢測質量的情況下減小參數大小至關重要。

PART/1

前言

深度學習模型在目標檢測的性能上取得了重大突破。然而,在傳統模型中,例如Faster R-CNN和YOLO,由於計算資源有限和功率預算緊張,這些網絡的規模使其難以部署在嵌入式移動設備上。

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

PART/2

摘要總結

今天我們分享的技術,是通過減少網絡信道的傳統信道修剪方法難以有效地修剪具有深度卷積層和某些有效模塊(如流行的反向殘差塊)的有效CNN模型。由於存在一些歸一化層,通過減少網絡深度的先驗深度修剪方法不適合於修剪一些有效的模型。此外,通過直接移除激活層來微調子網會破壞原始模型權重,阻礙修剪後的模型實現高性能。
為了解決這些問題,研究者提出了一種新的有效模型深度修剪方法。新方法為子網提出了一種新的塊修剪策略和漸進訓練方法。此外,將修剪方法擴展到視覺Transformer模型。
最終實驗結果表明,在各種修剪配置中,新方法始終優於現有的深度修剪方法。將新方法應用於ConvNeXtV1,獲得了三個修剪後的ConvNeXtV1模型,這些模型超過了大多數具有可比推理性能的SOTA有效模型。新方法還在視覺Transformer模型上實現了最先進的修剪性能。

PART/3

動機

Network Pruning

神經網絡在計算機視覺領域已被廣泛應用,表現出非凡的能力。然而,復雜的網絡架構對高效的實時部署提出了挑戰,並需要大量的計算資源和能源成本。在端側和邊緣側部署網絡具體的挑戰:
  • 模型體積大;

  • FLOPs(float-point operations,浮點操作);

  • 耗能;

  • 處理器架構和處理速度;

  • 內存占用;

  • 推理時延;

這些挑戰可以通過網絡壓縮等優化來克服。網絡剪枝(Network Pruning)是網絡壓縮主要技術之一,是一種減小內存大小和帶寬的重要技術。枝就是通過去除網絡中冗餘的通道(channels),濾波器(filters),神經元節點( neurons), 網絡層(layers)以得到一個更輕量級的網絡,同時不影響性能。

剪枝的不同分類:

  • 根據網絡元素類型,可以分為神經元剪枝和連接剪枝;

  • 根據剪枝前後網絡結構是否是改變,可以分為結構化剪枝和非結構化剪枝;

  • 根據在推理階段是否有剪枝,可以分為靜態剪枝和動態剪枝;

結構化剪枝可以包括神經元剪枝和連接剪枝,但是是改變了剪枝前的網絡結構。非結構化剪枝並沒有改變網絡結構,而是將分支權重改為0,這樣權重為0的分支對整個網絡沒有影響,從而相當於減掉了該分支。如果觀察到在某些迭代權重為0的分支對本輪迭代作用很大(影響性能),可以動態恢復非結構化剪枝造成的為零權重,提供網絡性能。神經元剪枝會改變網絡結構,屬於結構化剪枝。連接剪枝,在權重設置為0並沒有改變網絡結構時屬於非結構化剪枝,在連接刪除改變網絡結構時屬於結構化剪枝。

Structural Reparameterization
在block內不存在非線性激活函數的情況下,結構重新參數化技術有助於將多個卷積層合並為單個卷積層。這種合並有效地減少了神經網絡在推理過程中的內存需求,從而加速了模型推理。RepVGG區分了訓練和測試結構,使普通網絡能夠超越ResNet的性能。此外,DBB將多分支結構合並為一個卷積,顯著地超過了傳統多分支單元的速度。
Neural Architecture Search (NAS)

既然網絡不是設計出來的,我們要搜,那麼怎麼搜網絡結構呢?理解這個問題,你就能了解NAS的最基本的思想。想象你是一個考試命題組的出題人,你要出高考題,那怎麼出題呢?首先這是高考,你肯定隻能出高中生學過的內容,所以需要框定一個出題的范圍,這便是搜索空間。確定了出題范圍,我們還需要知道到底怎麼出題,到底是出選擇題好呢,還是填空題好呢?這是出題的策略,對應到這個問題上,就是搜索策略。現在題也出完了,但是我們還需要知道這個考卷的題目出的好不好,一個好的高考試卷應該有一定的區分度!所以我們需要一個評判的標準去了解這個題目出的好不好,這個標準和可以是專傢評議,或者學生調研等等,也就是相當於我們需要給我們一個評價的指標。

圍繞搜索空間、搜索策略以及評價搜索的指標三個維度展開搜索最優的網絡,先確定在哪些模塊(卷積,池化等等)裡面搜索組合一個網絡,然後用什麼樣的方式組合我們的網絡,最後得出的網絡我們如何評價它是否好用。這便是NAS算法自動搜索的基本思想。

PART/4

新框架詳解

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

Depth Pruner on CNN

將新方法應用於CNN模型可以參考上圖所示的管道。應該先找到基本塊,並參考上圖中的修剪塊來設計相應的修剪塊。對於塊中的激活層,將其替換為標識層。對於塊中不是BatchNorm層的規范化層,將其替換為BatchNorm圖層,否則無需執行任何操作。

最後,將在塊的末尾插入一個帶有BatchNorm層的激活層。如果像ResNet34塊這樣的位置已經存在激活層,則隻需要在塊末尾的激活層之後插入BatchNorm層。修剪塊完成後,回顧超網訓練、子網搜索、子網訓練和子網合並過程。將獲得修剪後的CNN模型。對於普通的CNN模型,可以定義可以包括兩個或多個順序卷積層的塊。

Depth Pruner on Vision Transformer

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

PART/5

實驗及可視化

下表與一些常見的有效模型進行了比較,因為ConvNeXtV1沒有壓縮方法。在AMD平臺上使用表中較慢的網絡EfficientFormerV2-S2作為基準,測試所有網絡的速度。作者將模型分為不同 Level ,深度剪枝方法在不同 Level 上實現了可比速度下的更高精度:

在今天分享中,研究者為有效的CNN和Vision Transformer模型提供了一個統一的深度修剪器,以在深度維度上修剪模型。深度修剪器包括四個步驟,即超網訓練、子網搜索、子網訓練和子網合並。提出了一種新的塊修剪方法和漸進訓練策略,以更好地利用基線模型權重。在子網合並過程中,使用重新參數化技術使子網變得更淺、更快。將新方法應用於幾個CNN模型和transformer模型。SOTA修剪性能證明了新方法的優越性。未來,研究者們將在更多的Transformer模型和任務上探索新方法。

END

轉載請聯系本公眾號獲得授權

計算機視覺研究院學習群等你加入!

ABOUT

計算機視覺研究院

計算機視覺研究院主要涉及深度學習領域,主要致力於目標檢測、目標跟蹤、圖像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的論文算法新框架,提供論文一鍵下載,並分享實戰項目。研究院主要著重”技術研究“和“實踐落地”。研究院會針對不同領域分享實踐過程,讓大傢真正體會擺脫理論的真實場景,培養愛動手編程愛動腦思考的習慣!

計算機視覺研究院主要涉及AI視覺領域大模型研究,致力於目標檢測、目標分類、圖像分割、OCR、模型量化、模型部署等方向。
  • 應用於園區人臉人體檢測、車輛車牌檢測識別、煙霧煙火檢測、抽煙等行為檢測

  • 應用於景區溺水檢測、丟失兒童詢查、車輛違停檢測、垃圾滿溢檢測、煙火檢測、人流量統計等

  • 應用於工廠中的入侵檢測、周界巡檢、工服檢測、產品缺陷檢測、產品計件統計、AGV自動搬運等

  • 應用於林業畜牧業中的無人機實時檢測、牲畜計數、林業面積測量、枯黃枯死樹木檢測定位、煙霧煙火檢測、垃圾檢測等

還有更多領域業務可落地,歡迎來咨詢!