IGC系列:全分組卷積網路,分組卷機極致使用 | 輕量級網路

IGC系列網路的核心在分組卷積的極致運用,將常規卷積分解成多個分組卷積,能夠減少大量參數,另外互補性原則和排序操作能夠在最少的參數量情況下保證分組間的資訊流通。但整體而言,雖然使用IGC模組後參數量和計算量降低了,但網路結構變得更為繁瑣,可能導致在真實使用時速度變慢

來源:曉飛的演算法工程筆記 公眾號

IGCV1


論文: Interleaved Group Convolutions for Deep Neural Networks

Introduction

  Interleaved group convolution(IGC)模組包含主分組卷積和次分組卷積,分別對主分區和次分區進行特徵提取,主分區通過輸入特徵分組獲得,比如將輸入特徵分為L個分區,每個分區包含M維特徵,而對應的次分區則分為M個分區,每個分區包含L維特徵。主分組卷積負責對輸入特徵圖進行分組特徵提取,而次組卷積負責對主分組卷積的輸出進行融合,為$1\times 1$卷積。IGC模組形式上與深度可分離卷積類似,但分組的概念貫穿整個模組,也是節省參數的關鍵,另外模組內補充了兩個排序模組來保證channel間的資訊交流。

Interleaved Group Convolutions

  IGC模組如圖1所示,主卷積對輸入進行分組特徵提取,然後將主卷積輸出的特徵進行隔區取樣,方便後續的次卷積進行特徵融合,將次卷積輸出concate起來恢復為取樣前的順序後作為最後的輸出。

  • Primary group convolutions

  假設共L個主分區,每個主分區包含M維特徵,主分組卷積的操作如公式1所示,z_l為按卷積核大小摳出來的(MS)維特徵向量,S為卷積核大小,W^p_{ll}對應第l分區的卷積核,大小為M\times (MS)x=[z^{\top}_1\ z^{\top}_2\ \cdots \ z^{\top}_L]^{\top}代表主分組卷積的輸入。

  • Secondary group convolutions

  將主分組卷積的輸出\{y_1, y_2,\cdots ,y_L \}重排成M個次分區,每個分區包含L維特徵,這樣能夠保證每個分區都包含來自不同主分區的特徵,第m個次分區由於每個主分區的第m維特徵組成:

\bar{y}_m對應第m個次分區,y_{lm}y_l的第m維特徵,P為排序矩陣,次分組卷積在次分區上進行計算:

W^d_{mm}對應第m個次分區對應的$1\times 1卷積核,大小為L\times L,次分組卷積的輸出將重排為主分區的順序,L個重排分區{x^{‘}_1, x^{‘}_2, \cdots, x^{‘}_L }$的計算如下:

  結合主卷積和次卷積的公式,IGC模組可以總結為:

W^pW^d為分塊角對角矩陣,定義W=PW^dPT^{\top}W^p為混合卷積核,得到:

  即IGC模組可以看成是常規卷積,其卷積核為兩個稀疏核的積。

Analysis

  • Wider than regular convolutions

  考慮單像素的輸入,IGC模組的參數量為:

G=ML為IGC的覆蓋的維度數,對於常規卷積,輸入輸出維度為C,參數量為:

  給予相同的參數量,T_{igc}=T_{rc}=T,得到C^2=\frac{1}{S}TG^2=\frac{1}{S/L+1/M}T,可以進一步得到:

  考慮S=3\times 3的情況,當L>1時可得到G>C,即正常情況下IGC模組可以比常規卷積處理更多的輸入維度。

  • When is the widest?

  論文研究了分區數LM對卷積寬度的影響,將公式7進行變換得到:

  當L=MS時,公式12取等號,給予一定的參數量,卷積寬度的上界為:

  當L=MS時,卷積寬度最大

  論文列舉了不同設置下的寬度對比,可以看到,L \simeq 9M時寬度最大。

  • Wider leads to better performance?

  固定參數量意味著主分組卷積和次卷積的有效參數固定,當輸入的特徵維度更多時,卷積核也越大,卷積將變得更加稀疏,這可能導致性能的下降。為此,論文也進行不同配置的性能對比,具體見圖3。

Experiment

  小型實驗的網路結構以及參數量和計算量的對比,注意實現時的結構為IGC+BN+ReLU。

  CIFAR-10上的性能對比。

  多個數據集上與SOTA的性能對比

Conclusion

  IGC模組採用兩層分組卷積和排序操作來節省參數量和計算量,結構設計簡單巧妙,論文也對IGC進行了充分的推導與分析。需要注意的是,雖然論文從參數量和計算量上得出IGC模組的輕量性,但正如ShuffleNetV2論文提到的,參數量和計算量並不能等同於推理時延。

IGCV2


論文: IGCV2: Interleaved Structured Sparse Convolutional Neural Networks

Introduction

  IGCV1通過兩個分組卷積來對原卷積進行分解,減少參數且保持完整的資訊提取。但作者發現,因為主分組卷積和次分組卷積在分組數上是互補的,導致次卷積的分組數一般較小,每個分組的維度較大,次卷積核較為稠密。為此,IGCV2提出Interleaved Structured Sparse Convolution,使用多個連續的稀疏分組卷積來替換原來的次分組卷積,每個分組卷積的分組數都足夠多,保證卷積核的稀疏性。

