mobilenet-v1和mobilenet-v2詳解

最近efficientnet和efficientdet在分類和檢測方向達到了很好的效果,他們都是根據Google之前的工作,mobilenet利用nas搜索出來的結構。之前也寫過《輕量級深度學習網絡概覽》,裏面提到過mobilenetv1和mobilenetv2的一些思想。下面基於slim mobilenet的實現版本來具體講講他們的結構

一、mobilenet-v1

mobilenet-v1創新部分
mobilenet-v1整體結構類似與VGG那種直通的結構,沒有什麼像resnet那樣的殘差結構,和之前大多數網絡不一樣的主要有兩點:

  1. 採用了depthwise separable convolution來提高網絡的計算速度,depthwise separate convolution包含了depthwise convolution和pointwise convolution
  2. 採用了Width Multiplier,Width Multiplier簡單來說就是引入一個新的超參數來調節卷積輸出的通道數從而更方便的平衡了網絡的計算速度和精度。

其實文章還有引入了一個參數Resolution Multiplier ρ\rho,這個參數來控制卷積層輸入的分辨率大小,該參數用來減小網絡的計算量,代碼實現好像沒有這個參數,之所以提一下是因爲在efficientnet的設計中也有這個參數。

稍微再多說一嘴,depthwise convolution指的是對於輸入的feature,每個通道都有一個單獨對應的卷積與其進行計算。pointwise convolution可以理解爲正常的conv,只是conv的大小爲1×11\times 1。正常的卷積和本文新提出的兩種卷積形式如下圖所示:
在這裏插入圖片描述

計算量對比
對於輸入feature大小爲DF×DF×MD_F \times D_F\times M,輸出爲DF×DF×ND_F \times D_F\times N的情況(其中DFD_F爲feature分辨率,M和N分別表示輸入輸出的通道數),對於大小爲DK×DKD_K\times D_K的標準卷積的計算量爲
DKDKMNDFDFD_K \cdot D_K \cdot M\cdot N\cdot D_F\cdot D_F
對於大小爲DK×DKD_K\times D_K的depthwise convolution,整個depthwise separable convolution的計算量爲
DKDKMDFDF+MNDFDFD_K \cdot D_K \cdot M\cdot D_F\cdot D_F+M\cdot N\cdot D_F\cdot D_F

mobilenet-v1的結構如下表所示
在這裏插入圖片描述

需要說明的是本文的所有卷積後面都跟一個bn和relu,不管是標準卷積還是depthwise separable convolution,如下圖所示,還有一個需要注意的是所有的depthwise convolution沒有參加或者以較小的權重參加l2正則計算。
在這裏插入圖片描述

二、mobilenet-v2

首先v2還是繼承了v1的思想,即仍然採用了depthwise separable convolution。
其次文章提出兩點結論:

  1. 感興趣的特徵在ReLU之後保持非零,近似認爲是線性變換。
  2. ReLU能夠保持輸入信息的完整性,但僅限於輸入特徵位於輸入空間的低維子空間中。

通過上述兩點結論,文章認爲可以在v1的基礎上優化卷積結構,即在depthwise separable convolution後再加一個線性卷積(就是一個標準的1×11\times1的卷積,並且該卷積後面只跟一個bn不跟relu6),而且對於輸入進relu6的特徵,難免會造成一些信息的丟失,爲了減少這種信息丟失,在輸入relu6前,先使用expansion ratio,將特徵的通道擴大,來減少特徵的丟失。
簡單理解就是,對於relu輸出的低緯度空間,爲了減少特徵損耗採用線性卷積來提取特徵。對於有relu的層,爲了防止特徵損耗太多,先將特徵通道數增加。

最後參考resnet結構,也加入了shortcuts連接方式,目的是爲了減緩BP時造成的梯度彌散。

最終得到的Bottleneck residual block如下所示
在這裏插入圖片描述

上面中的k是輸入通道數,k’是輸出通道數,s代表stride,t代表expansion ratio。上面省略了bn設置,其實每個卷積後面都跟了個bn。

mobilenet-v2的結構如下表所示
在這裏插入圖片描述

上表中,每一層重複層中,都是第一層stride爲s,其它都爲1.

歡迎加入Object Detection交流,羣聊號碼:910457072

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章