即插即用新卷積:提升CNN性能、速度翻倍
近期,來自 Facebook AI、新加坡國立大學、奇虎 360 的研究人員聯合提出了一種新的卷積操作 (OctConv),用於替代現有的通用卷積。這款新卷積不僅佔用更少的內存和計算,還有助於提高性能。
卷積神經網路(CNN)在很多計算機視覺任務中都取得了卓越的成就,然而高準確率的背後,卻是很高的冗餘度和不可忽視的計算開銷。
打開今日頭條,查看更多圖片圖 1. 現有的卷積操作(1x1 卷積)
對於一個卷積操作而言(圖 1),每個位置都是由一個 D 維特徵向量 表示,而特徵提取,則是通過滑動卷積,對每個位置分別處理得到對應的特徵。
但是,這種為每個位置都分別存儲一份特徵表達,並分別一一處理的策略明顯是不合理的。因為,對於圖像而言,相鄰位置往往描述的是同一個語義,從而共享一部分特徵。
圖 2. AlexNet 的第一層卷積核
於此同時,CNN 所學習到的卷積核,也並非全是高頻卷積核,如 圖 2 所示。這意味著,一部分卷積專註於提取「低頻特徵」,而另一部分則專註於提取「高頻特徵」。對於低頻卷積所對應的特徵圖而言,我們也許只需要保留它的低頻信號即可,沒必要存儲在高解析度下的特徵圖。
圖 3. 本文的:(a) 主要動機; (b,c) 新的特徵表達方式;(d) OctConv
如圖 3 所示,本文提出將 特徵圖分為兩組:低頻特徵(藍色)和 高頻特徵(橙紅),並將空間上變化較為緩慢的「低頻特徵圖」存儲在低解析度的張量中,共享相鄰位置間的特徵。而本文所提出的 OctConv 則是一種可以直接作用在該特徵表達下的卷積操作。它包含每個頻率自身狀態的更新(綠色箭頭),以及頻率間的信息交互(紅色箭頭)。
圖 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
- 論文地址:https://export.arxiv.org/pdf/1904.05049
- 第三方復現結果:https://github.com/terrychenism/OctaveConv
在自然圖像中,信息以不同的頻率傳輸,其中較高頻率通常以細節進行編碼,而較低頻率通常以總體結構進行編碼。同樣地,一個卷積層的輸出特徵圖也可視為不同頻率的信息混合。
在本文中,研究人員提出基於頻率對混合特徵圖進行分解,並設計了一種新的 Octave 卷積(OctConv)操作,以存儲和處理較低空間解析度下空間變化「較慢」的特徵圖,從而降低內存和計算成本。
與現有多尺度方法不同,OctConv 是一種單一、通用和即插即用的卷積單元,可以直接代替(普通)卷積,而無需對網路架構進行任何調整。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:採用卷積降採樣後的特徵圖
圖 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(單線程
表 3:下採樣的控制變數實驗和 ImageNet 上的 inter-octave 連通性。
表 4:ImageNet 分類準確度。
表 4:ImageNet 分類準確度。研究人員通過調整輸入圖像尺寸,檢測網路對不同大小分布的物體的識別率。
表 5:小型模型的 ImageNet 分類結果。
表 6:中型模型的 ImageNet 分類結果。
表 7:大型模型的 ImageNet 分類結果。
表 7:大型模型的 ImageNet 分類結果。配備有 OctConv 的模型名稱顯示為黑色粗體,相關研究的性能數據來自相應論文。使用 CuDNN v10.03 在一個英偉達 Titan V100 (32GB) 上以 flop16 評估網路的訓練內存開銷及速度。採用神經架構搜索的工作標記為 (3)。研究人員將多數例子中的批大小設為 128,但對於大到 GPU 內存無法負荷的網路,他們將批大小減小為 64(帶?標記的)或 32(帶?標記的)或 8(帶§標記的)。
表 8:視頻中的動作識別、控制變數研究,使用 ResNet50 的所有模型。
※3988元起,「方舟編譯器」加持,華為P30系列國內正式發布
※NAACL 2019最佳論文揭曉,谷歌BERT獲最佳長論文
TAG:機器之心 |