Squeeze-and-Excitation Networks(擠壓和激勵網絡)

Squeeze-and-Excitation Networks

ie Hu[0000−0002−5150−1003]
Li Shen[0000−0002−2283−4976]
Samuel Albanie[0000−0001−9736−5134]
Gang Sun[0000−0001−6913−6799]
Enhua Wu[0000−0002−2174−1428]

 

Abstract 卷積神經網絡(CNNs)的核心構造塊是卷積算子,它使網絡能夠通過融合各層局部感受野中的空間和信道信息來構造信息特徵。先前的廣泛研究已經調查了這種關係的空間成分,試圖通過提高整個特徵層次的空間編碼質量來增強CNN的表現力。在這項工作中,我們將重點放在通道關係上,並提出了一個新的架構單元,我們稱之爲“擠壓和激勵”(SE)塊,它通過顯式地建模通道之間的相互依賴性,自適應地重新校準通道特徵響應。我們表明,這些塊可以堆疊在一起形成SENet體系結構,在不同的數據集上非常有效地概括。我們進一步證明,SE塊在稍微增加計算成本的情況下,顯著改善了現有的最新cnn的性能。壓縮和激勵網絡是我們ILVRC 2017分類提交的基礎,它贏得了第一位,並將前5位錯誤減少到2.251%,超過了2016的獲勝條目,相對提高了25%。

關鍵詞:擠壓和激勵,圖像表示,注意,卷積神經網絡。

1 INTRODUCTION

進化神經網絡(CNNs)已被證明是處理各種視覺任務的有用模型[1]、[2]、[3]、[4]。在網絡中的每個卷積層,濾波器集合表示沿輸入信道的鄰域空間連接模式,將空間和信道信息在本地接收場中融合在一起。通過將一系列具有非線性激活函數和下采樣算子的卷積層交錯,CNNs能夠產生圖像表示,從而捕獲層次模式並獲得全局理論接收場。計算機視覺研究的一箇中心主題是尋找更強大的表現形式,這些表現形式只捕捉圖像中對給定任務最顯著的那些屬性,從而提高性能。作爲一個廣泛應用的視覺任務模型族,新的神經網絡體系結構設計的發展是這項研究的一個關鍵前沿。最近的研究表明,通過將學習機制集成到幫助捕獲特徵之間空間相關性的網絡中,CNNs生成的表示可以得到加強。其中一種由Inception系列體系結構[5]、[6]推廣的方法,將多尺度過程集成到網絡模塊中,以實現改進的性能。進一步的工作尋求更好的模型空間依賴性[7],[8],並將空間注意納入網絡的結構中[9]。

在本文中,我們研究了網絡設計的另一個方面——信道之間的關係。我們引入了一個新的體系結構單元,我們稱之爲擠壓和激勵(SE)塊,其目的是通過顯式地建模其卷積特徵的通道之間的相互依賴性來提高網絡產生的表示質量。爲此,我們提出了一種允許網絡執行特徵重新校準的機制,通過該機制,網絡可以學習使用全局信息來選擇性地強調信息性特徵,並抑制不太有用的特徵。

SE構建塊的結構如圖1所示。對於將輸入X映射到U∈RH×W×C的特徵映射U的任何給定變換,例如卷積,我們可以構造相應的SE塊來執行特徵重新校準。特徵U首先通過擠壓操作,擠壓操作通過聚集其空間維度(H×W)上的特徵映射來生成通道描述符。該描述符的功能是生成信道特徵響應的全局分佈的嵌入,允許來自網絡的全局接收場的信息被其所有層使用。聚合之後是一個激勵操作,它採用一個簡單的自選通機制的形式,該機制以嵌入作爲輸入,並生成每個信道調製權重的集合。這些權重應用於特徵映射U以生成SE塊的輸出,SE塊的輸出可直接饋入網絡的後續層。

通過簡單地疊加SE塊集合,可以構造SE網絡(SENet)。此外,這些SE區塊還可以在網絡拱的一定深度範圍內作爲原始區塊的替代品itecarXiv:1709.01507v4號[簡歷]2019年5月16日2圖1。擠壓和激勵塊。真的(第6.4節)。雖然構建基塊的模板是通用的,但它在整個網絡中在不同深度執行的角色不同。在早期的層中,它以類不可知的方式激發信息特性,加強了共享的低級表示。在隨後的層中,SE塊變得越來越專業化,並以高度特定於類的方式響應不同的輸入(第7.2節)。因此,SE塊執行的特徵重新校準的益處可以通過網絡累積。

 

 

 

                                                                                     圖1。擠壓和激勵塊。

