Xception,Inception-ResNet,SENet(Squeeze-and-Excitation)
一.Xception
Xception是在InceptionV3基礎上修改的,主要引入了深度可分離卷積,將空間和通道的操作進行解耦合。
與“extreme” Inception兩個區別:
1,1×1卷積的順序,Xcption用于3×3之后,而Inception用于之前
2,Xception在1×1和3×3之后都沒用relu,而Inception都用了。
3*3做空間相關性,1×1做通道相關性。
? ? ? ?
用Relu會損失一部分信息。
二.Inception-ResNet
證明了Residual learning并非深度網絡走向更深的必需條件,其只是可以使得深度網絡的訓練速度加快而已。為了表明這一點,他們更是造出了更為復雜、精巧的Inception v4網絡,在不使用residual learning的情況下也達到了與Inception-Resnet v2近似的精度。
如果通道數超過1000,那么Inception-resnet等網絡都會開始變得不穩定,并且過早的就“死掉了”,即在迭代幾萬次之后,平均池化的前面一層就會生成很多的0值。作者們通過調低學習率,增加BN都沒有任何改善。實驗發現如果對inception-resnet網絡中的residual模塊的輸出進行scaling(如乘以0.1-0.3),那么可以讓它的整個訓練過程更加地穩定。如下圖為scaling的具體做法示意。
三.SENet
SEnet最終目的是給各個channel增加權重,注意于通道之間的關系,2017年ILSVRC分類第一。
通過精確的建模卷積特征各個通道之間的作用關系來改善網絡模型的表達能力。為了達到這個期望,提出了一種能夠讓網絡模型對特征進行校準的機制,使網絡從全局信息出發來選擇性的放大有價值的特征通道并且抑制無用的特征通道。?
模型復雜度:當r=16時,SE-ResnNet相比ResNet-50參數量僅增加0.26%。
本節我們研究SE-ResNet-50模型的樣本激活,并考察它們在不同塊不同類別下的分布情況。具體而言,我們從ImageNet數據集中抽取了四個類,這些類表現出語義和外觀多樣性,即金魚,哈巴狗,刨和懸崖。然后,我們從驗證集中為每個類抽取50個樣本,并計算每個階段最后的SE塊中50個均勻采樣通道的平均激活(緊接在下采樣之前),并在圖7中繪制它們的分布。作為參考,我們也繪制所有1000個類的平均激活分布。
我們對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%0.1%的top-1錯誤率)。
?
總結
以上是生活随笔為你收集整理的Xception,Inception-ResNet,SENet(Squeeze-and-Excitation)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 学习编程 【for语句br
- 下一篇: pytorch基础知识+构建LeNet对