引言:
Inception_v2和Inception_v3是在同一篇論文中,提出BN的論文並不是Inception_v2。兩者的區別在於《Rethinking the Inception Architecture for Computer Vision》這篇論文裡提到了多種設計和改進技術,使用其中某部分結構和改進技術的是Inception_v2, 全部使用了的是Inception_v3。
Inception_v1結構由於比較複雜,很難在其基礎上有所改變,如果隨意更改其結構,則很容易直接喪失一部分計算收益。同時,Inception_v1論文中沒有詳細各個決策設計的因素的描述,這使得它很難去簡單調整以便適應一些新的應用。為此,Inception_v2論文裡詳細介紹了如下的設計基本原則,並基於這些原則提出了一些新的結構。
1.避免表示瓶頸,特別是在網絡的淺層。一個前向網絡每層表示的尺寸應該是從輸入到輸出逐漸變小的。(當尺寸不是這種變化時就會出現瓶頸)
2.高維度的表示很容易在網絡中處理,增加激活函數的次數會更容易解析特徵,也會使網絡訓練的更快。(這條原則的意思是表示維度越高,越適合用網絡來處理,像二維平面上的數據分類反而就不適合用網絡來處理,增加激活函數的次數會使得網絡更容易學到其表示特徵)
3. 可以在較低維的嵌入上進行空間聚合,而不會損失很多表示能力。例如,在執行更分散(例如3×3)的卷積之前,可以在空間聚集之前(淺層)減小輸入表示的尺寸,而不會出現嚴重的不利影響。我們假設這樣做的原因是,如果在空間聚合環境中(中高層)使用輸出,則相鄰單元之間的強相關性會導致在尺寸縮減期間信息損失少得多。鑑於這些信號應易於壓縮,因此減小尺寸甚至可以促進更快的學習。
4. 平衡網絡的寬度和深度。通過平衡每個階段的濾波器數量和網絡深度,可以達到網絡的最佳性能。增加網絡的寬度和深度可以有助於提高網絡質量。但是,如果並行增加兩者,則可以達到恆定計算量的最佳改進。因此,應在網絡的深度和寬度之間以平衡的方式分配計算預算。
一個5x5的卷積核可通過兩個連續的3x3卷積核來代替,其中第一個是正常的3x3卷積,第二個卷積是在上一層3x3卷積的基礎上進行全連接。這樣做的好處是既實現了5x5卷積該有的感受野,又實現了更小的參數2x9/25,大概縮小了28%。具體如下左圖fig1所示。更進一步,採用非對稱分解,將一個3x3的卷積分解為3x1和1x3。具體如下右圖fig2.
因此原來的Inception結構(左圖fig3)就可以變成如下所示的結構(中圖fig5)和(右圖fig6)。
最終還衍生出了如下圖所示(fig7)一種混合兩種分解方式的結構。
在實際應用中,使用這樣的分解結構在網絡低層的效果並不好。它在中等尺寸大小(mxm的feature map 其中m在12到20範圍內)的層中會有比較好的效果。這是考慮到第二條原則,這樣的Inception結構將會放在網絡中間層,而在網絡低層仍然使用一般卷積網絡的結構。
輔助分類器在訓練的前期並沒有起什麼作用,到了訓練的後期才開始在精度上超過沒有輔助分類器的網絡,並達到稍微高的平穩期。並且,在去除這兩個輔助分類器後並沒有不利的影響,因此在Inception_v1中提到的幫助低層網絡更快訓練的觀點是有問題的。如果這兩個分支有BN或Dropout,主分類器的效果會更好,這是BN可充當正則化器的一個微弱證據。
關於降低Grid Size大小的方式,有如上圖所示兩種做法。左邊這種違背了第一條原則,即尺寸應該逐層遞減,否則會出現bottleneck。右圖符合第一條原則,然而這樣參數量巨大。為此作者提出了一種如下圖(fig10)所示的新方式。即並行操作,利用步長都為2的卷積和池化操作,在不違背第一條原則的基礎上實現降低Grid Size。
整個結構中都沒有用到padding, 提出的fig10結構用在了中間每個Inception模塊之間。
如果模型在訓練過程中學習使得全部概率值給ground truth標籤,或者使得最大的Logit輸出值與其他的值差別儘可能地大,直觀來說就是模型預測的時候更自信,這樣將會出現過擬合,不能保證泛化能力。因此標籤平滑化很有必要。
前面的δk,y 是狄拉克函數,即類別k = y,即為1,否則為0。原本的標籤向量q(k|x) = δk,y。而標籤平滑化後的標籤向量變為如下公式。
這裡的∈為超參數,u(k)取1/k,k表示類別數。即新的標籤向量(假定是三分類)將變為(∈/3, ∈/3, 1-2∈/3 ),而原來的標籤向量是(0,0,1)。
實際效果如圖所示,在這裡說明Inception_v2與Inception_v3的區別,Inception_v2指的是使用了Label Smoothing 或BN-auxiliary或RMSProp或Factorized技術中的一種或多種的Inception模塊。而Inception_v3指的是這些技術全用了的Inception模塊。
長按識別二維碼關注我們
本公眾號主要進行CV論文解讀,最新技術跟蹤,CV技術總結