天天看點

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution [github]

傳統的卷積運算,要成為過去時了。Facebook和新加坡國立大學聯手提出了新一代替代品:OctConv(Octave Convolution),效果驚豔,用起來還非常友善。OctConv就如同卷積神經網絡(CNN)的“壓縮器”。用它替代傳統卷積,能在提升效果的同時,節約計算資源的消耗。

比如說一個經典的圖像識别算法,換掉其中的傳統卷積,在ImageNet上的識别精度能獲得1.2%的提升,同時,隻需要82%的算力和91%的存儲空間。如果對精度沒有那麼高的要求,和原來持平滿足了的話,隻需要一半的浮點運算能力就夠了。

想實作這樣的提升,怕不是要把神經網絡改個天翻地覆吧?根本不需要,OctConv即插即用,無需修改原來的網絡架構,也不用調整超參數,友善到家。就是這個新一代的卷積,讓GAN的主要創造者、AI大牛Ian Goodfellow迫不及待,不僅轉發力薦,還表示要持續關注進展,開源時再發推告訴大家。消息來源:CNN更新換代!性能提升算力減半,還即插即用

部落客注:Octave表示的是音階的八度,而本篇核心思想是通過對資料中低頻資訊減半進而達到加速卷積運算的目的,而兩個Octave之間也是聲音頻率減半,注意Octo也是八的詞根,Octobor在羅馬曆就是8月,隻不過凱撒後來加了兩個月在前面。

Abstract

在自然圖像中,資訊以不同的頻率傳遞,其中較高的頻率通常用精細的細節編碼,較低的頻率通常用全局結構編碼。同樣,卷積層的輸出特征圖也可以看作是不同頻率下資訊的混合。在這項工作中,我們提出将混合特征圖按其頻率分解,并設計一種新的Octave Convolution(OctConv)操作來存儲和處理空間分辨率較低且空間變化較慢的特征圖,進而降低了記憶體和計算成本。與現有的多尺度方法不同,OctConv被表示為一個單一的、通用的、即插即用的卷積單元,可以直接替換(普通的)卷積,而無需對網絡架構進行任何調整。它也正交和互補的方法,建議更好的拓撲或減少像組或深度卷積信道備援。實驗表明,通過簡單地用OctConv替換卷積,我們可以不斷提高圖像和視訊識别任務的準确性,同時降低記憶體和計算成本。一個裝備了八重卷積網絡(octconvo)的ResNet-152僅用22.2 GFLOPs就能在ImageNet上實作82.9%的top-1分類精度。

1. Introduction

卷積神經網絡(Convolutional Neural network, CNNs)在許多計算機視覺任務中都取得了顯著的成功[18,17,42],近年來在降低DenseNet模型參數[16,32,40]和特征圖通道維數[45,20,7,10]的固有備援方面,其效率不斷提高。然而,CNNs生成的特征圖在空間次元上也存在大量備援,每個位置獨立存儲自己的特征描述符,忽略了可以一起存儲和處理的相鄰位置之間的公共資訊。

如圖1(a)所示,自然圖像可以分解為描述平穩變化結構的低空間頻率分量和描述快速變化精細細節的高空間頻率分量[1,12]。同樣,我們認為卷積層的輸出特征映射也可以分解為不同空間頻率的特征,并提出了一種新的多頻特征表示方法,将高頻和低頻特征映射存儲到不同的組中,如圖1(b)所示。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

圖1:(a)動機。視覺的空間頻率模型[1,12]表明,自然圖像可以分解為低空間頻率和高空間頻率兩部分。

(b)卷積層的輸出圖也可以根據其空間頻率分解和分組。

(c)提出的多頻特征表示方法将平滑變化的低頻映射存儲在低分辨率張量中,以減少空間備援。

(d)建議的Octave Convolution 直接作用于這個表示。它更新每個組的資訊,并進一步支援組之間的資訊交換。