Interleaved Structured Sparse Convolutions

  IGCV2的核心結構如圖1所示,使用多個稀疏卷積來替換原本比較稠密的次卷積,可以公式化地表示為:

P_lW_l為一個稀疏矩陣,其中P_l來排序矩陣用來重排維度,W_l為稀疏的分區矩陣,每個分組的維度均為K_l

  IGCV2在設計的時候有個互補性原則,一個分組卷積的每個分組需要關聯另一個分組卷積每個分組,並且僅關聯每個分組的一維特徵,即分組間有且僅有一條連接,可以看看圖1體會一下,核心是排序的方法。根據互補性原則,可以得到輸入維度C和每層維度數K_L的關係:

  另外類似與IGCV1的推導,IGCV2在L=log(SC)時參數量最少,S為卷積核大小,這裡按次卷積為$1\times 1$分組卷積計算。

Discussions

  論文也對IGCV2的設計進行了討論:

  • Non-structured sparse kernels,不使用稀疏矩陣,使用正則化方法來引導卷積核稀疏化,論文發現這會約束網路的表達能力。
  • Complementary condition,互補性原則不是必須的,只是高效設計分組卷積的一條準則,複合卷積可以不將輸入輸出全連接,設計得更稀疏化。
  • Sparse matrix multiplication and low-rank matrix multiplication,低秩矩陣分解是壓縮的常用方法,而稀疏矩陣分解還很少研究,下一步可以探討結合稀疏矩陣分解和低秩矩陣分解來壓縮卷積網路。

Experiment

  論文對比的網路結構,IGCV2主卷積使用深度卷積。

  與類似的網路結構進行對比。

  與SOTA網路進行對比。

Conclusion

  IGCV2在IGCV1基礎上進一步稀疏化,使用多個稀疏卷積代替原本較為稠密的次卷積,論文依然使用充分的推導對IGCV2的原理和超參數進行分析。但也如前面說到的,參數量和計算量並不能等同於推理時延,需要在實際設備上進行對比。

IGCV3


論文: IGCV3: Interleaved Low-Rank Group Convolutions for Efficient Deep Neural Networks

Introduction

  基於IGCV和bootleneck的思想,IGCV3結合低秩卷積核和稀疏卷積核來構成稠密卷積核,如圖1所示,IGCV3使用低秩稀疏卷積核(bottleneck模組)來擴展和輸入分組特徵的維度以及降低輸出的維度,中間使用深度卷積提取特徵,另外引入鬆弛互補性原則,類似於IGCV2的嚴格互補性原則,用來應對分組卷積輸入輸出維度不一樣的情況。

Interleaved Low-Rank Group Convolutions

  IGCV3主要是對IGCV2的結構進行延伸,引入低秩分組卷積來代替原本的分組卷積,包含分組數為G_1低秩pointwise分組卷積、深度卷積、以及分組數為G_2低秩pointwise分組卷積,兩個低秩分組卷積分別用於擴展特徵維度以及恢復特徵維度到原始大小,可公式化為:

P^1P^2為排序矩陣,W^1為$3\times 3深度卷積,\hat{W}^0W^2$為低秩稀疏矩陣,矩陣結構如下:

\hat{W}^g_{j,k}\in R^C包含\frac{C}{G_1}個非零權值,對應首分組卷積的第g個分組裡的第k個卷積核,用於擴展維度。W^2_g為第二個分組卷積(圖2的第三個分組卷積)的第g個分組的卷積核,用於縮小維度到原始大小。

  由於IGCV3的分組卷積的輸入輸出維度是不同的,這導致IGCV2提出的互補性原則不能滿足(輸入輸出間存在多條連接路徑),排序操作也不能像之前那樣使用。為了解決這個問題,論文提出超維(super-channels)的概念,將輸入\輸出\中間維度分成C_s個超維,輸入和輸出的超維包含\frac{C}{C_s},中間特徵的超維包含\frac{C_{int}}{C_s},如圖2所示,以超維為單位滿足互補性原則,並以此進行排序操作,即鬆弛互補性原則,定義如下:

Experiment

  與前兩個版本對比,IGCV3-D的G_1G_2分別為1和2。

  在ImageNet上與其它網路進行對比。

  這裡對ReLU的使用進行了實驗,主要針對MobileNetV2的ReLU使用方法。

  對不同的分組數進行對比。

Conclusion

  IGCV3在IGCV2的基礎上融合了MobileNetV2的主要結構,並且使用更狠的低秩稀疏分組卷積,在整體結構上和MobileNetV2十分接近,核心依然是在稀疏分組卷積以及排序操作,雖然性能比MobileNetV2有些許提升,但整體的創新性略顯不足。

Conclustion


  IGC系列網路的核心在分組卷積的極致運用,將常規卷積分解成多個分組卷積,能夠減少大量參數,另外互補性原則和排序操作能夠在最少的參數量情況下保證分組間的資訊流通。但整體而言,雖然使用IGC模組後參數量和計算量降低了,但網路結構變得更為繁瑣,可能導致在真實使用時速度變慢。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】

work-life balance.