點擊藍字
關註我們
關註並星標
從此不迷路
公眾號ID|計算機視覺研究院
學習群|掃碼在主頁獲取加入方式
論文地址:https://arxiv.org/pdf/2401.06426.pdf
計算機視覺研究院專欄
Column of Computer Vision Institute
PART/1
前言
深度學習模型在目標檢測的性能上取得了重大突破。然而,在傳統模型中,例如Faster R-CNN和YOLO,由於計算資源有限和功率預算緊張,這些網絡的規模使其難以部署在嵌入式移動設備上。
深度學習領域的加速發展極大地促進了目標檢測的發展,其在人臉檢測、自動駕駛、機器人視覺和視頻監控等方面的廣泛應用。隨著目標檢測的蓬勃發展,近年來提出了幾種深度卷積神經網絡模型,例如R-CNN、SSD和YOLO等。然而,隨著網絡變得越來越復雜,這些模型的規模不斷增加,這使得在現實生活中將這些模型部署到嵌入式設備上變得越來越困難。因此,開發一種高效快速的物體檢測模型以在不影響目標檢測質量的情況下減小參數大小至關重要。
PART/2
摘要總結
PART/3
動機
Network Pruning
-
模型體積大;
-
FLOPs(float-point operations,浮點操作);
-
耗能;
-
處理器架構和處理速度;
-
內存占用;
-
推理時延;
剪枝的不同分類:
-
根據網絡元素類型,可以分為神經元剪枝和連接剪枝;
-
根據剪枝前後網絡結構是否是改變,可以分為結構化剪枝和非結構化剪枝;
-
根據在推理階段是否有剪枝,可以分為靜態剪枝和動態剪枝;
結構化剪枝可以包括神經元剪枝和連接剪枝,但是是改變了剪枝前的網絡結構。非結構化剪枝並沒有改變網絡結構,而是將分支權重改為0,這樣權重為0的分支對整個網絡沒有影響,從而相當於減掉了該分支。如果觀察到在某些迭代權重為0的分支對本輪迭代作用很大(影響性能),可以動態恢復非結構化剪枝造成的為零權重,提供網絡性能。神經元剪枝會改變網絡結構,屬於結構化剪枝。連接剪枝,在權重設置為0並沒有改變網絡結構時屬於非結構化剪枝,在連接刪除改變網絡結構時屬於結構化剪枝。
既然網絡不是設計出來的,我們要搜,那麼怎麼搜網絡結構呢?理解這個問題,你就能了解NAS的最基本的思想。想象你是一個考試命題組的出題人,你要出高考題,那怎麼出題呢?首先這是高考,你肯定隻能出高中生學過的內容,所以需要框定一個出題的范圍,這便是搜索空間。確定了出題范圍,我們還需要知道到底怎麼出題,到底是出選擇題好呢,還是填空題好呢?這是出題的策略,對應到這個問題上,就是搜索策略。現在題也出完了,但是我們還需要知道這個考卷的題目出的好不好,一個好的高考試卷應該有一定的區分度!所以我們需要一個評判的標準去了解這個題目出的好不好,這個標準和可以是專傢評議,或者學生調研等等,也就是相當於我們需要給我們一個評價的指標。
圍繞搜索空間、搜索策略以及評價搜索的指標三個維度展開搜索最優的網絡,先確定在哪些模塊(卷積,池化等等)裡面搜索組合一個網絡,然後用什麼樣的方式組合我們的網絡,最後得出的網絡我們如何評價它是否好用。這便是NAS算法自動搜索的基本思想。
PART/4
新框架詳解
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
計算機視覺研究院
-
應用於園區人臉人體檢測、車輛車牌檢測識別、煙霧煙火檢測、抽煙等行為檢測
-
應用於景區溺水檢測、丟失兒童詢查、車輛違停檢測、垃圾滿溢檢測、煙火檢測、人流量統計等
-
應用於工廠中的入侵檢測、周界巡檢、工服檢測、產品缺陷檢測、產品計件統計、AGV自動搬運等
-
應用於林業畜牧業中的無人機實時檢測、牲畜計數、林業面積測量、枯黃枯死樹木檢測定位、煙霧煙火檢測、垃圾檢測等