是以,通過相鄰位置間的資訊共享,可以安全降低低頻組的空間分辨率,減少空間備援,如圖1(c)所示。适應新的特征表示,我們推廣了vanilla convolution,并提出Octave Convolution(OctConv)将張量特征圖包含兩個頻率和一個octave部分,頻率和提取資訊直接從低頻地圖不需要解碼的高頻如圖1所示(d)。作為普通卷積的替代品,OctConv消耗的記憶體和計算資源大大減少。此外,OctConv對低頻資訊進行相應的(低頻)卷積處理,有效地擴大了原始像素空間的接收域,進而提高了識别性能。

我們以一種通用的方式設計了OctConv,使它成為即插即用的卷積的替代品。OctConv以來主要集中在加工特征圖譜在多個空間頻率和減少空間備援、正交和補充現有的方法,專注于建構更好的CNN拓撲[24, 38, 36, 34, 30],減少channel-wise備援卷積特征圖譜[45, 10, 35, 33, 23]和減少備援在濃密的模型參數[40, 16, 32]。我們還将進一步讨論OctConv在群、深度和三維卷積情況下的積分。此外,與利用多尺度資訊的方法[4, 41, 14]不同的是,OctConv可以很容易地作為即插即用單元部署來替代卷積,而不需要改變網絡架構或進行超參數調優。

我們的實驗證明,隻需用OctConv代替vanilla卷積,我們始終可以提高受歡迎的2D CNN backbones的性能包括ResNet [18, 19], ResNeXt [45], DenseNet [24], MobileNet[20, 35]和SE-Net[21]在2D圖像識别ImageNet[13],以及3D CNN backbones C2D[42]和I3D[42]視訊行動識别動力學[26, 3, 2]。配備OctConv的Oct-ResNet-152能夠以更低的記憶體和計算成本比對或超過最先進的手工設計網絡[33, 21]。我們的貢獻可以總結如下:

  • 我們提出将卷積地形圖分解成兩組不同空間頻率的卷積地形圖,并分别以一個octave的頻率對其進行處理。由于可以降低低頻圖的分辨率,這節省了存儲和計算。這也有助于每一層獲得更大的接受域,以捕獲更多的上下文資訊。
  • 我們設計了一種即插即用的OctConv運算來代替傳統的卷積運算,直接對新的特征表示進行運算,減少了空間備援。重要的是,OctConv在實踐中速度很快,達到了接近理論極限的加速。
  • 我們廣泛研究了所提出的用于圖像和視訊任務的各種骨幹cnn上的OctConv的特性,并獲得了顯著的性能提高,甚至可以與最好的自動網絡相媲美。

2. Related Work

Improving the efficiency of CNNs 自從AlexNet[27]和VGG[36]的開創性工作以來,通過疊加一組卷積層獲得了驚人的結果,研究人員為提高CNNs的效率做出了大量的努力。ResNet[18, 19]和DenseNet[24]通過向早期層添加快捷連接配接來改進網絡拓撲結構,增強特征重用機制,緩解優化困難。ResNeXt[45]和ShuffleNet[47]使用稀疏連接配接的組卷積來減少通道間連接配接的備援,使得在相同的計算預算下采用更深或更廣的網絡是可行的。Xception[10]和MobileNet[20,35]采用深度卷積,進一步降低了連接配接密度。除了這些人工設計的網絡,研究人員還試圖原子地為給定的任務找到最佳的網絡拓撲。NAS[49]、PNAS[30]和AmoebaNet[34]成功地發現了比手工設計的網絡表現更好的類型學。另一項工作重點是減少模型參數中的備援。DSD[16]通過修剪低權重的連接配接來減少模型連接配接中的備援。ThiNet[32]删除了基于其下一層計算的統計資料的卷積濾波器。然而,所有這些方法都忽略了特征圖空間維數的備援,這是由所提出的OctConv來解決的,使得OctConv正交并且與之前的方法互補。

