天天看點

MobileNet_v2網絡模型詳解

1.概述

闡述MobileNet的網絡結構。

十裡桃園首發,轉載請注明

V3已經出來,此文章已意義不大,請參考我的另外一篇對v3的詳細解讀:https://blog.csdn.net/weixin_37918890/article/details/105262735

  1. MobileNet Introduction

本文介紹MobileNet_v2網絡結構。在MobileNet_v1中,應用了深度可分離卷積,使得神經網絡在保持精度的同時,極大的降低了計算速度。

在MobileNet_v2中,提出了兩個新的概念,即:倒置殘差Inverted Residual 和線性瓶頸Linear Bottleneck。倒置殘差主要用來增加圖像特征的提取以提高精度,而線性瓶頸主要用來避免非線性函數的資訊丢失。

  1. 線性瓶頸 Linear Bottlenecks

3.1.感興趣流形

Manifold of Interest (翻譯成目标特征描述域更貼切)

3.1.1

非線性函數ReLu

激活函數是在人工網絡神經元上運作的函數,負責将神經元的輸入映射到輸出。經過幾年的發展,傳統使用的函數從Sigmoid漸漸的變為ReLU等非線性函數,以避免梯度消失的問題。

同時為了使RuLU函數在移動裝置低精度的時候也能有很好的數值分辨率,對ReLU函數的激活範圍加以限制,經實驗表明ReLU的輸出限制為6效果最好,這樣限制後的函數重新命名為ReLU6。

但是ReLU系列激活函數在第二象限具有丢失資訊的缺點,例如RELU6函數圖像如下圖.1,可以看出在橫坐标小于0時,其輸出的縱坐标值恒為0。

MobileNet_v2網絡模型詳解

之是以說資訊丢失,是因為在x小于0的時候輸出的y值不能通過反函數算出x值。通俗地來講,每一副自然圖像,是一個被神經網絡了解的n維特征之集合,對之做ReLU運算,再做逆運算對比結果可以看出計算的特征和複原的原先特征的差别。

3.1.2資訊丢失

MobileNet_v2網絡模型詳解

如上圖,Input表示輸入的特征分布,通過ReLU6嵌入到多元空間,按不同的次元可以表示的如後續的圖像序列。可以看出在次元為2、3時其資訊丢失嚴重,而在維數增加的過程中,漸變為高度非凸,易于陷入局部最優,進而影響神經網絡性能。

鑒于此,MobileNet作者提出一種名為Linear Bottleneck的方案,其實質是一種線性映射,以解決資訊丢失問題。

3.2.線性映射Linear

Bottleneck

線性映射基于神經網絡卷積,神經網絡卷積在這裡介紹三種:1,傳統卷積;2,深度可分離卷積(MobileNet_v1);3,帶Linear Bottleneck的深度可分離卷積(MoibleNet_v2)

MobileNet_v2網絡模型詳解
MobileNet_v2網絡模型詳解
MobileNet_v2網絡模型詳解

圖.3、圖4所介紹的卷積在先前文檔中已經闡述過,值得注意的是,相比于先前文檔,MobileNetV2中在DepthWise前加了一層PointWise,也就是說,在MoibleNetv2中,其深度可分離卷積為 PointWise + DepthWise + PointWise,而先前文檔中的深度可分離卷積結構為 DepthWise +PointWise,可以了解為增加了特征次元以更好的表達圖像特征。

圖.5表征的是帶有Linear

Bottleneck的深度可分離卷積,其中帶斜杠的方塊為不含有非線性函數的層。可以看出前兩個卷積均應用了ReLU非線性函數,隻有在最後一次卷積使用線性函數,這可能會被人誤解為先用了ReLU已經造成了資訊丢失,即使後續運用了線性結構也于事無補。其實不然,因為在Linear Bottleneck以前有一次次元擴充,資訊的存儲次元在很大程度上被拔高。這樣以來,那些誤以為被丢失的資訊其實還存在于高維通道之中。最後的線性層,則保留了這些資訊進入下一層神經網絡。相較之下,其相對于純非線性層的網絡模型,在保持了更好的資訊感興趣流形。

MobileNet_v2網絡模型詳解

如圖.6所示,回想先前文檔講述的殘差塊,暫時不考慮快捷連結,隻考慮殘差塊其餘結構,若把傳統的殘差塊比作一個沙漏,那麼在MobileNe_v2中的倒置殘差塊可以被比為一個梭子。其先進行了次元擴充,以保持更高的資訊次元,提高最終深度模型精确度,同時使用了線性Bottleneck在一定程度上保證了模型的最終精确度不下降。

  1. 倒置殘差 Inverted Residuals

在先前文檔<物體識别文檔-NO.2-深度殘差.docx>中,對殘差塊之是以存在,其原因描述為了達到降低計算量,以達到超深層網絡可行的目的。

在MobileNet_v2中,改變了運用殘差子產品的初衷,但是保留了殘差網絡的靈感,其可行性可做以下解釋:1,MobileNet_v2網絡不深,缺乏用殘差塊大範圍縮減計算量的必要性。2,反向殘差在另一方面增加了資訊次元,這對精确度的保持和提升有促益。其倒置殘差塊結構如下:

MobileNet_v2網絡模型詳解
MobileNet_v2網絡模型詳解

如圖.7、圖.8,圖解了MobileNet網絡的基本單元,即倒置殘差塊。本層的輸入也為上層輸出,輸入的Bottleneck經過下圖.9中的卷積過程生成下層所需的Bottleneck。

MobileNet_v2網絡模型詳解

具體來說卷積過程,倒置殘差卷積主要分三個部分: PointWise1、DepthWise、PointWise2。

PointWise1為點卷積,即将圖像生成一個高維資訊域,其激活函數為如圖10,為ReLU,而後用DepthWise卷積進行各個通道的單獨卷積,此刻由于次元較高又沒有降維操作,故激活函數也選用的ReLU函數。最後一層為點卷積,涉及到降維操作,故沒有用ReLU以避免資訊丢失。

MobileNet_v2網絡模型詳解
MobileNet_v2網絡模型詳解

圖.10.2倒置殘差塊圖解2.b 倒置殘差子產品

如上圖.10,與傳統深度殘差相同,其引入了快捷連結概念,以避免梯度消失的現象産生。傳統深度殘差子產品類似一個沙漏,而MobileNet_v2提出的倒置殘差子產品則類似一個梭子,保證了資訊的保持。

  1. 網絡結構

MobileNet的核心由17個Bottleneck組成,MobileNet的網絡模型如下圖.11,其中t意指在殘差塊中擴充的次元。c為輸出的維數,也可用來判斷卷積核的個數。s為卷積的步長,亦可用來判斷下采樣的倍數。n是目前行操作被重複應用n次,值得注意的是,下采樣和通道維數變換隻在每行的第一次行操作時采取,為了更直白的了解網絡模型,給出圖.12。

MobileNet_v2網絡模型詳解
MobileNet_v2網絡模型詳解

如上圖.12,因網絡比較複雜,采用彩色繪圖的方式,顔色相同的圖像分辨率為同一副圖像/特征map。上圖每一行為一層,共21層,為MobileNet的基本網絡結構。

繼續閱讀