文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡書
聲明:作者翻譯論文僅為學習,如有侵權請聯系作者刪除博文,謝謝!
翻譯論文匯總:https://github.com/SnailTyan/deep-learning-papers-translation
Squeeze-and-Excitation Networks
摘要
卷積神經網絡建立在卷積運算的基礎上,通過融合局部感受野內的空間信息和通道信息來提取信息特征。為了提高網絡的表示能力,許多現有的工作已經顯示出增強空間編碼的好處。在這項工作中,我們專注于通道,并提出了一種新穎的架構單元,我們稱之為“Squeeze-and-Excitation”(SE)塊,通過顯式地建模通道之間的相互依賴關系,自適應地重新校準通道式的特征響應。通過將這些塊堆疊在一起,我們證明了我們可以構建SENet架構,在具有挑戰性的數據集中可以進行泛化地非常好。關鍵的是,我們發現SE塊以微小的計算成本為現有的最先進的深層架構產生了顯著的性能改進。SENets是我們ILSVRC 2017分類提交的基礎,它贏得了第一名,并將top-5
錯誤率顯著減少到$2.251 %$,相對于2016年的獲勝成績取得了$\sim25%$的相對改進。
1. 引言
卷積神經網絡(CNNs)已被證明是解決各種視覺任務的有效模型[19,23,29,41]。對于每個卷積層,沿著輸入通道學習一組濾波器來表達局部空間連接模式。換句話說,期望卷積濾波器通過融合空間信息和信道信息進行信息組合,而受限于局部感受野。通過疊加一系列非線性和下采樣交織的卷積層,CNN能夠捕獲具有全局感受野的分層模式作為強大的圖像描述。最近的工作已經證明,網絡的性能可以通過顯式地嵌入學習機制來改善,這種學習機制有助于捕捉空間相關性而不需要額外的監督。Inception架構推廣了一種這樣的方法[14,39],這表明網絡可以通過在其模塊中嵌入多尺度處理來取得有競爭力的準確度。最近的工作在尋找更好地模型空間依賴[1,27],結合空間注意力[17]。
與這些方法相反,通過引入新的架構單元,我們稱之為“Squeeze-and-Excitation” (SE)塊,我們研究了架構設計的一個不同方向——通道關系。我們的目標是通過顯式地建模卷積特征通道之間的相互依賴性來提高網絡的表示能力。為了達到這個目的,我們提出了一種機制,使網絡能夠執行特征重新校準,通過這種機制可以學習使用全局信息來選擇性地強調信息特征并抑制不太有用的特征。
SE構建塊的基本結構如圖1所示。對于任何給定的變換$\mathbf{F}_{tr} : \mathbf{X} \rightarrow \mathbf{U}$, $\mathbf{X} \in \mathbb{R}^{W' \times H' \times C'}, \mathbf{U} \in \mathbb{R}^{W \times H \times C}$,(例如卷積或一組卷積),我們可以構造一個相應的SE塊來執行特征重新校準,如下所示。特征$\mathbf{U}$首先通過squeeze操作,該操作跨越空間維度$W \times H$聚合特征映射來產生通道描述符。這個描述符嵌入了通道特征響應的全局分布,使來自網絡全局感受野的信息能夠被其較低層利用。這之后是一個excitation操作,其中通過基于通道依賴性的自門機制為每個通道學習特定采樣的激活,控制每個通道的激勵。然后特征映射$\mathbf{U}$被重新加權以生成SE塊的輸出,然后可以將其直接輸入到隨后的層中。
圖1. Squeeze-and-Excitation塊
SE網絡可以通過簡單地堆疊SE構建塊的集合來生成。SE塊也可以用作架構中任意深度的原始塊的直接替換。然而,雖然構建塊的模板是通用的,正如我們6.3節中展示的那樣,但它在不同深度的作用適應于網絡的需求。在前面的層中,它學習以類不可知的方式激發信息特征,增強共享的較低層表示的質量。在后面的層中,SE塊越來越專業化,并以高度類特定的方式響應不同的輸入。因此,SE塊進行特征重新校準的好處可以通過整個網絡進行累積。
新CNN架構的開發是一項具有挑戰性的工程任務,通常涉及許多新的超參數和層配置的選擇。相比之下,上面概述的SE塊的設計是簡單的,并且可以直接與現有的最新架構一起使用,其卷積層可以通過直接用對應的SE層來替換從而進行加強。另外,如第四節所示,SE塊在計算上是輕量級的,并且在模型復雜性和計算負擔方面僅稍微增加。為了支持這些聲明,我們開發了一些SENets,即SE-ResNet,SE-Inception,SE-ResNeXt和SE-Inception-ResNet,并在ImageNet 2012數據集[30]上對SENets進行了廣泛的評估。此外,為了證明SE塊的一般適用性,我們還呈現了ImageNet之外的結果,表明所提出的方法不受限于特定的數據集或任務。
使用SENets,我們贏得了ILSVRC 2017分類競賽的第一名。我們的表現最好的模型集合在測試集上達到了$2.251%$的top-5
錯誤率。與前一年的獲獎者($2.991%$的top-5
錯誤率)相比,這表示$\sim 25%$的相對改進。我們的模型和相關材料已經提供給研究界。
2. 近期工作
深層架構。大量的工作已經表明,以易于學習深度特征的方式重構卷積神經網絡的架構可以大大提高性能。VGGNets[35]和Inception模型[39]證明了深度增加可以獲得的好處,明顯超過了ILSVRC 2014之前的方法。批標準化(BN)[14]通過插入單元來調節層輸入穩定學習過程,改善了通過深度網絡的梯度傳播,這使得可以用更深的深度進行進一步的實驗。He等人[9,10]表明,通過重構架構來訓練更深層次的網絡是有效的,通過使用基于恒等映射的跳躍連接來學習殘差函數,從而減少跨單元的信息流動。最近,網絡層間連接的重新表示[5,12]已被證明可以進一步改善深度網絡的學習和表征屬性。
另一種研究方法探索了調整網絡模塊化組件功能形式的方法。可以用分組卷積來增加基數(一組變換的大小)[13,43]以學習更豐富的表示。多分支卷積可以解釋為這個概念的概括,使得卷積算子可以更靈活的組合[14,38,39,40]。跨通道相關性通常被映射為新的特征組合,或者獨立的空間結構[6,18],或者聯合使用標準卷積濾波器[22]和$1\times 1$卷積,然而大部分工作的目標是集中在減少模型和計算復雜度上面。這種方法反映了一個假設,即通道關系可以被表述為具有局部感受野的實例不可知的函數的組合。相比之下,我們聲稱為網絡提供一種機制來顯式建模通道之間的動態、非線性依賴關系,使用全局信息可以減輕學習過程,并且顯著增強網絡的表示能力。
注意力和門機制。從廣義上講,可以將注意力視為一種工具,將可用處理資源的分配偏向于輸入信號的信息最豐富的組成部分。這種機制的發展和理解一直是神經科學社區的一個長期研究領域[15,16,28],并且近年來作為一個強大補充,已經引起了深度神經網絡的極大興趣[20,25]。注意力已經被證明可以改善一系列任務的性能,從圖像的定位和理解[3,17]到基于序列的模型[2,24]。它通常結合門功能(例如softmax或sigmoid)和序列技術來實現[11,37]。最近的研究表明,它適用于像圖像標題[4,44]和口頭閱讀[7]等任務,其中利用它來有效地匯集多模態數據。在這些應用中,它通常用在表示較高級別抽象的一個或多個層的頂部,以用于模態之間的適應。高速網絡[36]采用門機制來調節快捷連接,使得可以學習非常深的架構。王等人[42]受到語義分割成功的啟發,引入了一個使用沙漏模塊[27]的強大的trunk-and-mask注意力機制。這個高容量的單元被插入到中間階段之間的深度殘差網絡中。相比之下,我們提出的SE塊是一個輕量級的門機制,專門用于以計算有效的方式對通道關系進行建模,并設計用于增強整個網絡中模塊的表示能力。
3. Squeeze-and-Excitation塊
Squeeze-and-Excitation塊是一個計算單元,可以為任何給定的變換構建:$\mathbf{F}_{tr}: \mathbf{X} \rightarrow \mathbf{U}, , \mathbf{X} \in \mathbb{R}^{W' \times H' \times C'}, \mathbf{U} \in \mathbb{R}^{W \times H \times C}$。為了簡化說明,在接下來的表示中,我們將$\mathbf{F}_{tr}$看作一個標準的卷積算子。$\mathbf{V}= [\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_{C}]$表示學習到的一組濾波器核,$\mathbf{v}_c$指的是第$c$個濾波器的參數。然后我們可以將$\mathbf{F}_{tr}$的輸出寫作$\mathbf{U} = [\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_{C}]$,其中$$\mathbf{u}_c = \mathbf{v}_c \ast \mathbf{X} = \sum_{s=1}{C'}\mathbf{v}s_c \ast \mathbf{x}^s.$$這里$\ast$表示卷積,$\mathbf{v}_c = [\mathbf{v}^1_c, \mathbf{v}^2_c, \dots, \mathbf{v}^{C'}_c]$,$\mathbf{X} = [\mathbf{x}^1, \mathbf{x}^2, \dots, \mathbf{x}{C'}]$(為了簡潔表示,忽略偏置項)。這里$\mathbf{v}s_c$是$2$D空間核,因此表示$\mathbf{v}_c$的一個單通道,作用于對應的通道$\mathbf{X}$。由于輸出是通過所有通道的和來產生的,所以通道依賴性被隱式地嵌入到$\mathbf{v}_c$中,但是這些依賴性與濾波器捕獲的空間相關性糾纏在一起。我們的目標是確保能夠提高網絡對信息特征的敏感度,以便后續轉換可以利用這些功能,并抑制不太有用的功能。我們建議通過顯式建模通道依賴性來實現這一點,以便在進入下一個轉換之前通過兩步重新校準濾波器響應,兩步為:squeeze和excitation。SE構建塊的圖如圖1所示。
3.1. Squeeze:全局信息嵌入
為了解決利用通道依賴性的問題,我們首先考慮輸出特征中每個通道的信號。每個學習到的濾波器都對局部感受野進行操作,因此變換輸出$\mathbf{U}$的每個單元都無法利用該區域之外的上下文信息。在網絡較低的層次上其感受野尺寸很小,這個問題變得更嚴重。
討論。轉換輸出$\mathbf{U}$可以被解釋為局部描述子的集合,這些描述子的統計信息對于整個圖像來說是有表現力的。特征工程工作中[31,34,45]普遍使用這些信息。我們選擇最簡單的全局平均池化,同時也可以采用更復雜的匯聚策略。
3.2. Excitation:自適應重新校正
為了利用壓縮操作中匯聚的信息,我們接下來通過第二個操作來全面捕獲通道依賴性。為了實現這個目標,這個功能必須符合兩個標準:第一,它必須是靈活的(特別是它必須能夠學習通道之間的非線性交互);第二,它必須學習一個非互斥的關系,因為獨熱激活相反,這里允許強調多個通道。為了滿足這些標準,我們選擇采用一個簡單的門機制,并使用sigmoid激活:$$\mathbf{s} = \mathbf{F}_{ex}(\mathbf{z}, \mathbf{W}) = \sigma(g(\mathbf{z}, \mathbf{W})) = \sigma(\mathbf{W}_2\delta(\mathbf{W}_1\mathbf{z}))$$,其中$\delta$是指ReLU[26]函數,$\mathbf{W}_1 \in \mathbb{R}^{\frac{C}{r} \times C}$和$\mathbf{W}_2 \in \mathbb{R}^{C \times \frac{C}{r}}$。為了限制模型復雜度和輔助泛化,我們通過在非線性周圍形成兩個全連接(FC)層的瓶頸來參數化門機制,即降維層參數為$\mathbf{W}_1$,降維比例為$r$(我們把它設置為16,這個參數選擇在6.3節中討論),一個ReLU,然后是一個參數為$\mathbf{W}_2$的升維層。塊的最終輸出通過重新調節帶有激活的變換輸出$\mathbf{U}$得到:$$\widetilde{\mathbf{x}}_c = \mathbf{F}_{scale}(\mathbf{u}_c, s_c) = s_c \cdot \mathbf{u}_c$$其中$\widetilde{\mathbf{X}} = [\widetilde{\mathbf{x}}_1, \widetilde{\mathbf{x}}_2, \dots, \widetilde{\mathbf{x}}_{C}]$和$\mathbf{F}_{scale}(\mathbf{u}_c, s_c)$指的是特征映射$\mathbf{u}_c \in \mathbb{R}^{W \times H}$和標量$s_c$之間的對應通道乘積。
討論。激活作為適應特定輸入描述符$\mathbf{z}$的通道權重。在這方面,SE塊本質上引入了以輸入為條件的動態特性,有助于提高特征辨別力。
3.3. 模型:SE-Inception和SE-ResNet
SE塊的靈活性意味著它可以直接應用于標準卷積之外的變換。為了說明這一點,我們通過將SE塊集成到兩個流行的網絡架構系列Inception和ResNet中來開發SENets。通過將變換$\mathbf{F}_{tr}$看作一個整體的Inception模塊(參見圖2),為Inception網絡構建SE塊。通過對架構中的每個模塊進行更改,我們構建了一個SE-Inception網絡。
圖2。最初的Inception模塊架構(左)和SE-Inception模塊(右)。
殘留網絡及其變種已經證明在學習深度表示方面非常有效。我們開發了一系列的SE塊,分別與ResNet[9],ResNeXt[43]和Inception-ResNet[38]集成。圖3描述了SE-ResNet模塊的架構。在這里,SE塊變換$\mathbf{F}_{tr}$被認為是殘差模塊的非恒等分支。壓縮和激勵都在恒等分支相加之前起作用。
圖3。 最初的Residual模塊架構(左)和SE-ResNet模塊架構(右)。
4. 模型和計算復雜度
SENet通過堆疊一組SE塊來構建。實際上,它是通過用原始塊的SE對應部分(即SE殘差塊)替換每個原始塊(即殘差塊)而產生的。我們在表1中描述了SE-ResNet-50和SE-ResNeXt-50的架構。
表1。(左)ResNet-50,(中)SE-ResNet-50,(右)具有$32\times 4d$模板的SE-ResNeXt-50。在括號內列出了殘差構建塊特定參數設置的形狀和操作,并且在外部呈現了一個階段中堆疊塊的數量。fc后面的內括號表示SE模塊中兩個全連接層的輸出維度。
在實踐中提出的SE塊是可行的,它必須提供可接受的模型復雜度和計算開銷,這對于可伸縮性是重要的。為了說明模塊的成本,作為例子我們比較了ResNet-50和SE-ResNet-50,其中SE-ResNet-50的精確度明顯優于ResNet-50,接近更深的ResNet-101網絡(如表2所示)。對于$224\times 224$像素的輸入圖像,ResNet-50單次前向傳播需要$\sim$ 3.86 GFLOP。每個SE塊利用壓縮階段的全局平均池化操作和激勵階段中的兩個小的全連接層,接下來是廉價的通道縮放操作。總的來說,SE-ResNet-50需要$\sim$ 3.87 GFLOP,相對于原始的ResNet-50只相對增加了$0.26%$。
表2。ImageNet驗證集上的單裁剪圖像錯誤率(%)和復雜度比較。original
列是指原始論文中報告的結果。為了進行公平比較,我們重新訓練了基準模型,并在re-implementation
列中報告分數。SENet
列是指已添加SE塊后對應的架構。括號內的數字表示與重新實現的基準數據相比的性能改善。?表示該模型已經在驗證集的非黑名單子集上進行了評估(在[38]中有更詳細的討論),這可能稍微改善結果。
在實踐中,訓練的批數據大小為256張圖像,ResNet-50的一次前向傳播和反向傳播花費$190$ ms,而SE-ResNet-50則花費$209$ ms(兩個時間都在具有$8$個NVIDIA Titan X GPU的服務器上執行)。我們認為這是一個合理的開銷,因為在現有的GPU庫中,全局池化和小型內積操作的優化程度較低。此外,由于其對嵌入式設備應用的重要性,我們還對每個模型的CPU推斷時間進行了基準測試:對于$224\times 224$像素的輸入圖像,ResNet-50花費了$164$ms,相比之下,SE-ResNet-$50$花費了$167$ms。SE塊所需的小的額外計算開銷對于其對模型性能的貢獻來說是合理的(在第6節中詳細討論)。
接下來,我們考慮所提出的塊引入的附加參數。所有附加參數都包含在門機制的兩個全連接層中,構成網絡總容量的一小部分。更確切地說,引入的附加參數的數量由下式給出:$$\frac{2}{r} \sum_{s=1}^S N_s \cdot {C_s}^2$$其中$r$表示減少比率(我們在所有的實驗中將$r$設置為$16$),$S$指的是階段數量(每個階段是指在共同的空間維度的特征映射上運行的塊的集合),$C_s$表示階段$s$的輸出通道的維度,$N_s$表示重復的塊編號。總的來說,SE-ResNet-50在ResNet-50所要求的$\sim$2500萬參數之外引入了$\sim$250萬附加參數,相對增加了$\sim 10%$的參數總數量。這些附加參數中的大部分來自于網絡的最后階段,其中激勵在最大的通道維度上執行。然而,我們發現SE塊相對昂貴的最終階段可以在性能的邊際成本(ImageNet數據集上$<0.1 %$的top-1錯誤率)上被移除,將相對參數增加減少到$\sim 4%$,這在參數使用是關鍵考慮的情況下可能證明是有用的。
5. 實現
在訓練過程中,我們遵循標準的做法,使用隨機大小裁剪[39]到$224\times 224$像素($299\times 299$用于Inception-ResNet-v2[38]和SE-Inception-ResNet-v2)和隨機的水平翻轉進行數據增強。輸入圖像通過通道減去均值進行歸一化。另外,我們采用[32]中描述的數據均衡策略進行小批量采樣,以補償類別的不均勻分布。網絡在我們的分布式學習系統“ROCS”上進行訓練,能夠處理大型網絡的高效并行訓練。使用同步SGD進行優化,動量為0.9,小批量數據的大小為1024(在4個服務器的每個GPU上分成32張圖像的子批次,每個服務器包含8個GPU)。初始學習率設為0.6,每30個迭代周期減少10倍。使用[8]中描述的權重初始化策略,所有模型都從零開始訓練100個迭代周期。
6. 實驗
在這一部分,我們在ImageNet 2012數據集上進行了大量的實驗[30],其目的是:首先探索提出的SE塊對不同深度基礎網絡的影響;其次,調查它與最先進的網絡架構集成后的能力,旨在公平比較SENets和非SENets,而不是推動性能。接下來,我們將介紹ILSVRC 2017分類任務模型的結果和詳細信息。此外,我們在Places365-Challenge場景分類數據集[48]上進行了實驗,以研究SENets是否能夠很好地泛化到其它數據集。最后,我們研究激勵的作用,并根據實驗現象給出了一些分析。
6.1. ImageNet分類
ImageNet 2012數據集包含來自1000個類別的128萬張訓練圖像和5萬張驗證圖像。我們在訓練集上訓練網絡,并在驗證集上使用中心裁剪圖像評估來報告top-1
和top-5
錯誤率,其中每張圖像短邊首先歸一化為256,然后從每張圖像中裁剪出$224\times 224$個像素,(對于Inception-ResNet-v2和SE-Inception-ResNet-v2,每幅圖像的短邊首先歸一化到352,然后裁剪出$299\times 299$個像素)。
網絡深度。我們首先將SE-ResNet與一系列標準ResNet架構進行比較。每個ResNet及其相應的SE-ResNet都使用相同的優化方案進行訓練。驗證集上不同網絡的性能如表2所示,表明SE塊在不同深度上的網絡上計算復雜度極小增加,始終提高性能。
值得注意的是,SE-ResNet-50實現了單裁剪圖像$6.62%$的top-5
驗證錯誤率,超過了ResNet-50($7.48%$)$0.86%$,接近更深的ResNet-101網絡($6.52%$的top-5
錯誤率),且只有ResNet-101一半的計算開銷($3.87$ GFLOPs vs. $7.58$ GFLOPs)。這種模式在更大的深度上重復,SE-ResNet-101($6.07%$的top-5
錯誤率)不僅可以匹配,而且超過了更深的ResNet-152網絡($6.34%$的top-5
錯誤率)。圖4分別描繪了SE-ResNets和ResNets的訓練和驗證曲線。雖然應該注意SE塊本身增加了深度,但是它們的計算效率極高,即使在擴展的基礎架構的深度達到收益遞減的點上也能產生良好的回報。而且,我們看到通過對各種不同深度的訓練,性能改進是一致的,這表明SE塊引起的改進可以與增加基礎架構更多深度結合使用。
圖4。ImageNet上的訓練曲線。(左):ResNet-50和SE-ResNet-50;(右):ResNet-152和SE-ResNet-152。
與現代架構集成。接下來我們將研究SE塊與另外兩種最先進的架構Inception-ResNet-v2[38]和ResNeXt[43]的結合效果。Inception架構將卷積模塊構造為分解濾波器的多分支組合,反映了Inception假設[6],可以獨立映射空間相關性和跨通道相關性。相比之下,ResNeXt體架構斷言,可以通過聚合稀疏連接(在通道維度中)卷積特征的組合來獲得更豐富的表示。兩種方法都在模塊中引入了先前結構化的相關性。我們構造了這些網絡的SENet等價物,SE-Inception-ResNet-v2和SE-ResNeXt(表1給出了SE-ResNeXt-50($32\times 4d$)的配置)。像前面的實驗一樣,原始網絡和它們對應的SENet網絡都使用相同的優化方案。
表2中給出的結果說明在將SE塊引入到兩種架構中會引起顯著的性能改善。尤其是SE-ResNeXt-50的top-5
錯誤率是$5.49%$,優于于它直接對應的ResNeXt-50($5.90%$的top-5
錯誤率)以及更深的ResNeXt-101($5.57%$的top-5
錯誤率),這個模型幾乎有兩倍的參數和計算開銷。對于Inception-ResNet-v2的實驗,我們猜測可能是裁剪策略的差異導致了其報告結果與我們重新實現的結果之間的差距,因為它們的原始圖像大小尚未在[38]中澄清,而我們從相對較大的圖像(其中較短邊被歸一化為352)中裁剪出$299\times 299$大小的區域。SE-Inception-ResNet-v2($4.79%$的top-5
錯誤率)比我們重新實現的Inception-ResNet-v2($5.21%$的top-5
錯誤率)要低$0.42%$(相對改進了$8.1%$)也優于[38]中報告的結果。每個網絡的優化曲線如圖5所示,說明了在整個訓練過程中SE塊產生了一致的改進。
圖5。ImageNet的訓練曲線。(左): ResNeXt-50和SE-ResNeXt-50;(右):Inception-ResNet-v2和SE-Inception-ResNet-v2。
最后,我們通過對BN-Inception架構[14]進行實驗來評估SE塊在非殘差網絡上的效果,該架構在較低的模型復雜度下提供了良好的性能。比較結果如表2所示,訓練曲線如圖6所示,表現出的現象與殘差架構中出現的現象一樣。尤其是與BN-Inception $7.89%$的錯誤率相比,SE-BN-Inception獲得了更低$7.14%$的top-5
錯誤。這些實驗表明SE塊引起的改進可以與多種架構結合使用。而且,這個結果適用于殘差和非殘差基礎。
圖6。BN-Inception和SE-BN-Inception在ImageNet上的訓練曲線。
ILSVRC 2017分類競賽的結果。ILSVRC[30]是一個年度計算機視覺競賽,被證明是圖像分類模型發展的沃土。ILSVRC 2017分類任務的訓練和驗證數據來自ImageNet 2012數據集,而測試集包含額外的未標記的10萬張圖像。為了競爭的目的,使用top-5
錯誤率度量來對輸入條目進行排序。
SENets是我們在挑戰中贏得第一名的基礎。我們的獲勝輸入由一小群SENets組成,它們采用標準的多尺度和多裁剪圖像融合策略,在測試集上獲得了$2.251%$的top-5
錯誤率。這個結果表示在2016年獲勝輸入($2.99%$的top-5
錯誤率)的基礎上相對改進了$\sim 25%$。我們的高性能網絡之一是將SE塊與修改后的ResNeXt[43]集成在一起構建的(附錄A提供了這些修改的細節)。在表3中我們將提出的架構與最新的模型在ImageNet驗證集上進行了比較。我們的模型在每一張圖像使用$224\times 224$中間裁剪評估(短邊首先歸一化到256)取得了$18.68%$的top-1
錯誤率和$4.47%$的top-5
錯誤率。為了與以前的模型進行公平的比較,我們也提供了$320\times 320$的中心裁剪圖像評估,在top-1
($17.28%$)和top-5
($3.79%$)的錯誤率度量中獲得了最低的錯誤率。
表3。最新的CNNs在ImageNet驗證集上單裁剪圖像的錯誤率。測試的裁剪圖像大小是$224\times 224$和[10]中的$320\times 320$/$299\times299$。與前面的工作相比,我們提出的模型SENet表現出了顯著的改進。
6.2. 場景分類
ImageNet數據集的大部分由單個對象支配的圖像組成。為了在更多不同的場景下評估我們提出的模型,我們還在Places365-Challenge數據集[48]上對場景分類進行評估。該數據集包含800萬張訓練圖像和365個類別的36500張驗證圖像。相對于分類,場景理解的任務可以更好地評估模型泛化和處理抽象的能力,因為它需要捕獲更復雜的數據關聯以及對更大程度外觀變化的魯棒性。
我們使用ResNet-152作為強大的基線來評估SE塊的有效性,并遵循[33]中的評估協議。表4顯示了針對給定任務訓練ResNet-152模型和SE-ResNet-152的結果。具體而言,SE-ResNet-152($11.01%$的top-5
錯誤率)取得了比ResNet-152($11.61%$的top-5
錯誤率)更低的驗證錯誤率,證明了SE塊可以在不同的數據集上表現良好。這個SENet超過了先前的最先進的模型Places-365-CNN [33],它在這個任務上有$11.48%$的top-5
錯誤率。
表4。Places365驗證集上的單裁剪圖像錯誤率(%)。
6.3. 分析和討論
減少比率。公式(5)中引入的減少比率$r$是一個重要的超參數,它允許我們改變模型中SE塊的容量和計算成本。為了研究這種關系,我們基于SE-ResNet-50架構進行了一系列不同$r$值的實驗。表5中的比較表明,性能并沒有隨著容量的增加而單調上升。這可能是使SE塊能夠過度擬合訓練集通道依賴性的結果。尤其是我們發現設置$r=16$在精度和復雜度之間取得了很好的平衡,因此我們將這個值用于所有的實驗。
表5。 ImageNet驗證集上單裁剪圖像的錯誤率(%)和SE-ResNet-50架構在不同減少比率$r$下的模型大小。這里original
指的是ResNet-50。
激勵的作用。雖然SE塊從經驗上顯示出其可以改善網絡性能,但我們也想了解自門激勵機制在實踐中是如何運作的。為了更清楚地描述SE塊的行為,本節我們研究SE-ResNet-50模型的樣本激活,并考察它們在不同塊不同類別下的分布情況。具體而言,我們從ImageNet數據集中抽取了四個類,這些類表現出語義和外觀多樣性,即金魚,哈巴狗,刨和懸崖(圖7中顯示了這些類別的示例圖像)。然后,我們從驗證集中為每個類抽取50個樣本,并計算每個階段最后的SE塊中50個均勻采樣通道的平均激活(緊接在下采樣之前),并在圖8中繪制它們的分布。作為參考,我們也繪制所有1000個類的平均激活分布。
圖7。ImageNet中四個類別的示例圖像。
圖8。SE-ResNet-50不同模塊在ImageNet上由Excitation引起的激活。模塊名為“SE stageID blockID”。
我們對SENets中Excitation的作用提出以下三點看法。首先,不同類別的分布在較低層中幾乎相同,例如,SE_2_3。這表明在網絡的最初階段特征通道的重要性很可能由不同的類別共享。然而有趣的是,第二個觀察結果是在更大的深度,每個通道的值變得更具類別特定性,因為不同類別對特征的判別性值具有不同的偏好。SE_4_6和SE_5_1。這兩個觀察結果與以前的研究結果一致[21,46],即低層特征通常更普遍(即分類中不可知的類別),而高層特征具有更高的特異性。因此,表示學習從SE塊引起的重新校準中受益,其自適應地促進特征提取和專業化到所需要的程度。最后,我們在網絡的最后階段觀察到一個有些不同的現象。SE_5_2呈現出朝向飽和狀態的有趣趨勢,其中大部分激活接近于1,其余激活接近于0。在所有激活值取1的點處,該塊將成為標準殘差塊。在網絡的末端SE_5_3中(在分類器之前緊接著是全局池化),類似的模式出現在不同的類別上,尺度上只有輕微的變化(可以通過分類器來調整)。這表明,SE_5_2和SE_5_3在為網絡提供重新校準方面比前面的塊更不重要。這一發現與第四節實證研究的結果是一致的,這表明,通過刪除最后一個階段的SE塊,總體參數數量可以顯著減少,性能只有一點損失(<$0.1%$的top-1
錯誤率)。
7. 結論
在本文中,我們提出了SE塊,這是一種新穎的架構單元,旨在通過使網絡能夠執行動態通道特征重新校準來提高網絡的表示能力。大量實驗證明了SENets的有效性,其在多個數據集上取得了最先進的性能。此外,它們還提供了一些關于以前架構在建模通道特征依賴性上的局限性的洞察,我們希望可能證明SENets對其它需要強判別性特征的任務是有用的。最后,由SE塊引起的特征重要性可能有助于相關領域,例如為了壓縮的網絡修剪。
致謝。我們要感謝Andrew Zisserman教授的有益評論,并感謝Samuel Albanie的討論并校訂論文。我們要感謝Chao Li在訓練系統內存優化方面的貢獻。Li Shen由國家情報總監(ODNI),先期研究計劃中心(IARPA)資助,合同號為2014-14071600010。本文包含的觀點和結論屬于作者的觀點和結論,不應理解為ODNI,IARPA或美國政府明示或暗示的官方政策或認可。盡管有任何版權注釋,美國政府有權為政府目的復制和分發重印。
References
[1] S. Bell, C. L. Zitnick, K. Bala, and R. Girshick. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In CVPR, 2016.
[2] T. Bluche. Joint line segmentation and transcription for end-to-end handwritten paragraph recognition. In NIPS, 2016.
[3] C.Cao, X.Liu, Y.Yang, Y.Yu, J.Wang, Z.Wang, Y.Huang, L. Wang, C. Huang, W. Xu, D. Ramanan, and T. S. Huang. Look and think twice: Capturing top-down visual attention with feedback convolutional neural networks. In ICCV, 2015.
[4] L. Chen, H. Zhang, J. Xiao, L. Nie, J. Shao, W. Liu, and T. Chua. SCA-CNN: Spatial and channel-wise attention in convolutional networks for image captioning. In CVPR, 2017.
[5] Y. Chen, J. Li, H. Xiao, X. Jin, S. Yan, and J. Feng. Dual path networks. arXiv:1707.01629, 2017.
[6] F. Chollet. Xception: Deep learning with depthwise separable convolutions. In CVPR, 2017.
[7] J. S. Chung, A. Senior, O. Vinyals, and A. Zisserman. Lip reading sentences in the wild. In CVPR, 2017.
[8] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. In ICCV, 2015.
[9] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016.
[10] K. He, X. Zhang, S. Ren, and J. Sun. Identity mappings in deep residual networks. In ECCV, 2016.
[11] S. Hochreiter and J. Schmidhuber. Long short-term memory. Neural computation, 1997.
[12] G. Huang, Z. Liu, K. Q. Weinberger, and L. Maaten. Densely connected convolutional networks. In CVPR, 2017.
[13] Y. Ioannou, D. Robertson, R. Cipolla, and A. Criminisi. Deep roots: Improving CNN efficiency with hierarchical filter groups. In CVPR, 2017.
[14] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015.
[15] L. Itti and C. Koch. Computational modelling of visual attention. Nature reviews neuroscience, 2001.
[16] L. Itti, C. Koch, and E. Niebur. A model of saliency-based visual attention for rapid scene analysis. IEEE TPAMI, 1998.
[17] M. Jaderberg, K. Simonyan, A. Zisserman, and K. Kavukcuoglu. Spatial transformer networks. In NIPS, 2015.
[18] M. Jaderberg, A. Vedaldi, and A. Zisserman. Speeding up convolutional neural networks with low rank expansions. In BMVC, 2014.
[19] A. Krizhevsky, I. Sutskever, and G. E. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012.
[20] H. Larochelle and G. E. Hinton. Learning to combine foveal glimpses with a third-order boltzmann machine. In NIPS, 2010.
[21] H. Lee, R. Grosse, R. Ranganath, and A. Y. Ng. Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. In ICML, 2009.
[22] M. Lin, Q. Chen, and S. Yan. Network in network. arXiv:1312.4400, 2013.
[23] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.
[24] A. Miech, I. Laptev, and J. Sivic. Learnable pooling with context gating for video classification. arXiv:1706.06905, 2017.
[25] V. Mnih, N. Heess, A. Graves, and K. Kavukcuoglu. Recurrent models of visual attention. In NIPS, 2014.
[26] V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In ICML, 2010.
[27] A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. In ECCV, 2016.
[28] B. A. Olshausen, C. H. Anderson, and D. C. V. Essen. A neurobiological model of visual attention and invariant pattern recognition based on dynamic routing of information. Journal of Neuroscience, 1993.
[29] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS, 2015.
[30] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet large scale visual recognition challenge. IJCV, 2015.
[31] J. Sanchez, F. Perronnin, T. Mensink, and J. Verbeek. Image classification with the fisher vector: Theory and practice. RR-8209, INRIA, 2013.
[32] L. Shen, Z. Lin, and Q. Huang. Relay backpropagation for effective learning of deep convolutional neural networks. In ECCV, 2016.
[33] L. Shen, Z. Lin, G. Sun, and J. Hu. Places401 and places365 models. https://github.com/lishen-shirley/ Places2-CNNs, 2016.
[34] L. Shen, G. Sun, Q. Huang, S. Wang, Z. Lin, and E. Wu. Multi-level discriminative dictionary learning with application to large scale image classification. IEEE TIP, 2015.
[35] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.
[36] R. K. Srivastava, K. Greff, and J. Schmidhuber. Training very deep networks. In NIPS, 2015.
[37] M. F. Stollenga, J. Masci, F. Gomez, and J. Schmidhuber. Deep networks with internal selective attention through feedback connections. In NIPS, 2014.
[38] C.Szegedy, S.Ioffe, V.Vanhoucke, and A.Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. arXiv:1602.07261, 2016.
[39] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. In CVPR, 2015.
[40] C.Szegedy, V.Vanhoucke, S.Ioffe, J.Shlens, and Z.Wojna. Rethinking the inception architecture for computer vision. In CVPR, 2016.
[41] A. Toshev and C. Szegedy. DeepPose: Human pose estimation via deep neural networks. In CVPR, 2014.
[42] F. Wang, M. Jiang, C. Qian, S. Yang, C. Li, H. Zhang, X. Wang, and X. Tang. Residual attention network for image classification. In CVPR, 2017.
[43] S. Xie, R. Girshick, P. Dollar, Z. Tu, and K. He. Aggregated residual transformations for deep neural networks. In CVPR, 2017.
[44] K. Xu, J. Ba, R. Kiros, K. Cho, A. Courville, R. Salakhudinov, R. Zemel, and Y. Bengio. Show, attend and tell: Neural image caption generation with visual attention. In ICML, 2015.
[45] J. Yang, K. Yu, Y. Gong, and T. Huang. Linear spatial pyramid matching using sparse coding for image classification. In CVPR, 2009.
[46] J. Yosinski, J. Clune, Y. Bengio, and H. Lipson. How transferable are features in deep neural networks? In NIPS, 2014.
[47] X. Zhang, Z. Li, C. C. Loy, and D. Lin. Polynet: A pursuit of structural diversity in very deep networks. In CVPR, 2017.
[48] B. Zhou, A. Lapedriza, A. Khosla, A. Oliva, and A. Torralba. Places: A 10 million image database for scene recognition. IEEE TPAMI, 2017.
A. ILSVRC 2017 Classification Competition Entry Details
The SENet in Table 3 is constructed by integrating SE blocks to a modified version of the $64\times 4d$ ResNeXt-152 that extends the original ResNeXt-101 [43] by following the block stacking of ResNet-152 [9]. More differences to the design and training (beyond the use of SE blocks) were as follows: (a) The number of first $1\times 1$ convolutional channels for each bottleneck building block was halved to reduce the computation cost of the network with a minimal decrease in performance. (b) The first $7\times 7$ convolutional layer was replaced with three consecutive $3\times 3$ convolutional layers. (c) The down-sampling projection $1\times 1$ with stride-2 convolution was replaced with a $3\times 3$ stride-2 convolution to preserve information. (d) A dropout layer (with a drop ratio of 0.2) was inserted before the classifier layer to prevent overfitting. (e) Label-smoothing regularisation (as introduced in [40]) was used during training. (f) The parameters of all BN layers were frozen for the last few training epochs to ensure consistency between training and testing. (g) Training was performed with 8 servers (64 GPUs) in parallelism to enable a large batch size (2048) and initial learning rate of 1.0.
A. ILSVRC 2017分類競賽輸入細節
表3中的SENet是通過將SE塊集成到$64\times 4d$的ResNeXt-152的修改版本中構建的,通過遵循ResNet-152[9]的塊堆疊來擴展原始ResNeXt-101[43]。更多設計和訓練差異(除了SE塊的使用之外)如下:(a)對于每個瓶頸構建塊,首先$1\times 1$卷積通道的數量減半,以性能下降最小的方式降低網絡的計算成本。(b)第一個$7\times 7$卷積層被三個連續的$3\times 3$卷積層所取代。(c)步長為2的$1\times 1$卷積的下采樣投影被替換步長為2的$3\times 3$卷積以保留信息。(d)在分類器層之前插入一個丟棄層(丟棄比為0.2)以防止過擬合。(e)訓練期間使用標簽平滑正則化(如[40]中所介紹的)。(f)在最后幾個訓練迭代周期,所有BN層的參數都被凍結,以確保訓練和測試之間的一致性。(g)使用8個服務器(64個GPU)并行執行培訓,以實現大批量數據大小(2048),初始學習率為1.0。