本文主要用于介紹最后一屆ImageNet冠軍模型SENet網(wǎng)絡凭涂。本筆記主要為方便初學者快速入門,以及自我回顧救赐。
論文鏈接:https://arxiv.org/pdf/1709.01507.pdf
論文代碼地址:https://github.com/hujie-frank/SENet
PyTorch代碼地址:https://github.com/miraclewkf/SENet-PyTorch
基本目錄如下:
- 摘要
- 核心思想
- 總結(jié)
------------------第一菇 - 摘要------------------
1.1 論文摘要
卷積神經(jīng)網(wǎng)絡(CNNs)的核心模塊其實就是卷積操作涧团,該操作通過融合每一層局部感受野的空間和不同通道信息來構建特征。在此之前经磅,已經(jīng)有很多的研究來實踐空間的信息融合問題泌绣,希望通過去融合不同層級的特征從而增強CNNs的特征表達能力。在我們本次的工作中预厌,我們專注于去研究不同通道之間的關系阿迈,并提出了一種新穎的結(jié)構,稱為“Squeeze-and-Excitation” SE模塊配乓,該模塊通過對每一個特征層的信息分別建模從而去自適應的重新定義每一個通道的特征仿滔。我們還證明了該種架構能夠輕易的被移植用于其他網(wǎng)絡架構。后續(xù)通過更多的實驗,我們還發(fā)現(xiàn)SE模塊能夠以輕微的計算性能損失帶來極大的準確率提升。我們的模型贏得了2017ImageNet冠軍昔善,并且是以極大的優(yōu)勢獲得的冠軍虱而,碾壓了16年的成績。模型代碼的開源地址為:https://github.com/hujie-frank/SENet
------------------第二菇 - 核心思想------------------
本文對于提升網(wǎng)絡性能的考量點主要是從特征通道之間的關聯(lián)關系入手的因妇,為此本文提出了SE模塊(并不是一個完整的網(wǎng)絡結(jié)構,而只是一個子結(jié)構,能嵌套進其他的網(wǎng)絡中)牺荠,其重點就在于顯式地建模特征通道之間的相互依賴關系。簡單來講就是通過學習的方式去自動獲取每個特征通道的重要程度驴一,然后依照這個重要程度來對特征進行重新“加權”計算休雌,從而突出重要的特征,抑制不重要的特征肝断。因此杈曲,我們重點就來理一下整個SE子結(jié)構的內(nèi)部結(jié)構。
直接先上一張原文中的架構圖胸懈,發(fā)現(xiàn)知乎上一張更好的配了步驟的圖担扑,盜過來了【1】,
可以很清晰的看到整個SE模塊可以分為3個步驟趣钱,首先對卷積得到特征圖進行Squeeze操作涌献,得到channel級的全局特征,然后對全局特征進行Excitation操作首有,學習各個channel間的關系燕垃,也得到不同channel的權重,最后乘以原來的特征圖得到最終的特征绞灼。簡單理解利术,可以把這種學習權重的過程視作是一種"attention"的方法。接下來低矮,我們就具體看一下這倆個步驟分別做了什么印叁。
2.1 Squeeze操作
第一步操作就是將一個channel上整個空間特征編碼為一個全局特征,采用全局平均池化的方法(當然也可以有更復雜的策略)军掂,
如上圖所示轮蜕,其實就是對于每一個channel都提取出了一個特征,最后的輸出自然也是
2.2 Excitation操作
直接上公式蝗锥,
其中就是Squeeze操作后得到的輸出跃洛,維度為
。
一步步來看终议,首先是第一個汇竭,表明的意思就是一個簡單的全連接操作葱蝗,其中
的維度就是
,
是一個縮放參數(shù)细燎,意思就是為了減少channel的個數(shù)(減少計算量)两曼,所以第一步的輸出維度就是
。然后經(jīng)過一個ReLU層玻驻,輸出維度不變悼凑。接著就是乘
,其實本質(zhì)也是一個全連接層的過程璧瞬,而為了讓輸出與之前的輸入channel個數(shù)相等户辫,這里的
的維度就是
,最后的輸出再經(jīng)過sigmoid激活函數(shù)嗤锉,得到s渔欢,其維度為
。
整個過程其實簡單明了瘟忱,本質(zhì)的核心就是去學習各個通道數(shù)之間的權重關系膘茎,如上圖的顏色所示,不同顏色就代表了不同的權重酷誓。最后一步就十分簡單了披坏,就是拿這個權重去與之前的特征圖進行channel-wise multiplication操作,這個應該很好理解盐数,這里就不展開了棒拂。
至此,整一個SE模塊的實現(xiàn)細節(jié)已經(jīng)講明白了玫氢,接下來我們具體看一下其是怎么運用在實際網(wǎng)絡中的帚屉。
2.2 SE模塊的運用
在Inception中加入SE 模塊的示意圖如下所示,
在ResNet中加入SE 模塊的示意圖如下所示漾峡,
其他有關訓練和參數(shù)的細節(jié)這里就不展開了攻旦,有興趣的同學可以看原論文或者看這篇博文~
------------------第三菇 - 總結(jié)------------------
3.1 總結(jié)
到這里,整篇論文的核心思想已經(jīng)說清楚了生逸。本論文主要是提出了一種新的構造特征的方法牢屋,即聯(lián)系起各個channel間的關系,提出了SENet模塊槽袄,并對此改進提供了充實的理論依據(jù)和實驗證明烙无,為后續(xù)發(fā)展奠定了基礎。
簡單總結(jié)一下本文就是先羅列了一下該論文的摘要遍尺,再具體介紹了一下本文作者的思路截酷,也簡單表述了一下,自己對整個SENet模塊的理解乾戏。希望大家讀完本文后能進一步加深對該論文的理解迂苛。有說的不對的地方也請大家指出三热,多多交流,大家一起進步~??