卷積神經網絡Inception?V3網絡結構圖
《Rethinking the Inception Architecture for Computer Vision》
2015,Google,Inception V3
1.基于大濾波器尺寸分解卷積
GoogLeNet性能優(yōu)異很大程度在于使用了降維。降維可以看做卷積網絡的因式分解。例如1x1卷積層后跟著3x3卷積層。在網絡角度看,激活層的輸出是高相關的;因此在聚合前進行降維,可以得到類似的局部表示性能。
這里,考慮計算性能,我們探索其他形式的卷積因式分解。因為Inception結構是全卷積,每一個激活值對應的每一個權重,都對應一個乘法運算。因此減小計算量意味著減少參數。所以通過解耦和參數,可以加快訓練。利用節(jié)省下來的計算和內存增加filter-bank大小,來提升網絡性能。
1.1分解到更小的卷積
具有較大空間濾波器(例如5×5或7×7)的卷積在計算方面往往不成比例地昂貴。例如,具有n個濾波器的5×5卷積在具有m個濾波器的網格上比具有相同數量的濾波器的3×3卷積的計算量高25/9=2.78倍。當然,5×5濾波器在更前面的層可以捕獲更遠的單元激活之間、信號之間的依賴關系,因此濾波器幾何尺寸的減小帶來了很大的表現力。然而,我們可以詢問5×5卷積是否可以被具有相同輸入尺寸和輸出深度的參數較小的多層網絡所取代。如果我們放大5×5卷積的計算圖,我們看到每個輸出看起來像一個小的完全連接的網絡,在其輸入上滑過5×5的塊(見圖1)。由于我們正在構建視覺網絡,所以通過兩層的卷積結構再次利用平移不變性來代替全連接的組件似乎是很自然的:第一層是3×3卷積,第二層是在第一層的3×3輸出網格之上的一個全連接層(見圖1)。通過在輸入激活網格上滑動這個小網絡,用兩層3×3卷積來替換5×5卷積(比較圖2)。
圖1.Mini網絡替換5×5卷積
圖2.Inception模塊中每個5×5卷積由兩個3×3卷積替換
對于分解的卷積層,使用線性激活還是非線性激活,實驗表明,非線性激活性能更好。
1.2. 空間分解為不對稱卷積
上述結果表明,大于3×3的卷積濾波器可能不是通常有用的,因為它們總是可以簡化為3×3卷積層序列。我們仍然可以問這個問題,是否應該把它們分解成更小的,例如2×2的卷積。然而,通過使用非對稱卷積,可以做出甚至比2×2更好的效果,即n×1。例如使用3×1卷積后接一個1×3卷積,相當于以與3×3卷積相同的感受野滑動兩層網絡(圖3)。如果輸入和輸出濾波器的數量相等,那么對于相同數量的輸出濾波器,兩層解決方案便宜33%。相比之下,將3×3卷積分解為兩個2×2卷積表示僅節(jié)省了11%的計算量。
圖3.將一個33的卷積拆成13卷積和3*1卷積
在理論上,我們可以進一步論證,可以通過1×n卷積和后面接一個n×1卷積替換任何n×n卷積,并且隨著n增長,計算成本節(jié)省顯著增加(圖4)。實際上,我們發(fā)現,采用這種分解在前面的層次上不能很好地工作,但是對于中等網格尺寸(在m×m特征圖上,其中m范圍在12到20之間),其給出了非常好的結果。在這個水平上,通過使用1×7卷積,然后是7×1卷積可以獲得非常好的結果。
圖4.n×n卷積分解后的Inception模塊。
在我們提出的架構中,對17×17的網格我們選擇n=7。
2. 利用輔助分類器
Inception V1引入了輔助分類器的概念,以改善非常深的網絡的收斂。最初的動機是將有用的梯度推向較低層,使其立即有用,并通過抵抗非常深的網絡中的消失梯度問題來提高訓練過程中的收斂。有趣的是,我們發(fā)現輔助分類器在訓練早期并沒有導致改善收斂:在兩個模型達到高精度之前,有無側邊網絡的訓練進度看起來幾乎相同。接近訓練結束,輔助分支網絡開始超越沒有任何分支的網絡的準確性,達到了更高的穩(wěn)定水平。
另外,Inception V1在網絡的不同階段使用了兩個側分支。移除更下面的輔助分支對網絡的最終質量沒有任何不利影響。再加上前一段的觀察結果,這意味著這些分支有助于演變低級特征很可能是不適當的。相反,我們認為輔助分類器起著正則化項的作用。這是由于如果側分支是批標準化的(BN)或具有丟棄層(Dropout),則網絡的主分類器性能更好。這也為推測BN作為正則化項給出了一個弱支持證據。
3.降低特征圖大小
傳統(tǒng)上,卷積網絡使用一些池化操作來縮減特征圖的網格大小。為了避免表示瓶頸,在應用最大池化或平均池化之前,需要擴展網絡濾波器的激活維度。例如,開始有一個帶有k個濾波器的d×d網格,如果我們想要達到一個帶有2k個濾波器的
網格,我們首先需要用2k個濾波器計算步長為1的卷積,然后應用一個額外的池化步驟。這意味著總體計算成本由在較大的網格上使用
次運算的昂貴卷積支配。一種可能性是轉換為帶有卷積的池化,因此導致
次運算,將計算成本降低為原來的四分之一。然而,由于表示的整體維度下降到
,會導致表示能力較弱的網絡(圖5),這會產生一個表示瓶頸。我們建議另一種變體,其甚至進一步降低了計算成本,同時消除了表示瓶頸(圖6),而不是這樣做。我們可以使用兩個平行的步長為2的塊:P和C。P是一個池化層(平均池化或最大池化)的激活,兩者都是步長為2,其濾波器組連接如圖6所示。
圖5.減少網格尺寸的兩種替代方式。
左邊的解決方案違反了不引入表示瓶頸的原則,右邊的計算量昂貴3倍。
圖6.縮減網格尺寸的同時擴展濾波器組的Inception模塊。
它不僅廉價并且避免了原則1中提出的表示瓶頸。右側的圖表示相同的解決方案,但是從網格大小而不是運算的角度來看。
Inception-V3模型:
把7x7卷積替換為3個3x3卷積。包含3個Inception部分。第一部分是35x35x288,使用了2個3x3卷積代替了傳統(tǒng)的5x5;
第二部分減小了feature map,增多了filters,為17x17x768,使用了nx1->1xn結構;第三部分增多了filter,使用了卷積池化并行結構。網絡有42層,但是計算量只有GoogLeNet的2.5倍。
5,6,7分別對應下面三種結構:
應用在17*17層之上的輔助分類器:
析:因此問題依然存在:如果計算量保持不變,更高的輸入分辨率會有多少幫助?
普遍的看法是,使用更高分辨率感受野的模型傾向于導致顯著改進的識別性能。為了這個目的我們進行了以下三個實驗:
1)步長為2,大小為299×299的感受野和最大池化。
2)步長為1,大小為151×151的感受野和最大池化。
3)步長為1,大小為79×79的感受野和第一層之后沒有池化。
所有三個網絡具有幾乎相同的計算成本。雖然第三個網絡稍微便宜一些,但是池化層的成本是無足輕重的(在總成本的1%以內)。
在每種情況下,網絡都進行了訓練,直到收斂,并在ImageNet ILSVRC 2012分類基準數據集的驗證集上衡量其質量。結果如表所示。雖然分辨率較低的網絡需要更長時間去訓練,但最終結果卻與較高分辨率網絡的質量相當接近。
當感受野尺寸變化時,識別性能的比較,但計算代價是不變的。但是,如果只是單純地按照輸入分辨率減少網絡尺寸,那么網絡的性能就會差得多。
總結:
Inception V3網絡主要有兩方面的改造:一是引入了Factorization into small convolutions的思想,將一個較大的二維卷積拆成兩個較小的一維卷積,比如將77卷積拆成17卷積和71卷積,或者將33卷積拆成13卷積核31卷積。一方面節(jié)約了大量參數,加快運算并減輕過擬合,同時增加了一層非線性擴展模型表達能力。論文中指出,這種非對稱的卷積結構拆分,其結果比對稱地拆分為幾個相同的小卷積核效果更明顯,可以處理更多、更豐富的空間特征,增加特征多樣性。
另一方面,Inception V3優(yōu)化了Inception Module的結構,現在Inception Module有3535、1717和88三種不同結構。這些Inception Module只在網絡的后部出現,前面還是普通的卷積層。并且Inception V3除了在Inception Module中使用分支,還在分支中使用了分支(88的結構中,可以說是Network In Network In Network。
注:博眾家之所長,集群英之薈萃。
以上就是卷積神經網絡的網絡結構圖Inception V3的詳細內容,更多關于Inception V3卷積結構圖的資料請關注腳本之家其它相關文章!
相關文章
Burpsuite模塊之Burpsuite Intruder模塊詳解
Burp Intruder主要有四個模塊組成,本文針對每一模塊給大家詳細介紹,對Burpsuite Intruder模塊相關知識感興趣的朋友一起看看吧2021-09-09