Multi-scale Representation Learning 提出的OctConv在不同的空間分辨率下對特征圖進行卷積,得到了具有較大接收域的多尺度特征表示。尺度空間長期以來被應用于局部特征提取,如曾經流行的SIFT特征[31]。在深度學習時代,現有的方法側重于融合多尺度特征[28,48,14,22],更好地捕捉遠端資訊[42,6,9]。然而,這種方法隻通過插入新提出的塊,在網絡的少量深度(通常在中間或接近末尾)處聚合資訊。blnet[4]和ELASTICNet[41]經常上下采樣整個網絡的特征映射,以自動學習多尺度特征。然而,這兩種方法都被設計為對剩餘塊的替代,這需要額外的專業知識和超參數調優,尤其是應用于不同的網絡架構時,如MobileNetV1[20]、DenseNet[24]。此外,這些方法隻同步每個建構塊末尾的多尺度資訊,并同步高分辨率地圖上的所有資訊。在[22]中,Huang等人在整個網絡中保持多尺度特征,并且在DenseNet的每一層都有尺度間的連接配接。為了降低計算成本,他們隻使用粗糙的特征作為不同深度的多個分類器的輸入。相比之下,OctConv被設計成一種普通卷積的替代品,可以直接應用于現有的CNNs中,無需調整網絡結構。對于OctConv,在每一組的每一層都同步了多尺度的資訊,提高了學習能力和效率。我們在實驗部分對OctConv和所有密切相關的方法進行了廣泛的比較,結果表明OctConv CNNs在許多具有挑戰性的基準測試中給出了最好的結果。

3. Method

在本節中,我們首先介紹了用于減少特征圖中空間備援度的octave特征表示,然後描述了直接作用于其上的Octave Convolution。我們還讨論了實作細節,并展示了如何将OctConv內建到組和深度卷積架構中。

3.1. Octave Feature Representation

對于普通卷積,所有的輸入和輸出特征圖具有相同的空間分辨率。然而,spatial-frequency模型[1,12]認為自然圖像可以分解為捕捉全局布局和粗結構的低頻信号和捕捉精細細節的高頻信号,如圖1(a)所示。以類似的方式,我們認為有一個特征映射子集,它捕獲空間低頻變化并包含空間備援資訊。

為了減少這種空間備援,我們引入了octave特征表示,它顯式地将特征映射張量分解為對應于低頻和高頻的組。尺度空間理論[29]為我們提供了一種建立空間分辨率尺度空間的原則方法,并将octave定義為空間次元除以2的幂(在本文中我們隻探讨了2^1)。我們用這種方式定義了低頻和高頻空間,即将低頻地物圖的空間分辨率降低一個octave。

形式上,設

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示卷積層的輸入特征張量,其中h和w表示空間維數,c表示特征圖或信道數。我們沿着通道尺寸為顯式因式分解

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

,在高頻特征圖

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

捕捉細節和低頻圖

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

變化慢的空間次元(w.r.t.圖檔位置)。這裡

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示管道的比例配置設定給低頻部分和低頻特征圖譜定義一個octave低于高頻的,即在一半的空間分辨率,如圖1所示(c)。在下一小節中,我們将介紹一個直接作用于這種多頻特征表示的卷積運算符,并将其命名為Octave Convolution,或簡稱為OctConv。

3.2. Octave Convolution

第3.1節中提出的octave特征表示方法減少了空間備援,比原表示方法更加緊湊。然而,由于輸入特征的空間分辨率不同,普通卷積不能直接對這種表示進行操作。繞過這個問題的一種簡單方法是将低頻部分

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

上采樣到原始的空間分辨率,将它與

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

連接配接起來,然後進行卷積,這将導緻額外的計算和記憶體開銷,并減少壓縮帶來的所有節省。為了充分利用我們緊湊的多頻特征表示,我們引入了Octave Convolution,它可以直接作用于因式張量

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

,而不需要任何額外的計算或記憶體開銷。

