1. 程式人生 > >mobileNet v2 筆記

mobileNet v2 筆記

MobileNetV2: Inverted Residuals and Linear Bottlenecks

MobileNet V2是MobileNet V1的改進版,Inverted residual 是個非常精妙的設計! MobileNet V1引入depthwise separable convolution代替standard convolution,減少運算量。 MobileNet V1 的結構其實非常簡單,是類似於VGG一樣非常復古的直筒結構。後續一系列的ResNet, DenseNet等結構已經證明通過複用影象特徵, 使用concat/eltwise+ 等操作進行融合, 能極大提升網路的價效比。【1】

MobileNet V2主要的改進有兩點:

  • Linear Bottlenecks:去掉了小維度輸出層後面的非線性啟用層,目的是為了保證模型的表達能力。 好處:通過去掉Eltwise+ 的特徵去掉ReLU, 減少ReLU對特徵的破壞;
  • Inverted Residual block:和residual block中維度先縮減再擴增正好相反,因此shotcut也就變成了連線的是維度縮減後的feature map。好處:1. 複用特徵, 2. 旁支block內先通過1x1升維, 再接depthwise conv以及ReLU, 通過增加ReLU的InputDim, 來緩解特徵的退化情況。【1】

Linear Bottlenecks

v1中使用width multiplier引數來做模型通道的縮減,使特徵資訊集中在縮減後的通道中,其後使用非線性啟用ReLU,會產生較大的資訊丟失。為了減少資訊損失,v2使用linear bottleneck,在bottleneck的輸出後接線性啟用。

Inverted residuals

這裡寫圖片描述 Figure2展示了從standard convolution到depthwise separable convolution再到本文中的inverted residual block的差異。 a)標準3*3卷積操作,若輸入channel數量為n,則卷積核的維度為3*3*n(圖中紅色立方體) b)v1中採用的depthwise separable convolution c)在(b)的基礎上增加了一個類似bottleneck的操作 d)v2 inverted residual block結構,和ResNet中residual block對維度的操作相反

這裡寫圖片描述