環境感知技術入門(五) | Inception系列總結
一、Inception V1
1.1 主要創新點
(1) 提出inception module
Inception模組在GoogLeNet中設計了兩種,一種是原始的Inception模組,一種是帶降維的Inception模組,如下圖所示:
Inception模組中的卷積步長都是1,另外為了保持特徵圖大小一致,都設定了Padding方式為Same。每個卷積層後面都接了ReLU啟用函式。在輸出前有一個Concat層代表把4組不同型別但大小相同的特徵響應圖堆疊在一起,獲得輸出特徵圖。Inception模組一共使用了4種不同大小的卷積核對輸入特徵圖進行了特徵提取。並且在原始的Inception模組基礎上,為了降低計算量使用1*1卷積來降維。
(2) 使用輔助loss
GoogLeNet有3個損失函式,其中2個是輔助損失。這個設計是為了幫助模型收斂,避免梯度消失,在中間層加入損失目的是讓低層的特徵也可以有比較好的區分能力。最後兩個輔助損失都被乘以0。3然後加上網路最後的損失作為總的損失來訓練GoogLeNet。
(3) 由全域性平均池化層代替全連線層
GoogleNet將最後的全連線層全部替換為了全域性平均池化層,這可以顯著減少網路的引數量。AlexNet最後的三個全連線層的引數量佔了總引數量的差不多90%,GoogLeNet移除了全連線層使用全域性平均池化層進行代替並證明了這種方式實現的精度更好,並且推理速度也明顯加快。
1.2 整體網路框架
GoogleNet網路整體框架圖如下圖所示:
在第三、第六個Inception module上,有兩個輔助分類器。均由平均池化層、卷積層、兩個全連線層、一個softmax啟用層組成。在訓練時,其損失的30%新增到整體的損失中。
二、Inception V2
2.1 主要創新點
(1)提出了BN層,每次先對輸入特徵圖進行歸一化,再送入下一層神經網路輸入層。加快了網路的收斂速度,緩解梯度消失問題,並起到一定的正則化效果(詳見環境感知技術入門(十) | 加速網路訓練-Batch Normalization)。
(2) Conv+BN+Scale+ReLU。Inception V2中每個卷積層後面都有BN層,並且一般BN層還會配合Scale層一起用。
(3) 用多個小的卷積核代替大的卷積核,並獲得一致的感受野。
使用2個3x3的卷積代替一個5x5的卷積,這樣既可以獲得相同的視野(經過2個3x3卷積得到的特徵圖大小等於1個5x5卷積得到的特徵圖),還具有更少的引數,還間接增加了網路的深度;
使用
和
這種非對稱的卷積來代替
的對稱卷積,既降低網路的引數,又增加了網路的深度(實驗證明,該結構放於網路中部,取
,準確率更高)
(4) 進一步加深了網路的深度,使得網路的特徵提取能力進一步加強。
(5) 增強了模型的非線性表達能力,因為每個卷積後面都加了一個ReLU。卷積層變多,非線性啟用函式自然更多,模型的非線性表達能力變得更強。
7*7卷積分解為3個3*3卷積——大卷積核分解為小卷積核;
3個傳統Inception modules,卷積核35*35,特徵數288,降維得到17*17*768——高效的降維方法;
5個應用了小卷積核分解的Inception modules,將上一層的輸出降維至8*8*1280——高效的降維方法;
將粗糙的8*8層透過2個Inception modules來降維(高效的降維方法),每個連線的輸出堆疊在一起,構成2048個特徵圖。同時,也對應了更高維度的表徵更容易在網路的區域性中處理的規則。即頂層的特徵具有一定的關聯性,降維沒有太大影響,然後透過卷積獲得關聯性強的特徵的組合,所以先降維,後卷積;
二、Inception V3