即插即用新卷積:提高CNN性能、速度翻倍

近期,來自 Facebook AI、新加坡國立大學、奇虎 360 的研究人員聯合提出了一種新的卷積操做 (OctConv),用於替代現有的通用卷積。這款新卷積不只佔用更少的內存和計算,還有助於提升性能。git

卷積神經網絡(CNN)在不少計算機視覺任務中都取得了卓越的成就,然而高準確率的背後,倒是很高的冗餘度和不可忽視的計算開銷。github


圖 1. 現有的卷積操做(1x1 卷積)

對於一個卷積操做而言(圖 1),每一個位置都是由一個 D 維特徵向量 表示,而特徵提取,則是經過滑動卷積,對每一個位置分別處理獲得對應的特徵。網絡

可是,這種爲每一個位置都分別存儲一份特徵表達,並分別一一處理的策略明顯是不合理的。由於,對於圖像而言,相鄰位置每每描述的是同一個語義,從而共享一部分特徵。架構

圖 2. AlexNet 的第一層卷積核

與此同時,CNN 所學習到的卷積核,也並不是全是高頻卷積核,如 圖 2 所示。這意味着,一部分卷積專一於提取「低頻特徵」,而另外一部分則專一於提取「高頻特徵」。對於低頻卷積所對應的特徵圖而言,咱們也許只須要保留它的低頻信號便可,不必存儲在高分辨率下的特徵圖。app


圖 3. 本文的:
(a) 主要動機; (b,c) 新的特徵表達方式;
(d) OctConv

如圖 3 所示,本文提出將 特徵圖分爲兩組:低頻特徵(藍色)和 高頻特徵(橙紅),並將空間上變化較爲緩慢的「低頻特徵圖」存儲在低分辨率的張量中,共享相鄰位置間的特徵。而本文所提出的 OctConv 則是一種能夠直接做用在該特徵表達下的卷積操做。它包含每一個頻率自身狀態的更新(綠色箭頭),以及頻率間的信息交互(紅色箭頭)。性能

圖 4. OctConv 的設計細節

Octave Convolution(OctConv)的命名應該是受到了 SIFT 特徵的啓發。而 Octave 是八個音階的意思,音樂裏降 8 個音階表明頻率減半。本文經過一個 Octave 將 高頻 和 低頻 特徵隔離到不一樣的組中,並將低頻的分辨率減半。學習

研究人員指出 OctConv 能夠直接用於替代現有卷積,而且即插即用,無需調參,也不影響 CNN 的網絡結構以及模型大小。因爲 OctConv 專一於下降 CNN 空間維度上的冗餘,所以它與現有專一於網絡拓補結構設計,以及減小網絡特徵容易的方法是正交和互補的。ui

實驗代表,用 OctConv 替代普通卷積能夠穩定提升現有的 2D CNN 網絡(包括 ResNet、ResNeXt、DenseNet、MobileNet、SE-Net)提升其在 ImageNet 上的圖像識別的性能,此外也能夠穩定提升 3D CNN 網絡(C2D、 I3D)並在 Kinetics(行視頻動做識別數據集)上取得了更佳的性能。配備了 OctConv 的 Oct-ResNet-152 甚至能夠媲美當前最佳的自動搜索的網絡 (NAS, PNAS 等)。編碼

論文:Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolutionspa

在天然圖像中,信息以不一樣的頻率傳輸,其中較高頻率一般以細節進行編碼,而較低頻率一般以整體結構進行編碼。一樣地,一個卷積層的輸出特徵圖也可視爲不一樣頻率的信息混合。

在本文中,研究人員提出基於頻率對混合特徵圖進行分解,並設計了一種新的 Octave 卷積(OctConv)操做,以存儲和處理較低空間分辨率下空間變化「較慢」的特徵圖,從而下降內存和計算成本。

與現有多尺度方法不一樣,OctConv 是一種單1、通用和即插即用的卷積單元,能夠直接代替(普通)卷積,而無需對網絡架構進行任何調整。OctConv 與那些用於構建更優拓撲或者減小分組或深度卷積中通道冗餘的方法是正交和互補的。

實驗代表,經過用 OctConv 替代普通卷積,研究人員能夠持續提升圖像和視頻識別任務的準確率,同時下降內存和計算成本。一個配備有 OctConv 的 ResNet-152 可以以僅僅 22.2 GFLOP 在 ImageNet 上達到 82.9% 的 top-1 分類準確率。

方法

在本節中,研究人員首先介紹了用來下降特徵圖中空間冗餘的特徵表示,接着描述了直接做用於該表徵的 Octave 卷積(圖 4)。研究人員還討論了實現細節,展現瞭如何將 OctConv 融入分組和深度卷積架構。

圖 4. OctConv 的設計細節

表 1:
對於低頻特徵所使用的低頻所佔比例α的不一樣,所帶來的理論性能提高。
當α=0 時(即沒有低頻成分),OctConv 就會退化爲普通卷積。
注意,不管比例α選擇是多少,OctConv 的參數數量都是與常規卷機一致的(如圖 5 所示)。

圖 5. OctConv 的卷積核

圖 3:
採用卷積降採樣後的特徵圖,在進一步上採樣後,將致使總體向右下方漂移,影響特徵融合。

這裏,有一點頗有意思。研究人員指出,經過卷積降採樣會致使特徵圖沒法準確對齊。並推薦使用池化操做來進行降採樣。

實驗評估

在本節中,研究人員驗證了提出的 Octave 卷積對於 2D 和 3D 網絡的效能和效率。研究人員首先展現了 ImageNet 上圖像分類的控制變量研究,而後將其與當前最優的方法進行了比較。以後,研究人員使用 Kinetics-400 和 Kinetics-600 數據集,展現了提出的 OctConv 也適用於 3D CNN。每一類別 / 塊的最佳結果在論文中以粗體字顯示。


圖 4:
ImageNet 上的控制變量研究結果。
配備 OctConv 的模型較基準模型更有效和更準確。
上圖每一行的黑色標記●表示沒有使用 OctConv 的基準模型。
數字表示比例α。
橫座標表示計算開銷(FLOP),縱座標表示準確率。

表 2:
ResNet-50 的實測時間開銷(Inference time)以 2.0 GHz(單線程)在英特爾 Skylake CPU 上進行測量。

表 3:
下采樣的控制變量實驗和 ImageNet 上的 inter-octave 連通性。

表 4:
ImageNet 分類準確度。
研究人員經過調整輸入圖像尺寸,檢測網絡對不一樣大小分佈的物體的識別率。

表 5:
小型模型的 ImageNet 分類結果。

表 6:
中型模型的 ImageNet 分類結果。

表 7:
大型模型的 ImageNet 分類結果。
配備有 OctConv 的模型名稱顯示爲黑色粗體,相關研究的性能數據來自相應論文。
使用 CuDNN v10.03 在一個英偉達 Titan V100 (32GB) 上以 flop16 評估網絡的訓練內存開銷及速度。
採用神經架構搜索的工做標記爲 (3)。
研究人員將多數例子中的批大小設爲 128,但對於大到 GPU 內存沒法負荷的網絡,他們將批大小減少爲 64(帶†標記的)或 32(帶‡標記的)或 8(帶§標記的)。

表 8:
視頻中的動做識別、控制變量研究,使用 ResNet50 的全部模型。
相關文章
相關標籤/搜索