設計和開發新的CNN體系結構是一項困難的工程任務,通常需要選擇許多新的超參數和層配置。相比之下,SE塊的結構簡單,可以直接用於現有的最先進的體系結構中,用SE塊替換組件,從而有效地提高性能。SE塊在計算上也是輕量級的,只會稍微增加模型的複雜性和計算負擔。

爲了爲這些聲明提供證據,我們開發了幾個senet,並對ImageNet數據集進行了廣泛的評估[10]。我們還展示了ImageNet之外的結果,這些結果表明我們的方法的好處並不侷限於特定的數據集或任務。通過使用SENets,我們在ILSVRC 2017分類比賽中排名第一。我們的最佳模型集成在測試集1上達到2.251%的前5個錯誤。與上一年的獲勝者相比(前5名的誤差爲2.991%),這意味着相對提高了25%。

2 RELATED WORK

更深層的架構。VGGNets[11]和Inception模型[5]表明,增加網絡的深度可以顯著提高網絡能夠學習的表示質量。通過調節輸入到每個層的分佈,批處理規範化(BN)[6]爲深度網絡中的學習過程增加了穩定性,併產生了更平滑的優化曲面[12]。在這些工作的基礎上,ResNets證明了通過使用基於身份的跳過連接來學習更深入、更強的網絡是可能的[13],[14]。公路網[15]引入了一種門控機制,以調節沿捷徑連接的信息流。在這些工作之後,對網絡層之間的連接進行了進一步的重新表述[16]、[17]、1。http://image-net.org/challenges/LSVRC/2017/results網站這顯示了對深度網絡的學習和表徵特性的有希望的改進。

另一個與此密切相關的研究方向是改進網絡中計算元素的功能形式。分組卷積已經被證明是增加學習到的變換基數的一種流行方法[18],[19]。多分支卷積[5]、[6]、[20]、[21]可以實現更靈活的算子組合,這可以看作是分組算子的自然擴展。在先前的工作中,交叉信道相關通常被映射爲新的特徵組合,獨立於空間結構[22]、[23]或通過使用具有1×1卷積的標準卷積濾波器[24]來聯合。這些研究大多集中在降低模型和計算複雜度的目標上,反映了一種假設,即信道關係可以表述爲具有局部接收場的實例不可知函數的組合。與此相反,我們認爲提供一種機制,利用全局信息來顯式地建模信道之間的動態、非線性依賴關係,可以簡化學習過程,顯著增強網絡的表示能力。

算法架構搜索。除了上述工作,還有一個豐富的研究歷史,旨在放棄手動架構設計,而是尋求自動學習網絡結構。這一領域的早期工作大多是在神經進化界進行的,他們建立了用進化方法搜索網絡拓撲的方法[25],[26]。雖然通常需要計算,但進化搜索已經取得了顯著的成功,其中包括爲序列模型[27]、[28]找到良好的存儲單元,以及學習用於大規模圖像分類的複雜體系結構[29]、[30]、[31]。爲了減少這些方法的計算負擔,基於Lamarckian繼承[32]和可微結構搜索[33]提出了這種方法的有效替代方案

通過將架構搜索定義爲超參數優化,隨機搜索[34]和其他更復雜的基於模型的優化技術[35],[36]也可用於解決該問題。拓撲選擇作爲通過可能設計的結構的路徑[37]和直接架構預測[38],[39]被提出作爲附加的可行架構搜索工具。通過強化學習[40]、[41]、[42]、[43]、[44]中的技巧,取得了特別顯著的效果。SE塊3可以用作這些搜索算法的原子構建塊,並且在併發工作中被證明是高效的。

注意和門控機制。注意可以被解釋爲將可用計算資源的分配偏向於信號的最具信息性部分的方法[46]、[47]、[48]、[49]、[50]、[51]。注意機制已經證明了它們在許多任務中的效用,包括序列學習[52],[53],[9],[54],[55],[56]和脣讀[57]。在這些應用中,它可以被合併爲一個運算符,跟隨一個或多個層,這些層代表用於模式之間適應的更高層次的抽象。一些作品對空間注意和通道注意的結合使用進行了有趣的研究[58],[59]。Wang等人。[58]引入了一種基於沙漏模塊[8]的強大主幹和掩模注意機制,該機制被插入到深度剩餘網絡的中間階段之間。相比之下,我們提出的SE塊包含一個輕量級的選通機制,該機制通過以計算效率高的方式建模信道關係,着重於增強網絡的表示能力。

3 SQUEEZE-AND-EXCITATION BLOCKS

