首頁 > 軟體

折積神經網路Inception V3網路結構圖

2022-05-13 21:49:50

《Rethinking the Inception Architecture for Computer Vision》

2015,Google,Inception V3

1.基於大濾波器尺寸分解折積

GoogLeNet效能優異很大程度在於使用了降維。降維可以看做折積網路的因式分解。例如1x1折積層後跟著3x3折積層。在網路角度看,啟用層的輸出是高相關的;因此在聚合前進行降維,可以得到類似的區域性表示效能。

這裡,考慮計算效能,我們探索其他形式的折積因式分解。因為Inception結構是全折積,每一個啟用值對應的每一個權重,都對應一個乘法運算。因此減小計算量意味著減少引數。所以通過解耦和引數,可以加快訓練。利用節省下來的計算和記憶體增加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折積表示僅節省了11%的計算量。

圖3.將一個33的折積拆成13折積和3*1折積

在理論上,我們可以進一步論證,可以通過1×n折積和後面接一個n×1折積替換任何n×n折積,並且隨著n增長,計算成本節省顯著增加(圖4)。實際上,我們發現,採用這種分解在前面的層次上不能很好地工作,但是對於中等網格尺寸(在m×m特徵圖上,其中m範圍在12到20之間),其給出了非常好的結果。在這個水平上,通過使用1×7折積,然後是7×1折積可以獲得非常好的結果。

圖4.n×n折積分解後的Inception模組。

在我們提出的架構中,對17×17的網格我們選擇n=7。

2. 利用輔助分類器

Inception V1引入了輔助分類器的概念,以改善非常深的網路的收斂。最初的動機是將有用的梯度推向較低層,使其立即有用,並通過抵抗非常深的網路中的消失梯度問題來提高訓練過程中的收斂。有趣的是,我們發現輔助分類器在訓練早期並沒有導致改善收斂:在兩個模型達到高精度之前,有無側邊網路的訓練進度看起來幾乎相同。接近訓練結束,輔助分支網路開始超越沒有任何分支的網路的準確性,達到了更高的穩定水平。

另外,Inception V1在網路的不同階段使用了兩個側分支。移除更下面的輔助分支對網路的最終質量沒有任何不利影響。再加上前一段的觀察結果,這意味著這些分支有助於演變低階特徵很可能是不適當的。相反,我們認為輔助分類器起著正則化項的作用。這是由於如果側分支是批標準化的(BN)或具有丟棄層(Dropout),則網路的主分類器效能更好。這也為推測BN作為正則化項給出了一個弱支援證據。

3.降低特徵圖大小

傳統上,折積網路使用一些池化操作來縮減特徵圖的網格大小。為了避免表示瓶頸,在應用最大池化或平均池化之前,需要擴充套件網路濾波器的啟用維度。例如,開始有一個帶有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折積代替了傳統的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折積。一方面節約了大量引數,加快運算並減輕過擬合,同時增加了一層非線性擴充套件模型表達能力。論文中指出,這種非對稱的折積結構拆分,其結果比對稱地拆分為幾個相同的小折積核效果更明顯,可以處理更多、更豐富的空間特徵,增加特徵多樣性。

另一方面,Inception V3優化了Inception Module的結構,現在Inception Module有3535、1717和88三種不同結構。這些Inception Module只在網路的後部出現,前面還是普通的折積層。並且Inception V3除了在Inception Module中使用分支,還在分支中使用了分支(88的結構中,可以說是Network In Network In Network。

注:博眾家之所長,叢集英之薈萃。

以上就是折積神經網路的網路結構圖Inception V3的詳細內容,更多關於Inception V3折積結構圖的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com