1. 程式人生 > >Inception系列解讀

Inception系列解讀

Inception-v1

思想: 加寬;多種不同卷積都用上

Inception module 的提出主要考慮多個不同 size 的卷積核能夠增強網路的適應力,paper 中分別使用1*1、3*3、5*5卷積核,同時加入3*3 max pooling。

每一層 Inception module 的 filters 引數量為所有分支上的總數和,多層 Inception 最終將導致 model 的引數數量龐大,對計算資源有更大的依賴.解決方法:1*1卷積層既能跨通道組織資訊,提高網路的表達能力,同時可以對輸出有效進行降維 

還有2個細節:

1.中間加入2個loss,保證更好的收斂,有正則化作用;

2.最後一個全連線層之前使用的是global average pooling


InceptionV2: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

Inception V2 學習了 VGG 用兩個3x3的卷積代替5x5的大卷積,在降低引數的同時建立了更多的非線性變換,使得 CNN 對特徵的學習能力更強;

BN 在用於神經網路某層時,會對每一個 mini-batch 資料的內部進行標準化(normalization

)處理,使輸出規範化到 N(0,1) 的正態分佈,減少了 Internal Covariate Shift(內部神經元分佈的改變)。

BN 的論文指出,傳統的深度神經網路在訓練時,每一層的輸入的分佈都在變化,導致訓練變得困難,我們只能使用一個很小的學習速率解決這個問題。而對每一層使用 BN 之後,我們就可以有效地解決這個問題,學習速率可以增大很多倍,達到之前的準確率所需要的迭代次數只有1/14,訓練時間大大縮短。而達到之前的準確率後,可以繼續訓練,並最終取得遠超於 Inception V1 模型的效能—— top-5 錯誤率 4.8%。


Inception-V3

卷積分解(Factorization)

 

A模型

用了卷積分解


B模型

在不同的層使用的卷積核大小不同,開始使用3*3,當特徵圖到中,深層特徵時不一樣

上圖只適合中等大小的特徵(對於mxm大小的特徵m的值在12-20之間)

c模型

上圖適合深層特徵,在8x8的特徵層上,利用這種分解然後聚合的結構來提升高維度的表達能力

Inception-v3中的下采樣模組

通常,卷積網路會利用pooling操作來降低特徵圖的大小。為了避免出現bottleneck現象,在應用Max Pooling或者average pooling之前,可以適當的擴大特徵層的維度。

作者同時並行使用卷積和池化操作