天天看點

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

帶你讀論文系列之計算機視覺–SENet

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

閑談

總有那麼瞬間思念遠方的故人。八月十五中秋節,讓我們放下繁忙工作,回家與老人團圓舉杯共餐。這是我第一次沒有在家過中秋,感覺也還行。現在節日沒有什麼節日氣氛,最重要的家人團聚。各位小可愛們,中秋佳節,願你快快樂樂,開開心心;健健康康,輕輕松松;團團圓圓,恩恩愛愛;和和美美,紅紅火火!❤️

前言

論文:Squeeze-and-Excitation Networks

代碼

一個可嫁接/整合的Block 😇

Momenta在ImageNet2017挑戰賽中奪冠的網絡架構SENet。本文作者為Momenta進階研發工程師胡傑。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

Momenta成立于2016年,是自動駕駛公司。其核心技術是基于深度學習的環境感覺、高精度地圖、駕駛決策算法。産品包括不同級别的自動駕駛方案,以及衍生出的大資料服務。Momenta專注于“打造自動駕駛大腦”,擁有世界專業的深度學習專家,如圖像識别領域架構Faster R-CNN和ResNet的作者, ImageNet 2015、ImageNet 2017、MS COCO Challenge 2015等多項比賽。團隊成員主要來源于清華大學、麻省理工學院、微軟亞洲研究院等高校及研究機構,以及百度、阿裡、騰訊、華為、商湯等知名高科技公司,擁有深厚的技術積累、極強的技術原創力和豐富的行業經驗。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

SENet獲得了ImageNet2017大賽分類任務的冠軍,這也是最後一屆ImageNet比賽,論文同時獲得了CVPR2018的oral。而且,SENet思路簡單,實作友善,計算量小,子產品化涉及,可以無縫嵌入主流的網絡結構中,實踐不斷證明其可以使得網絡獲得更好的任務效果。

卷積核作為卷積神經網絡的核心,通常被看做是在局部感受野上,将空間上(spatial)的資訊和特征次元上(channel-wise)的資訊進行聚合的資訊聚合體。卷積神經網絡由一系列卷積層、非線性層和下采樣層構成,這樣它們能夠從全局感受野上去捕獲圖像的特征來進行圖像的描述。

摘要

  1. 卷積操作是CNN核心其可融合空間和通道的特征;
  2. 已經有人研究增強空間特征的提取;
  3. 本文針對通道特征提出SEblock,其可自适應的校正通道特征;
  4. SEblock可堆疊成SENet,并在多個資料集上獲得較好的效果;
  5. SENet僅增加少量參數,就大幅提升精度;
  6. 獲得ILSVRC冠軍;

對ImageNet資料集進行了廣泛評估。SENets不局限于某個特定的資料集或任務。通過利用SENets,我們在ILSVRC2017分類競賽中排名第一。我們的最佳模型集合在測試集上實作了2.251%的最高5級錯誤1。與前一年的冠軍作品相比,這代表了大約25%的相對改進(前五名的誤差為2.991%)。

從通道次元入手,設計SEBlock。提出一種機制可對特征進行校正,校正後的特征可保留有價值的特征,剔除沒價值的特征,即注意力機制。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

SE建構塊的結構如上圖所示。特征首先通過Squeeze操作,它通過在其空間次元(H×W)上聚合特征圖來産生通道描述符。該描述符的功能是生成通道特征響應的全局分布的嵌入,允許來自網絡的全局感受野的資訊被其所有層使用。聚合之後是激勵操作,它采用簡單的self-gating mechanism的形式,将嵌入作為輸入并産生每通道調制權重的集合。這些權重應用于特征映射U以生成SE塊的輸出,該輸出可以直接饋入網絡的後續層。可以通過簡單地堆疊SE塊的集合來建構SE網絡(SENet)。此外,這些SE塊還可以用作網絡架構中一定深度範圍内原始塊。

論文詳情

思路:讓我們的神經網絡使用全局資訊來增強有用的資訊,同時抑制無用的資訊。

假設:

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

其中,

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

令K = [K1,K2,…KC],其中每個元素Ki為filter kernel

于是:

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

其中*代表了conv運算(忽略bias)

Squeeze階段:

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

Excitation階段:

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

VGGNets和Inception模型表明,增加網絡的深度可以顯着提高其能夠學習的表示品質。通過調節每層輸入的分布,批量歸一化(BN)為深度網絡中的學習過程增加了穩定性,并産生了更平滑的優化表面。在這些工作的基礎上,ResNets證明了用shortcut connection來學習更深入、更強大的網絡是可能的。Highway Networks引入了一種self-gating machine來調節資訊流捷徑連接配接。在這些工作之後,網絡層之間的連接配接有了進一步的重構,其中顯示了對深度網絡的學習和表示特性的有希望的改進。

  1. 分組卷積:ResNeXt
  2. 多分支網絡GoogLeNet系列
  3. 1*1卷積的應用:Xception 等

以往的研究通道之間關系時,采用的是局部資訊。本論文提出的方法采用全局方法。

設計和開發新的CNN 架構是一項困難的工程任務,通常需要選擇許多新的超參數和層配置。相比之下,SE塊的結構很簡單,可以直接用于現有的最先進的架構中,通過用SE對應的元件替換,可以有效提高性能。SE子產品在計算上也是輕量級的,隻在模型複雜性和計算負擔上有輕微增加。

SENet優勢:

  1. SE block設計簡單,即插即用;
  2. SE block參數少

Google團隊提出MnasNet(MnasNet:Platform-AwareNeuralArchitectureSearchforMobile

)使用強化學習的思路,提出一種資源限制的終端CNN模型的自動神經結構搜尋方法。MnasNet中用了SEblock。

  1. 注意力機制可了解為将最有意義的部分給予更多“關注”;
  2. 注意力機制已在序列學習圖像了解、定位、圖像描述、唇語識别任務中廣泛應用;
  3. 本論文的block 則是針對通道次元進行注意力機制。
帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

首先是 Squeeze 操作,我們順着空間次元來進行特征壓縮,将每個二維的特征通道變成一個實數,這個實數某種程度上具有全局的感受野,并且輸出的次元和輸入的特征通道數相比對。它表征着在特征通道上響應的全局分布,而且使得靠近輸入的層也可以獲得全局的感受野,這一點在很多任務中都是非常有用的。

其次是 Excitation 操作,它是一個類似于循環神經網絡中門的機制。通過參數 w 來為每個特征通道生成權重,其中參數 w 被學習用來顯式地模組化特征通道間的相關性。

最後是一個 Reweight 的操作,我們将 Excitation 的輸出的權重看做是經過特征選擇後的每個特征通道的重要性,然後通過乘法逐通道權重到先前的特征上,完成在通道次元上的對原始特征的重标定。

SE網絡可以通過簡單地堆疊SE構件塊的集合來生成。SE塊也可以用作體系結構中任何深度的原始塊的直接替換。但是,雖然構模組化塊的模闆是通用的,它在不同深度處的角色适應網絡的需求。在早期層中,它學會以類不可知的方式激發資訊特性,支援共享的底層表示的品質。在後面的層次中,SE塊變得越來越專業化,并以 highly class-specific的方式響應不同的輸入。是以,SE塊進行特征重新校準的好處可以通過整個網絡進行累加。SE塊的設計很簡單,可以直接與現有最先進的體系結構一起使用,這些體系結構的子產品可以通過直接替換SE子產品來加強。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

用公式描述conv2d過程,并且将卷積核按通道次元來了解。

conv2d操作将空間資訊與通道資訊混合到了一起。本文目的是提高通道次元上資訊的敏感度,具體操作為Squeeze和excitation。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

提出問題:U沒有很好的利用局部感受野之外的上下文資訊。

解決問題:利用全局池化,将空間資訊壓縮為通道描述符,即資料變為通道次元的形式。該操作可看為圖像的局部描述算子,這樣的操作在特征工程常見。

  1. 為了擷取通道之間的資訊,加入Excitation;
  2. 為實作該目标,需要遵循兩個準則:

    (1)該操作要能學習通道之間的非線性關系;

    (2)確定多個通道能夠被“強調”;

  3. 采用sigmoid 機制來實作;
帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

上圖為激活函數挑選的實驗。結論:sigmoid最好。

與其他架構進行整合。論文中把ResNet和Inception進行整合。如下兩張圖所示。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

原始Inception子產品(左)和SE-Inception子產品(右)的架構。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

原始Residual子產品(左)和SE-ResNet子產品(右)的模式。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

作為這種輕微的額外計算負擔的交換,SE-ResNet-50的準确性超過了ResNet-50的準确性,并且實際上接近了需要~7.58GFLOPs的更深的ResNet-101網絡的準确性。

FC層的權重參數引入的總數由下式給出:

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

其中r表示縮減率,S表示階段數(階段是指在公共空間次元的特征圖上操作的塊的集合),Cs表示輸出通道的次元,Ns表示階段重複塊的數量(當偏置項用于FC層時,引入的參數和計算成本通常可以忽略不計)。SE-ResNet-50引入了超過250萬個額外參數。

  1. 一個block是2C^2/r ;
  2. 一個stage有N個block ;
  3. 一個模型有S個stage 是以得到以上公式;

SEblock插入CNN中是很靈活的,是以有多個方式。

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet
帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

三種變體:(1)SE-PRE塊,其中SEblock在殘差單元之前移動;(2)SE-POST塊,其中SE單元在與恒等分支求和後移動(在ReLU之後)和(3)SE-Identity 塊,其中SE單元放置在與殘差單元平行的恒等連接配接上。這些變體如圖5 所示,每個變體的性能在表14中報告。我們觀察到SE-PRE、SE-Identity和提議的SE塊的性能相似。

SE-ResNet完整架構✊

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

(左)ResNet-50。(中)SE-ResNet-50。(右)帶有32×4d模闆的SE-ResNeXt-50。括号内列出了殘差積木的特定參數設定的形狀和操作,而在外面顯示了一個階段中堆疊的積木數量。Byfcin後面的内括号表示一個SE子產品中兩個全連接配接層的輸出次元。

實驗

讨論點

  1. 橫向對比
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet
    數值越小越好。
  2. 調整Reduction比率

Reduction比率空值這Dense layer 1 的neuron的數量

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

論文推薦r = 16

  1. GAP v.s. GMP
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet
    結果顯示用Avg Pooling更好
  2. Excitation 階段中不同的Activation函數對比
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet
  3. SE Block的不同位置
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet
    結果顯示結果都差不多。
  4. SE Block在ResNet的不同位置
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

把SE Block都安插進去效果最好!在深層安插比淺層效果好一點。

  1. Squeeze的有無帶來的影響
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

肯定是有Squeeze效果好了。

  1. 對Excitation的探索
    帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

早期的Layer更加general,後期的Layer更Specific,5-2是一個拐點。

移除後期的layer可以減少param,同時模型不會受太大的影響。

總結

SENet對卷積層通道數進行權值評分,可以很好與其他網絡(VGG, ResNet)結合。

相比于增加模型寬度(WRN中的width, ResNeXt中的cardinality),深度(depth),SE Block權重通道值,增加的參數少,增加的計算量小,增強效果好

最後說一句,中秋快樂!

帶你讀論文系列之計算機視覺--SENet帶你讀論文系列之計算機視覺–SENet

繼續閱讀