Vanilla Convolution 設

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示一個k x k卷積核,

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

分别表示輸入和輸出張量。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

中的每個特征圖都可以通過計算:

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

其中(p, q)表示位置坐标,

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

定義了一個局部鄰域。為簡單起見,在所有的方程中我們省略填充,我們假設k是一個奇數,并且輸入和輸出資料具有相同的維數,即

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Octave Convolution 我們的設計目标是有效地處理相應頻率張量中的低頻和高頻分量,同時使我們的octave特征表示的高頻分量和低頻分量之間能夠有效地通信。設X, Y為因式分解的輸入和輸出張量。那麼高和低頻特征圖的輸出

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

将由

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

分别在

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示卷積更新從功能映射組B組。具體來說,

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示intra-frequency資訊更新,而

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示inter-frequency溝通。

為了計算這些項,我們将卷積核W分成兩個分量

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

,分别負責與

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

進行卷積。将各分量進一步劃分為頻率内分量和頻率間分量:

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

,參數張量形狀如圖2(b)所示。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

對于高頻地形圖,我們在位置(p, q)處進行計算,使用正則卷積對頻率内的更新進行計算,對頻率間的更新進行計算,我們可以将特征張量

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

上采樣折疊成卷積,不需要顯式計算和存儲上采樣的特征圖,如下所示:

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion
Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

 表示floor操作。同樣,對于低頻特征圖,我們使用正則卷積計算頻率内更新。注意,由于map在一個octave以下,卷積也是低頻的w.r.t.,即高頻坐标空間。對于頻間通信,我們可以再次将特征張量

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

的下采樣折疊成卷積,如下所示:

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

将一個因子2乘以位置(p, q)進行向下采樣,并進一步将位置移動半步,以確定向下采樣的映射與輸入保持良好的對齊。然而,由于

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

的索引隻能是一個整數,我們可以将索引四舍五入到

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

,或者通過對所有4個相鄰位置求平均值來近似

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

。第一個也被稱為條紋卷積第二個是平均池。正如我們在3.3節和圖3中所讨論的,條紋卷積會導緻失調;是以,在本文的其餘部分,我們使用平均池來近似這個值。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Octave Convolution的一個有趣和有用的性質是低頻特征圖的更大的接受域。将低頻部分

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

與k x k卷積核進行卷積,與普通卷積相比,有效地将接收域擴大了2倍。這進一步幫助每個OctConv層從遙遠的位置捕獲更多的上下文資訊,并可能提高識别性能。

3.3. Implementation Details

如前一小節所述,index{(2p + 0.5 +i),(2q + 0.5 +j)}必須是Eq. 3的整數。我們沒有取整為{(2p + i),(2q + j)},即與stride 2進行卷積進行下采樣,而是采用平均池的方法得到更準确的近似。這有助于緩解在聚合來自不同規模[11]的資訊時出現的不對齊,如圖3所示,并在表3中進行了驗證。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

我們現在可以重寫輸出

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

的Octave Convolution使用平均池為下采樣:

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion
Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

表示與參數W的卷積,pool(X, k)是一個平均池操作,池的核大小為k,步長為k。

OctConv操作符實作的細節如圖2所示。它由四條計算路徑組成,分别對應于式(4)中的四項:兩條綠色路徑對應于高頻和低頻特征圖的資訊更新,兩條紅色路徑便于兩個octave之間的資訊交換。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Group and Depth-wise convolutions Octave Convolution也可以用于其他常見卷積的變體,如組[45]或深度方向的[20]卷積。對于群卷積的情況,我們簡單地将出現在OctConv設計中的所有四個卷積操作都設定為組卷積。同樣,對于深度卷積,卷積運算是深度卷積,是以資訊交換路徑被消除,隻剩下兩個深度卷積運算。我們注意到,如果不壓縮低頻部分,組OctConv和深度方向的OctConv都減少到各自的普通版本。

