近期,來自 Facebook AI、新加坡國立大學、奇虎 360 的研究人員聯合提出了一種新的卷積操作 (OctConv),用於替代現有的通用卷積。這款新卷積不僅佔用更少的記憶體和計算,還有助於提高效能。
卷積神經網路(CNN)在很多計算機視覺任務中都取得了卓越的成就,然而高準確率的背後,卻是很高的冗餘度和不可忽視的計算開銷。
對於一個卷積操作而言(圖 1),每個位置都是由一個 D 維特徵向量 表示,而特徵提取,則是通過滑動卷積,對每個位置分別處理得到對應的特徵。
但是,這種為每個位置都分別儲存一份特徵表達,並分別一一處理的策略明顯是不合理的。因為,對於影像而言,相鄰位置往往描述的是同一個語義,從而共享一部分特徵。
與此同時,CNN 所學習到的卷積核,也並非全是高頻卷積核,如 圖 2 所示。這意味著,一部分卷積專注於提取「低頻特徵」,而另一部分則專注於提取「高頻特徵」。對於低頻卷積所對應的特徵圖而言,我們也許只需要保留它的低頻訊號即可,沒必要儲存在高解析度下的特徵圖。
如圖 3 所示,本文提出將 特徵圖分為兩組:低頻特徵(藍色)和 高頻特徵(橙紅),並將空間上變化較為緩慢的「低頻特徵圖」儲存在低解析度的張量中,共享相鄰位置間的特徵。而本文所提出的 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
第三方復現結果:github.com/terrychenis…
在自然影像中,資訊以不同的頻率傳輸,其中較高頻率通常以細節進行編碼,而較低頻率通常以總體結構進行編碼。同樣地,一個卷積層的輸出特徵圖也可視為不同頻率的資訊混合。
在本文中,研究人員提出基於頻率對混合特徵圖進行分解,並設計了一種新的 Octave 卷積(OctConv)操作,以儲存和處理較低空間解析度下空間變化「較慢」的特徵圖,從而降低記憶體和計算成本。
與現有多尺度方法不同,OctConv 是一種單一、通用和即插即用的卷積單元,可以直接代替(普通)卷積,而無需對網路架構進行任何調整。OctConv 與那些用於構建更優拓撲或者減少分組或深度卷積中通道冗餘的方法是正交和互補的。
實驗表明,通過用 OctConv 替代普通卷積,研究人員可以持續提高影像和視訊識別任務的準確率,同時降低記憶體和計算成本。一個配備有 OctConv 的 ResNet-152 能夠以僅僅 22.2 GFLOP 在 ImageNet 上達到 82.9% 的 top-1 分類準確率。
方法
在本節中,研究人員首先介紹了用來降低特徵圖中空間冗餘的特徵表示,接著描述了直接作用於該表徵的 Octave 卷積(圖 4)。研究人員還討論了實現細節,展示瞭如何將 OctConv 融入分組和深度卷積架構。
這裡,有一點很有意思。研究人員指出,通過卷積降取樣會導致特徵圖無法準確對齊。並推薦使用池化操作來進行降取樣。
實驗評估
在本節中,研究人員驗證了提出的 Octave 卷積對於 2D 和 3D 網路的效能和效率。研究人員首先展示了 ImageNet 上影像分類的控制變數研究,然後將其與當前最優的方法進行了比較。之後,研究人員使用 Kinetics-400 和 Kinetics-600 資料集,展示了提出的 OctConv 也適用於 3D CNN。每一類別 / 塊的最佳結果在論文中以粗體字顯示。