壓縮和激勵塊是一個計算單元,它可以建立在將輸入X∈RH0×W0×C0映射到特徵映射U∈RH×W×C的變換上。在下面的符號中,我們將Ftrto作爲卷積算子,並使用V=[v1,v2。,vC]表示已學習的濾波器內核集,其中vC表示第c個濾波器的參數。然後我們可以把輸出寫成U=[u1,u2。,uC),其中

                                                

這裏*表示卷積,vc=[v1 c,v2c。,vC0 c),X=[x1,x2。,xC0]和uc∈RH×W.vs-cis一個二維空間核,表示作用在X的對應通道上的vc的單個通道。爲了簡化表示法,省略了偏置項。由於輸出是通過所有信道的求和產生的,信道依賴性隱式地嵌入到vc中,但與濾波器捕獲的局部空間相關性糾纏在一起。卷積建模的信道關係本質上是隱式的和局部的(除了最頂層的)。我們期望通過顯式地建模信道相關性來增強卷積特徵的學習,從而使網絡能夠增加對信息特徵的敏感度,這些信息特徵可以通過後續的轉換加以利用。因此,我們希望在將濾波器響應輸入下一個變換之前,通過擠壓和激勵兩個步驟爲其提供全局信息訪問和重新校準濾波器響應。圖1示出了示出SE塊的結構的圖。

3.1壓縮:全局信息嵌入爲了解決利用信道相關性的問題,我們首先在輸出特性中考慮到每個信道的信號。每個學習到的濾波器都使用一個本地接收場,因此轉換輸出U的每個單元都無法利用該區域之外的上下文信息。

爲了緩解這一問題,我們建議將全局空間信息壓縮到信道描述符中。這是通過使用全局平均池生成通道統計信息來實現的。形式上,一個統計z∈RCis由U通過其空間維度H×W收縮而產生,使得z的第c個元素計算如下:

討論。轉換U的輸出可以解釋爲局部描述符的集合,這些描述符的統計信息表示整個圖像。利用這些信息在先前的特徵工程工作中很流行[60]、[61]、[62]。我們選擇了最簡單的聚合技術global average pooling,注意到這裏也可以使用更復雜的策略。 

3.2激勵:自適應重新校準

爲了利用壓縮操作中聚集的信息,我們使用第二個操作來跟蹤它,該操作旨在完全捕獲通道依賴項。爲了實現這一目標,該功能必須滿足兩個標準:第一,它必須是靈活的(特別是,它必須能夠學習渠道之間的非線性相互作用);第二,它必須學習非互斥關係,因爲我們希望確保允許強調多個渠道(而不是強制執行一次熱啓動)。爲了滿足這些標準,我們選擇採用一種簡單的門控機制, sigmoid 函數:

其中δ是指ReLU[63]函數,W1∈R C R×C and W2∈R C×crr。爲了限制模型的複雜度並幫助推廣,我們通過在非線性周圍形成兩個完全連接(FC)層的瓶頸來參數化澆口機制,i、 e.具有降維比r的降維層(該參數的選擇在第6.1節中討論)、ReLU,然後是返回到變換輸出U的信道尺寸的降維層。通過使用激活重新縮放U獲得塊的最終輸出:

式中,ex=[e x1,e x2。,e xC]和Fscale(uc,sc)是指信道相乘b

討論。激勵算子將特定於輸入的描述符z映射到一組信道權重。在這方面,SE塊在本質上引入了以輸入爲條件的動力學,這可以被視爲通道上的自我注意功能,其關係不限於卷積濾波器響應的局部感受野。

3.3實例

SE塊可以通過在每次卷積之後的非線性之後插入而集成到標準架構中,例如VGGNet[11]。此外,SE塊的靈活性意味着它可以直接應用於標準卷積以外的變換。爲了說明這一點,我們通過將SE塊合併到幾個更復雜體系結構的示例中來開發senet,下面將進行描述。 

我們首先考慮初始網絡的SE塊的構造[5]。這裏,我們簡單地將轉換Ftrto看作一個完整的初始模塊(參見圖2),並且通過對架構中的每個這樣的模塊進行這種更改,我們獲得一個SE初始網絡。SE塊也可以直接用於剩餘網絡(圖3描繪了SE ResNet模塊的模式)。這裏,SE塊轉換ftri被認爲是剩餘模塊的非標識分支。擠壓和激發都在與恆等分支求和之前起作用。將SE塊與ResNeXt[19]、Inception ResNet[21]、MobileNet[64]和ShuffleNet[65]集成的進一步變體可以通過遵循類似的方案來構造。對於SENet架構的具體示例,表1給出了SE-ResNet-50和SE-ResNeXt-50的詳細描述。