Efficiency analysis 表1給出了OctConv相對于普通卷積和普通特征映射表示的理論計算成本和記憶體消耗。關于從表1中得到的理論收益的更多資訊可以在補充材料中找到。我們注意到理論增益是按每一卷積層計算的。在第4節中,我們給出了實際場景中相應的實際收益,并證明了我們的OctConv實作能夠充分逼近理論值。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Integrating OctConv into backbone networks OctConv與普通卷積向後相容,無需特殊調整即可插入正常卷積網絡。将特性表示表示一個多頻特性,即在第一個OctConv層,我們設定

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

。在本例中,與低頻輸入相關的OctConv路徑被禁用,導緻簡化版本隻有兩條路徑。将多頻特性表示回到vanilla特性表征,即在最後OctConv層,我們設定

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

。在本例中,與低頻輸出相關的OctConv路徑被禁用,進而産生單個全分辨率輸出。

4. Experimental Evaluation

在本節中,我們驗證了所提出的Octave Convolution在二維和三維網絡中的有效性和效率。我們首先介紹了在ImageNet[13]上進行圖像分類的消融研究,然後将其與目前最先進的消融方法進行了比較。然後,我們使用Kinetics-400[26,3]和Kinetics-600[2]資料集展示了所提議的OctConv也适用于3D CNNs。每個類别/塊的最佳結果将在整篇文章中以粗體突出顯示

4.1. Experimental Setups

Image classification 我們在一組最流行的CNNs[20、35、18、19、24、45、21]上檢查OctConv,用OctConv替換正常卷積(最大池之前的第一個卷積層除外)。由此産生的網絡隻有一個全球hyper-parameterα,表示低頻部分的比率。我們在相同的訓練/測試環境下,對所有的基線方法進行蘋果對蘋果的比較和複制,用于内部消融研究。所有網絡訓練與naıve softmax交叉熵的損失除了MobileNetV2也采用标簽平滑[37],和最好的ResNet152采用标簽平滑和混合[46]防止過度拟合。與[4]一樣,所有的網絡都是從零開始訓練,由SGD進行優化,其餘弦學習率為[15]。報告了單中心crop[18,19,45,4,41]在驗證集上的标準精度 。

Video action recognition 我們同時使用Kinetics-400[26,3]和Kinetics-600[2]進行人類動作識别。我們從膨脹的3D ConvNet[42]中選擇标準基線脊柱,并與相應的OctConv進行比較。我們按照[43]的設定,以幀長8為标準輸入大小,共訓練300k次疊代。為了進行公平的比較,我們報告了基線和OctConv在完全相同的設定下的性能。在推斷時間方面,我們對30種crop (每一種f (left, center, right) × 10 crops沿時間次元的預測進行平均),同樣遵循之前的工作[42]。

4.2. Ablation Study on ImageNet

我們進行了一系列消融研究,旨在回答以下問題:

1)與普通卷積相比,OctConv是否具有更好的flops - accuracy權衡?

2)在什麼情況下OctConv工作得最好

Results on ResNet-50. 我們首先使用流行的ResNet-50[19]作為基準CNN,并使用我們提出的OctConv替換正則卷積來檢查flops-accuracy權衡。特别是,我們改變全局比

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

比較圖像分類精度與計算成本(例如失敗)[18, 19, 45, 8]的基線。結果如圖4中粉紅色部分所示。

我們的觀察如下。

1) flops-accuracy權衡曲線為凹曲線,精度先上升後緩慢下降。

2)我們可以看到兩個甜蜜的地點:第一在α= 0.5,網絡得到類似或者更好的結果即使失敗減少一半;在α= 0.125,第二,網絡達到最好的精度,比基線(黑圈)高出1.2%。

