即插即用新卷積:提升CNN效能、速度翻倍

機器之心發表於2019-04-17

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

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

即插即用新卷積:提升CNN效能、速度翻倍

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

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

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

即插即用新卷積:提升CNN效能、速度翻倍

圖 2. AlexNet 的第一層卷積核

與此同時,CNN 所學習到的卷積核,也並非全是高頻卷積核,如 圖 2 所示。這意味著,一部分卷積專注於提取「低頻特徵」,而另一部分則專注於提取「高頻特徵」。對於低頻卷積所對應的特徵圖而言,我們也許只需要保留它的低頻訊號即可,沒必要儲存在高解析度下的特徵圖。

即插即用新卷積:提升CNN效能、速度翻倍

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

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

即插即用新卷積:提升CNN效能、速度翻倍

圖 4. OctConv 的設計細節

Octave Convolution(OctConv)的命名應該是受到了 SIFT 特徵的啟發。而 Octave 是八個音階的意思,音樂裡降 8 個音階代表頻率減半。本文通過一個 Octave 將 高頻 和 低頻 特徵隔離到不同的組中,並將低頻的解析度減半。

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

實驗表明,用 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 Convolution

即插即用新卷積:提升CNN效能、速度翻倍

在自然影像中,資訊以不同的頻率傳輸,其中較高頻率通常以細節進行編碼,而較低頻率通常以總體結構進行編碼。同樣地,一個卷積層的輸出特徵圖也可視為不同頻率的資訊混合。

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

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

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

方法

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

即插即用新卷積:提升CNN效能、速度翻倍

圖 4. OctConv 的設計細節

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

圖 5. OctConv 的卷積核

即插即用新卷積:提升CNN效能、速度翻倍

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

這裡,有一點很有意思。研究人員指出,通過卷積降取樣會導致特徵圖無法準確對齊。並推薦使用池化操作來進行降取樣。

實驗評估

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

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

即插即用新卷積:提升CNN效能、速度翻倍

表 8:
視訊中的動作識別、控制變數研究,使用 ResNet50 的所有模型。


相關文章