Inception模塊分為V1、V2、V3和V4。
- V1(GoogLeNet)的介紹
論文:Going deeper with convolutions
論文鏈接:https://arxiv.org/pdf/1409.4842v1.pdf
主要問題:
- 每張圖中主體所占區域大小差別很大。由於主體信息位置的巨大差異,那選擇合適的卷積核相對來說就比較困難。信息分布更全局性的圖像適合選用較大的卷積核,信息分布較局部的圖像適合較小的卷積核。
- 非常深的網絡更容易過擬合。將梯度更新傳輸到整個網絡是很困難的。
- 簡單地堆疊較大的卷積層非常消耗計算資源。
解決方法:
作者在神經網絡設計上不是增加深度而是增加網絡寬度,並且為了降低算力成本,作者在3*3和5*5卷積層之前添加額外的1*1卷積層,來限制輸入信道的數量。

2.V2介紹
論文:Rethinking the Inception Architecture for Computer Vision
論文地址:https://arxiv.org/pdf/1512.00567v3.pdf
主要問題:
- 減少特征的表征性瓶頸。直觀來說,當卷積不會大幅度改變輸入維度時,神經網絡可能會執行地更好。過多地減少維度可能會造成信息的損失,也成為[特征性瓶頸]。
- 使用更優秀的因子分解方法,卷積才能在計算復雜度上更加高效。
解決方法:
最左側一排將5*5分解成兩個3*3,實際上一個5*5卷積的計算成本是一個3*3卷積的2.78倍。所以疊加會提升性能。如下圖:

推論出,若有n*n卷積核,那么我們可以分解為1*n和n*1兩個卷積。如下圖,若n為3,則和上圖一致:

但是,為了解決表征性瓶頸,我們若拓寬模型而不是加深模型,那么會避免信息損失,如下圖:

3.V3介紹
論文:Rethinking the Inception Architecture for Computer Vision
論文地址:https://arxiv.org/pdf/1512.00567v3.pdf
主要問題:
- 作者注意到輔助分類器直到訓練過程快結束時才有較多的貢獻,那時准確率接近飽和。作者認為輔助分類器的功能是正則化,尤其是它們具備BN和dropout時。
- 是否能夠改進V2而無需大幅更改模塊仍需要研究。
解決方法:
- RMSProp優化器;
- Factorized7*7卷積;
- 輔助分類器使用了BN;
- 標簽平滑(添加到巡視公式的一種正則化項,旨在組織網絡對某一類別過分自信,即阻止過擬合)。
4.V4介紹
論文:Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
論文地址:https://arxiv.org/pdf/1602.07261.pdf
主要問題:
使模塊更加一致。作者還注意到某些模塊有不必要的復雜性。這允許我們通過添加更多一致的模塊來提高性能。
解決方法:
圖1左側是V4的整體結構,圖1右側是V4的stem部分,用於對於進入Inception模塊錢的數據進行預處理,減小對圖像壓縮的精度損失。stem部分就是多次卷積+2次池化,池化采用了V3論文里面提到的卷積+pooling並行的結構,來防止bottleneck問題。stem后用了3種Inception模塊。直接的Reduction模塊起到了pooling作用,同樣使用了並行的結構來防止bottleneck問題。

圖1:Inception-V4結構

圖2:從左到右分別為Inception-V4中的InceptionA\B\C模塊
圖3所示,V4中引入了專用的reduction block,它被用於改變網絡的寬度和高度。

圖3:Inception-V4中的Reduction模塊
小總結:
- 降維:比如,一張500*500且厚度depth為100的圖片在20個filter上做1*1的卷積,那么結果的大小為500*500*20.
- 加入非線性。卷積層之后經過激勵層,1*1的卷積在前一層的學習表示上添加了非線性激勵,提升網絡的表達能力;可以在保持特征面尺度不變的(即不損失分辨率)的前提下大幅度增加非線性特性(利用后接的非線性激活函數),把網絡坐的很深。
