CVPR 2019 | 用異構卷積訓練深度CNN:提升效率而不損準確度

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

選自arXiv,作者:Pravedra Singh等,機器之心編譯,參與:熊貓。

論文:https://arxiv.org/abs/1903.04120

摘要:我們提出了一種全新的深度學習架構,其中的卷積運算利用了異構核。相比於標準的卷積運算,我們提出的 HetConv(基於異構核的卷積)能在減少計算量(FLOPs)和參數數量的同時維持表徵的效率。爲了展現我們所提出的卷積的有效性,我們在 VGG [30] 和 ResNet [8] 等標準卷積神經網絡(CNN)上進行了廣泛的實驗並給出了實驗結果。我們發現,使用我們提出的 HetConv 過濾器替換了這些架構中的標準卷積過濾器之後,我們能在 FLOPs 方面實現 3 到 8 倍的速度提升,同時還能維持(有時候能提升)準確度。我們將我們提出的卷積與分組/深度方面的卷積進行了比較,結果表明它能在顯著提升準確度的同時將 FLOPs 降低更多。

引言

卷積神經網絡(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)。

根據卷積核的類型,這種卷積運算可以分成兩類:

  • 使用傳統卷積過濾器的同構卷積(這裏所指的傳統卷積包括標準卷積、逐分組卷積、逐深度卷積、逐點卷積)。同構卷積使用同構過濾器執行。同構過濾器是指該過濾器包含的所有卷積核都是同樣大小(比如在 3 × 3 × 256 CONV2D 過濾器中,所有 256 個核都是 3×3 大小)。
  • 使用異構卷積過濾器的異構卷積(HetConv)。異構過濾器是指該過濾器包含不同大小的卷積核(比如在某個 HetCOnv 過濾器中,256 核有的是 3×3 大小,其餘的是 1×1 大小)。

在深度 CNN 中使用異構過濾器能克服基於高效架構搜索和模型壓縮的已有方法的侷限。比如最近期的高效架構 MobileNet [12] 使用了逐深度和逐點卷積,其中用兩個卷積層替代了標準的卷積層,因此會有更多延遲(延遲 1)。有關延遲的更多詳情請參閱第 3.3 節和圖 4。但我們提出 HetConv 的延遲與原始架構一樣(延遲 0)。[12, 35, 36, 2] 的延遲均大於 0。

不同於模型壓縮方法存在準確度大幅下降的問題,我們的方法與 ResNet [8] 和 VGGNet [30] 等標準模型的當前最佳結果相比也具有很高的競爭力。不同於需要預訓練模型的剪枝方法,使用 HetConv,我們可以從頭開始訓練我們的模型,同時無損準確度。如果我們增大 FLOPs 剪枝的程度,剪枝方法還會造成準確度極大下降。相比於 FLOPs 剪枝方法,使用我們提出的 HetConv 過濾器能在 FLOPs 方面達到當前最佳水平。另外,剪枝過程的效率也很低,因爲在剪枝後還需要大量時間來進行訓練和微調。我們的方法具有很高的效率,並且從頭開始訓練時也能得到與原始模型相近的結果。

就我們所知,這是首個異構的卷積/過濾器。這種異構設計有助於提升已有架構的效率(降低 FLOPs),同時無損準確度。我們在 ResNet [8] 和 VGG-16 [30] 等不同架構上進行了廣泛的實驗——只是將它們的原始過濾器替換成了我們提出的過濾器。我們發現,無需犧牲這些模型的準確度,我們就能大幅降低 FLOPs(3 到 8 倍)。這樣的降低程度甚至比已有的剪枝方法還好很多。

我們的主要貢獻如下:

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

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

我們提出的方法

在本論文中,我們提出了一種包含異構卷積核(比如一些核的大小是 3×3,其餘的是 1×1)的全新過濾器/卷積(HetConv),可以在保證原始模型同等準確度的同時降低 FLOPs。圖 1 和圖 2 展示了標準過濾器與 HetConv 過濾器之間的差異。

圖 1:標準卷積過濾器(同構)和異構卷積過濾器(HetConv)之間的差異。其中 M 是指輸入深度(輸入通道的數量),P 是指 part(控制卷積過濾器中不同類型的核的數量)。在 M 個核中,M/P 個核的大小是 3×3,其餘的都是 1×1。

圖 2:我們提出的卷積過濾器(HetConv)與其它高效卷積過濾器的比較。我們的異構過濾器的延遲爲零,其它(GWC+PWC 或 DWC+PWC)則有一個單元的延遲。

圖 3:L 層處的卷積過濾器:我們提出的使用異構核的卷積過濾器(HetConv)。圖中可以看到,每個通道都由 3×3 和 1×1 大小的異構核構成。在標準卷積過濾器中用 1×1 核替代 3×3 核能夠在保持準確度的同時極大降低 FLOPs。一個特定層的過濾器排列成移位形式(即如果第一個過濾器從首個位置開始 3×3 核,則第二個過濾器從第二個位置開始 3×3 核,以此類推)。

圖 4:上圖比較了不同類型的卷積的延遲情況。

實驗和結果

爲了展現我們提出的 HetConv 過濾器的有效性,我們使用當前最佳的架構進行了廣泛的實驗。我們用我們提出的卷積過濾器替換了這些架構中的標準卷積過濾器。我們使用 ResNet-34、ResNet-50 和 VGG-16 架構在 ImageNet 上執行了三個大規模實驗,還使用 VGG-16、ResNet-56 和 MobileNet 架構在 CIFAR-10 上執行了三個規模較小的實驗。我們在所有實驗中都將 Squeeze-and-Excitation(SE)的縮減比的值設爲了 8。

表 1:不同設置的 VGG-16 在 CIFAR-10 上的詳細結果

表 2:在 CIFAR-10 數據集上,針對 VGG-16 架構的當前最佳模型壓縮方法與我們的模型的比較

表 3:在 CIFAR-10 上,針對 ResNet-56 架構的當前最佳模型壓縮方法與我們的不同設置的模型的詳細結果和對比

表 4:不同設置的 MobileNet 在 CIFAR-10 上的詳細結果

表 5: VGG-16 在 ImageNet 上的結果。與當前最佳的剪枝方法相比,我們的模型的準確度無損失,同時 FLOPs 也降低了很多。

表 6:ResNet-34 在 ImageNet 上的結果。與當前最佳的剪枝方法相比,我們的模型的準確度無損失,同時 FLOPs 降低了顯著更多。

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