(ML) MobileNetV2: Inverted Residuals and Linear Bottlenecks

YEN HUNG CHENG
8 min readJun 4, 2023

--

Photo by Bagus Hernawan on Unsplash

在 MobileNetV2 中,作者使用了倒置殘差結構,其中快速連接位於狹窄的瓶頸層之間。他們採用輕量級深度卷積來過濾非線性源的特徵。同時,他們發現去除窄層中的非線性以保持表徵能力是非常重要的,並證明了這一改進可以提高性能。

Depthwise Separable Convolutions

Linear Bottlenecks

簡單來說,Linear Bottlenecks 就是指在 MobileNetV1 最後做完 1x1 convolution 將激活函數 ReLU 拿掉,而為什麽這麼做,可以下方的 manifold of interest 介紹。

manifold of interest

在神經網絡中,每一層都會對輸入數據進行一些操作,比如卷積、激活、池化等等。這些操作產生的輸出值就被稱為該層的激活值。對於一個真實圖像的輸入集,每個層的激活值都形成了一個集合。我們可以把每個集合看作是一個流形(manifold)。這些流形反映了圖像的特徵,比如邊緣、紋理、形狀等等。長期以來,人們一直認為神經網絡中感興趣的流形可以嵌入到低維子空間中。

MobileNetV1 成功利用,通過寬度乘數參數在計算和精度之間進行有效權衡。 按照這種直覺,寬度乘法器方法允許減少激活空間的維數,直到感興趣的流形跨越整個空間。然而,當我們回憶起深度卷積神經網絡實際上具有非線性的坐標變換(例如 ReLU)時,這種直覺就會失效。

Examples of ReLU transformations of low-dimensional manifolds embedded in higher-dimensional spaces

一開始在 2 維空間上建立一個 manifold of interest ,接下來會通過隨機矩陣 T 映射到 n 維空間後(manifold of interest 嵌入到更高維度的空間),接著進行 ReLU,最後再使用 T 的逆矩陣映射回原本的空間,也就是論文中所代表的圖。

source

在低(2、3)維度進行 ReLU 後,再映射回來原本的空間,可以發現原本螺旋的 manifold of interest 它被折疊了,並且其他部分訊息已經消失,反之可以發現在高(15、30)維度進行 ReLU 後,再映射回來原本的空間,雖然螺旋的 manifold of interest 較為不同,但是整體螺旋的結構仍然存在,儘管它是些許扭曲,所以很明顯在高維度應用非線性函數,manifold of interest 的訊息並不會流失太多。

Evolution of separable convolution blocks

source

(a) 為一般的 常規卷積

(b) 為 MobileNetV1 所提出的 深度可分離卷積

(c) input tensor 會先使用 3 x 3 深度卷積(激活函數=ReLU6),接下來會通過 1 x 1 卷積進行降維(目的為將“manifold of interest” embedding 至一個較低維度的子空間)

(d) input tensor 會先通過 1 x 1 卷積進行升維,接下來使用 3 x 3 深度卷積(激活函數=ReLU6),最後再使用 1 x 1 卷積 進行降維(激活函數=ReLU6)

The difference between residual block and inverted residual

source

(a) 為一般的殘差模塊,會先使用 1 x 1 卷積進行降維,再進行 3 x 3 卷積,最後再使用 1 x 1 卷積進行升維回復到原本的維度。

(b) 為相反的殘差模塊,因為與傳統的殘差模塊不同,會先使用 1 x 1 卷積進行升維,再進行 3 x 3 深度可分離卷積,最後再使用 1 x 1 卷積進行降維回復到原本的維度。

Model Architecture

source

最終的 Block 架構,input tensor 會先進行 1 x 1 卷積(激活函數=ReLU6)進行升維(又稱 expansion layer,其中 t 為 expansion ratio = 6),再進行 3 x 3 深度可分離卷積(激活函數=ReLU6),最後再使用 1 x 1 卷積進行降維

ReLU6 將輸出的最大值限制在 6,為何使用 ReLU6,可以參考以下這一篇

source

t : expansion ratio

c : channel

n : block 重複的次數

s : stride

The max number of channels/memory (in Kb) that needs to be materialized at each spatial res- olution for different architectures.

source

Comparison of convolutional blocks for dif- ferent architectures

source

從圖片中可以發現,Mobilenet V2 當 Stride=2 與 Stride=1 時,網路的架構有些許不同,當 Stride=1 時會使用 shortcut connection

Performance curve of MobileNetV2 vs MobileNetV1, ShuffleNet, NAS

source

對於我們的網絡,我們對所有分辨率使用乘數 0.35、0.5、0.75、1.0,並為 224 使用額外的 1.4。

Ablation study

The impact of non-linearities and various types of shortcut (residual) connections

source

(a) 可以發現在 botleneck 不使用 ReLU6 後,網路的性能將會進一步提升

(b) 這裡比較了在 bottlenecks 與 expansions 加入 residual 後的差異

Experiments

MobileNetV2 在 ImageNet Classification、Object Detection、Semantic Segmentation 均獲得不錯的表現,而參數量也大多數輕量型網路都要低

ImageNet Classification

source

Object Detection

source

Semantic Segmentation

source

Conclusions

在 MobileNetV2 提出了與傳統殘差模塊不同的作法,將升維與降維的順序反過來,作者也用了 manifold of interest 相關的實驗來說明,為何 MobileNetV2 的網路架構要如此設計。

--

--