我們将準确率的提高歸功于OctConv對多頻處理的有效設計以及相應的放大接收域,這為網絡提供了更多的上下文資訊。達到精度達到0.125時,精度并不突然下降,但是減小了慢慢的高比率α,表明減少低頻部分的解決不會導緻重大的資訊丢失。有趣的是,75%的feature map可以壓縮到一半的分辨率,而準确率隻有0.4%的下降,這證明了對平滑變化的feature map進行分組和壓縮的有效性,可以減少CNNs中的空間備援。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

在表2中,我們示範了OctConv的理論故障節省也反映在實際的CPU推理時間。對于ResNet-50,我們接近于獲得理論上的故障加速。這些結果表明,OctConv能夠帶來重要的實際效益,而不僅僅是理論上的失敗 。

Results on more CNNs. 為了進一步檢驗所提出的OctConv是否适用于其他具有不同深度/寬度/拓撲結構的網絡,我們選擇了目前最流行的網絡作為基線,并重複了相同的消融研究。這些網絡是ResNet-(26;50;101;200)[19]、ResNeXt-(50,324d; 101,324d)[45]、DenseNet-121[24]和SE-ResNet-50[21]。選擇ResNeXt對群卷積的OctConv進行評估,使用SENet[21]檢查基于普通卷積網絡的SE塊增益是否也可以在OctConv上看到。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

如圖4所示,OctConv裝備網絡對不同架構的行為類似于Oct-ResNet-50 FLOPs-Accuracy權衡的凹曲線,峰值性能也比α= 0.125或α= 0.25。在各種骨幹網絡上的一緻性性能提高證明了OctConv是一種很好的替代普通卷積的方法。

此外,我們也有一些有趣的發現:

1)OctConv可以幫助CNNs提高準确性,而減少FLOPs,與其他方法不同的是,這些方法以較低的精度為代價來減少故障。

2)在測試時,OctConv比基線模型的增益随着測試圖像分辨率的增加而增加,因為OctConv的接受域較大,可以更好地檢測大對象,如表4所示。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

3)這兩條資訊交換路徑都很重要,删除其中任何一條都會導緻準确率下降,如表3所示。

4)淺層網絡,如ResNet-26,其接受域非常有限,尤其可以從OctConv中獲益,這大大擴大了它們的接受域。

4.3. Comparing with SOTAs on ImageNet

Small models. 我們采用最流行的輕量級網絡作為基線,并檢查OctConv在這些具有深度卷積的緊湊網絡上是否工作良好。特别地,我們使用0.75 MobileNet (v1)[20]和1.0 MobileNet (v2)[35]作為基線,并用我們提出的OctConv替換正常卷積。結果如表5所示。我們發現,OctConv可以将MobileNetV1的拖放率降低34%,在實際應用中提供了更好的精度和更快的速度;它可以減少15%的失敗的MobileNetV2,達到同樣的精度和更快的速度。當計算預算固定時,由于OctConv可以補償額外的計算成本,可以采用更廣泛的模型來提高學習能力。特别是,我們的OctConv裝備的網絡在相同的故障下實作了對MobileNetV1 2%的改進,對MobileNetV2 1%的改進。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

Medium models. 在上述實驗中,我們比較并表明OctConv與一組最先進的CNNs是互補的[18,19,45,24,20,35,21]。在這一部分中,我們将OctConv與彈性[41]和bLNet[4]進行了比較,它們與我們的方法有着相似的思想。五組結果如表6所示。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

在第一組中,我們的OctResNeXt-50比基于彈性[41]的方法(78.7% vs . 78.4%)獲得了更好的精度,同時降低了31%的計算成本。在第二組中,Oct-ResNeXt-101的計算精度也高于基于彈性的方法(79.5% vs . 79.2%),計算量減少38%。與bL-Net[4]相比,配備了OctConv的方法在沒有鈴聲和技巧的情況下實作了更好的FLOPs-Accuracy權衡。在采用基線bL-Net[4]中使用的技巧時,我們的Oct-ResNet-50在相同的計算預算(組3)下的準确率比bL-ResNet-50高0.8%,而Oct-ResNeXt-50(組4)和OctResNeXt-101(組5)在計算預算相近甚至更低的情況下,準确率更高。這是因為彈性網絡[41]和bL-Net[4]都是為了利用多尺度特性而設計的,而不是為了減少空間備援。相比之下,OctConv使用更緊湊的特征表示來存儲和處理整個網絡中的資訊,進而可以達到更好的效率和性能。

