HetConv--Heterogeneous-Kernel-Based-Convolutions-for-Deep-CNNs

when

  • CVPR 2019

what

  • 對於深度卷積神經網絡而言,準確度和計算成本往往難以得兼,研究界也一直在探索通過模型壓縮或設計新型高效架構來解決這一問題。印度理工學院坎普爾分校的一篇 CVPR 論文則給出了一個新的思路——使用異構的卷積過濾器;實驗表明這種方法能在保證準確度的同時顯著降低計算成本。

who (動機)

  • 卷積神經網絡(CNN)在視覺和自然語言處理領域都已經取得了卓越的表現。進一步提升性能的總體趨勢使得模型越來越複雜且越來越深。但是,使用更深度的網絡,通過提升模型複雜度來提升準確度並不是毫無代價的——計算成本(FLOPs)會大幅增長。因此,爲了降低 FLOPs 以讓模型更高效,研究者們已經提出了各種不同類型的卷積運算/卷積過濾器。
  • 已有的卷積過濾器大致可以分爲三類:
    • 1)深度方面的卷積過濾器,用於執行逐深度的卷積(DWC)[38];
    • 2)點方面的卷積過濾器,用於執行逐點卷積(PWC)[36];
    • 3)分組方面的卷積過濾器,用於執行逐分組卷積(GWC)[19]。
  • 近來的大多數架構都使用了這些卷積過濾器的組合來得到高效的模型。很多常見的模型也使用了這些卷積(比如 DWC、PWC 和 GWC)來探索可以降低 FLOPs 的新架構。但是,設計一種新架構需要大量研究工作才能找到最優的過濾器組合,進而使得 FLOPs 最小。
  • 另一種提升模型效率的常用方法是壓縮模型。模型壓縮大致可以分爲三類:連接剪枝 [6]、過濾器剪枝 [24, 11, 21, 10, 32, 31, 33] 和量化 [6, 27]。
    • 過濾器剪枝的思想是將模型中貢獻最小的過濾器剪枝掉,在移除這個過濾器/連接之後,模型通常還會得到微調以維持其性能。在給模型剪枝時,我們需要一個預訓練模型(可能需要計算成本很高的訓練作爲預處理步驟),然後我們再丟棄貢獻最小的過濾器。因此這是一個成本很高且很困難的過程。因此,比起剪枝,使用高效的卷積過濾器或卷積運算來設計高效的架構纔是更常用的方法。這不需要昂貴的訓練,然後在訓練後進行剪枝,因爲訓練是從頭開始高效完成的。
  • 使用高效的卷積過濾器會有兩種不同的目標。
    • 一類研究的重心是設計 FLOPs 最小的架構,同時會在準確度上妥協。這些研究的目標是爲物聯網/低端設備開發模型。這類模型有準確度較低的問題,因此必須搜索最佳可能的模型來實現準確度和 FLOPs 之間的平衡。因此這類模型在 FLOPs 和準確度之間會有所權衡。
    • 另一類研究則專注於在保證模型的 FLOPs 與原架構相同的同時提升準確度。Inception [35]、RexNetXt [40] 和 Xception [2] 等近期架構就屬於這一類。他們的目標是使用高效的卷積過濾器設計一種更加複雜的模型,同時保持其 FLOPs 與基礎模型一樣。通常可以預期更復雜的模型能學習到更好的特徵,從而得到更優的準確度。但是,這類模型的重點不是設計一種新架構,而主要是在標準的基礎架構中使用已有的高效過濾器。因此這些工作會保持層的數量與架構和基礎模型一樣,再在每層上添加過濾器以使得 FLOPs 不增大。
  • 不同於這兩類方法,我們的方法主要側重於通過設計新的卷積核(kernel)來降低給定模型/架構的 FLOPs,同時無損準確度。通過實驗我們發現我們提出的方法的 FLOPs 比當前最佳的剪枝方法顯著更低,同時還能維持基礎模型/架構的準確度。而該剪枝方法則成本高昂,在實現 FLOPs 壓縮時會導致準確度顯著下降。
  • 在我們提出的方法中,我們選擇了一種不同的策略來提升已有模型的效率,同時不犧牲其準確度。架構搜索方法需要數年的研究才能得到一種最優化的架構。因此,我們沒有去設計一種新的高效架構,而是設計了一種高效的卷積運算(卷積過濾器),並可直接用在任意已有的標準架構中來降低 FLOPs。爲了實現這一目標,我們提出了一種新型的卷積——異構卷積(HetConv)。

where