SE塊的靈活特性的一個結果是,有幾種可行的方法可以將其集成到這些體系結構中。因此,爲了評估用於將SE塊合併到網絡架構中的集成策略的敏感性,我們還提供消融實驗,探索第6.5節中塊包含的不同設計。

爲了使所提出的SE塊設計具有實際應用價值,它必須在改進的性能和增加的模型複雜性之間提供一個很好的折衷。爲了說明與該模塊相關的計算負擔,我們以ResNet-50和SE-ResNet-50之間的比較爲例。ResNet-50對於224×224像素的輸入圖像,在一次前向過程中需要3.86 GFLOPs,擠壓階段的FC層在激發階段,然後是一個廉價的信道縮放操作。總的來說,當將還原率r(見第3.2節)設置爲16時,SE-ResNet-50需要3.87 GFLOPs,相對原始ResNet-50增加0.26%。作爲對這一微小額外計算負擔的交換,SE-ResNet-50的精度超過了ResNet-50,並且實際上接近需要7.58 GFLOPs的更深層ResNet-101網絡的精度(表2)。

實際上,向前和向後通過ResNet-50需要190 ms,而SE-ResNet-50則需要209 ms,訓練小批量256個圖像(這兩個計時都在一個服務器上執行,服務器上有8個NVIDIA Titan X gpu)。我們建議這代表了一個合理的運行時開銷,隨着在流行的GPU庫中全局池和小的內部產品操作得到進一步優化,該開銷可能會進一步減少。由於其在嵌入式設備應用中的重要性,我們進一步對每個模型的CPU推斷時間進行基準測試:對於224×224像素的輸入圖像,ResNet-50需要164ms,而SE-ResNet-50需要167ms。我們認爲,SE塊對模型性能的貢獻證明了SE塊產生的少量額外計算成本是合理的。

接下來我們考慮由提議的SE塊引入的附加參數。這些附加參數僅由選通機制的兩個FC層產生,因此構成總網絡容量的一小部分。具體地說,這些FC層的權重參數引入的總數由以下公式給出:

                                           

其中r表示縮減率,S表示級數(級數指在公共空間維度的特徵映射上操作的塊的集合),Cs表示輸出信道的維數,Ns表示級數S的重複塊的數目(當在FC層中使用偏置項時,引入的參數和計算成本通常可以忽略不計)。SE-ResNet-50在 

∼ResNet-50需要2500萬個參數,對應於∼10%的增長。實際上,這些參數中的大多數來自網絡的最後階段,在網絡的最後階段,勵磁操作是在最大數量的通道上執行的。然而,我們發現,這種相對昂貴的SE塊的最終階段可以僅以較小的性能成本(ImageNet上的前5位誤差小於0.1%)來移除,從而將相對參數增加減少到4%,這可能在參數使用是一個關鍵考慮因素的情況下被證明是有用的(有關進一步的討論,請參見第6.4節和第7.2節)。

原ResNeXt-101[19]採用ResNet-152[13]的塊堆疊策略。與此模型的設計和訓練(不使用SE塊)的進一步區別如下:(a)將每個瓶頸構建塊的前1×1卷積信道的數目減半,以在性能降低最小的情況下降低模型的計算成本。(b) 將第一個7×7卷積層替換爲三個連續的3×3卷積層。(c) 用3×3步長-2卷積代替步長-2卷積的1×1下采樣投影來保存信息。(d) 在分類層之前插入一個脫落層(脫落比爲0.2),以減少過度擬合。(e) 在訓練期間使用了Labelsmoothing正則化(如[20]中介紹的)。(f) 在最後幾個訓練階段凍結所有BN層的參數,以確保訓練和測試的一致性。(g) 使用8臺服務器(64 GPU)並行執行培訓,以實現大批量(2048)。初始學習率設置爲1.0。 

import torch.nn as nn
class SELayer(nn.Module):
def __init__(self, channel, reduction=16):
super(SELayer, self).__init__()
self.avgpool = nn.AdaptiveAvgPool2d(1)
self.fc = nn.Sequential(
nn.Linear(channel, channel//reduction,bias=False),
nn.ReLU(inplace=True),
nn.Linear(channel//reduction,channel, bias=False),
nn.Sigmoid()
)
def forward(self, x):
b,c,h,w = x.size()
y = self.avgpool(x).view(b,c)

y = self.fc(y).view(b,c,1,1)
return x * y.expand_as(x)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章