Large models. 表7顯示了OctConv在大型模型中的結果。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

這裡,我們選擇ResNet-152作為CNN的主幹,用3個3 x 3個卷積層替換前7個卷積層,用一個輕量級的剩餘塊[4]去除最大池。我們報告了使用和不使用se塊[21]的OctResNet-152的結果。從圖中可以看出,我們的Oct-ResNet-152的精度可與人工設計的最優網絡相媲美,且故障更少(10.9G vs . 12.7G)。自我們的模型不使用組或深度方面的隆起,它也需要很少的GPU記憶體,運作速度實際上比SE-ShuffleNet v2 - 164和AmoebaNet-A (N = 6 F = 190)在理論上具有低失敗但運作緩慢的在實踐中由于使用組和深度方面的隆起。我們提出的方法也補充了擠壓和激勵[21],當增加se塊(最後一行)時,可以進一步提高精度。

4.4. Experiments of Video Recognition on Kinetics

在本節中,我們評估了OctConv在視訊中動作識别的有效性,并證明了我們的空間OctConv具有足夠的通用性,可以內建到三維卷積中,進而在減少#FLOPs的同時提高精度。如表8所示,當添加到C2D和I3D時,OctConv不斷減少FLOPs,同時提高了精度[42,43],同時補充了非本地建構塊[42]。這可以觀察到在ImageNet[13]上預先訓練的模型以及在動力學上從零開始訓練的模型。

Octave Convolution[論文詳解]Abstract1. Introduction2. Related Work3. Method4. Experimental Evaluation5. Conclusion

具體來說,我們首先從動力學的角度研究了裝備I3D模型的OctConv訓練的行為。我們使用一個比标準大10倍的學習速度,并将其訓練16倍于finetuning設定,以獲得更好的收斂性。與傳統的I3D模型相比,Oct-I3D的準确率提高了1.0%,失敗率為91%。

在此基礎上,我們研究了在ImageNet預訓練模型上采用步進學習計劃對八自由度矢量進行微調的行為。為此,我們在ImageNet[13]上訓練一個OctConv ResNet-50模型[18],然後使用I3D技術[3]将其膨脹成一個具有三維卷積[39](随空間和時間)的網絡。在通貨膨脹之後,我們按照Kinetics400上[43]中描述的時間表對膨脹的OctConv進行了微調。與Kinetics-400驗證集上C2D基線的71.9%的Top-1精度相比,OctConv對應物的準确率達到了73.8%,使用了90%的FLOPs。對于I3D,添加OctConv可以将準确率從73.3%提高到74.6%,而使用的失敗率隻有91%。我們還證明了在添加非本地[42]時,這種差異是一緻的。最後,我們在Kinetics-600[2]資料集上重複了I3D實驗,得到了一緻的結果,進一步證明了我們方法的有效性。

5. Conclusion

本文針對傳統CNN模型中普遍存在的空間備援問題,提出了一種新穎的Octave Convolution運算,分别存儲和處理低頻和高頻特征,提高了模型的效率。Octave卷積具有足夠的通用性,可以代替正常的卷積運算,可以在大多數二維和三維CNNs中使用,無需調整模型結構。除了節省大量的計算和記憶體外,Octave Convolution還可以通過在低頻段和高頻段之間進行有效的通信,增大接收域的大小,進而獲得更多的全局資訊,進而提高識别性能。我們在圖像分類和視訊動作記錄方面進行了廣泛的實驗驗證了我們的方法在識别性能和模型效率之間取得更好權衡的優越性,不僅在失敗的情況下,而且在實踐中也是如此。