創新點

  • 文章提出的“Heterogeneous Convolution”,顧名思義,就是卷積核的尺寸大小不一。比如在有256個通道的卷積核中,一部分kernel size爲1,另一部分kernel size爲3。
  • HetConv帶來的好處是可以無縫替換VGG、ResNet、MobileNet等結構的卷積形式,這種新的卷積形式,可以向標準卷積一樣,從新開始訓練,得到比pruning更好的性能效果。文章還指出,HetConv與標準卷積一樣,實現latency zero。

v2-e7b98450b01cadb302047717410b443f_hd

貢獻

  • 我們設計了一種高效的異構卷積過濾器,可用在任何已有架構中,能在不犧牲準確度的同時提升這些架構的效率(將 FLOPs 降低 3 到 8 倍)。

  • 我們提出的 HetConv 過濾器是按零延遲的方式設計的。因此,從輸入到輸出的延遲可忽略不計。

how

  • HetConvolution的方式很簡單,就是將一部分卷積核尺寸設置爲K,另一部分設置爲1。更直觀的可以看下圖。

v2-e77782009aa2b3b90de7bd4d7ff16f3d_hd

1. 網絡結構

image-20190526153456594

1.2 第L層的網絡

image-20190526153543592

2. 計算量的分析:

**標準卷積】**計算量: FL_S=D_o \times D_o \times M\times N \times K \times K\rightarrow(1)

其中 D_o 是卷積輸出特徵圖的尺寸,M是輸入通道數,N是輸出通道數,K是卷積核尺寸。

**HetConvolution:**假設輸入通道數爲M,有比例爲P的卷積核尺寸爲K,這樣的kernel數爲 \frac{M}{p} ,其他都是1 \times 1大小,這樣的kernel數爲 (1-\frac{1}{P})\cdot M

那麼 K \times K 卷積的計算量爲:

FL_K=(D_o \times D_o \times M \times N \times K \times K)/P

1 \times 1 卷積的計算量爲:

FL_1=(D_o \times D_o \times N)\times (1-\frac{1}{P}) \times M

因此總的計算量爲:

FL_{HC} = FL_K + FL_1\rightarrow(2)

HetConvolution與標準卷積的計算量之比:

R_{HetConv} = \frac{FL_k+FL_1}{FL_S} = \frac{1}{P}+\frac{1-\frac{1}{p}}{K^2}\rightarrow(3)

當P=1時,HetConv變爲標準卷積,計算量之比爲1。

【DW+PW】計算量: FL_{MobNet} = D_o \times D_o \times M \times K \times K + D_o \times D_o \times M \times N\rightarrow(4)(原文有誤)

DW+PW與標準卷積的計算量之比:

R_{MobNet} = \frac{FL_{MobNet}}{FL_S} = \frac{D_o \times D_o \times M \times K \times K + D_o \times D_o \times M \times N}{D_o \times D_o \times M\times N \times K \times K}=\frac{1}{N}+\frac{1}{K^2}\rightarrow(5)

由公式(3)可知,增大P,HetConv變爲標準卷積,控制P的大小,可以控制accuracy和FLOPs。

極端情況下,P=M的時候,公式(3)和(5):

\frac{1}{M}+\frac{1-\frac{1}{M}}{K^2} <\frac{1}{M}+\frac{1}{K^2}\rightarrow(6)

因此,MobileNet比HetConvolution計算量更大。

GW+PW】計算量: FL_G =(D_o \times D_o \times M \times N \times K \times K)/G+ D_o \times D_o \times M \times N \rightarrow(7)

與標準卷積的計算量之比:

R_{Group} = \frac{FL_G}{FL_S} = \frac{1}{G} + \frac{1}{K^2} \rightarrow(8)

由公式(3)和(8)可知,P=G的時候:

\frac{1}{P}+\frac{1-\frac{1}{p}}{K^2} < \frac{1}{P} + \frac{1}{K^2}\rightarrow(9)

HetConv的計算量比GW+PW更少。

3. 爲什麼保持 3x3的核

  1. ensure that the filter does cover the spatial correlation on some channels
  2. need not to have the same spatial correlation on all channels.

how much

作者選取了VGG、ResNet、MobileNet等網絡,通過在CIFAR-10、ImageNet數據集上的實驗驗證HetConv的有效性。

image-20190525160451204在這裏插入圖片描述

不同p值的影響

image-20190526153807277

why (爲什麼好)

  • 文章提出了一種新的卷積方式,通過計算FLOPs和實驗證明,HetConv可以在更少計算量的上面取得更高的精度,文章也和model conpression進行了對比,從實驗結果來看,效果也挺明顯。HetConv可以和現有的網絡結構結合,操作簡單方便。

    對於HeConv的實用性方面可能還需要時間來證明,畢竟理論計算量和實際情況還是有些差距,另外作者沒有在detection、segmentation任務做實驗,但從分類任務來說,缺少一定的可信度。希望儘快有開源實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章