深度學習-MobileFaceNet網絡結構詳解

MobileNet
在這裏插入圖片描述
可分離卷積(Depthwise separable conv):

可分離卷積可以減少參數量與計算量:

例如輸入是1001003,普通卷積採用33352的卷積核,輸出爲10010052,參數量爲33352=1404

使用深度分離卷積,第一步是採用333的卷積核,輸出各個通道不相加,仍然爲3通道,第二步採用113*52的卷積核,輸出相同,參數量爲27+156=183,參數量減少

MobileNetV2
在這裏插入圖片描述
在這裏插入圖片描述
使用反殘差模塊,“反”體現在原來的模塊會使用11的卷積和降維,再用33卷積核去卷積,現先使用1*1的卷積核升維,再使用大卷積核卷積。

那有人會問,這樣不是會增加計算量嗎?

其實,減少計算量體現在第二層是隻有一個卷積核,即使用了可分離卷積的方式,因此計算量會減少。

舉個例子:

假設不使用可分離卷積,設輸入通道數爲20,輸出通道數同樣要20,那麼第二層需要3320*20個參數,

使用了可分離卷積,第二層則只需要3320*1個參數,每個通道的卷積結果不相加,因此輸出通道數不變,但是減少了計算量。

MobileNetV2網絡結構
在這裏插入圖片描述
其中:t表示通道“擴張”倍數,c表示輸出通道數,n表示重複次數,s表示步長stride。

MobileFaceNet
mobilefacenet其實是mobilenetV2的改進版本,主要改進之處有以下幾個地方:

1.針對平均池化層,許多研究表明,使用平均池化層會使得網絡表現下降,但是一直沒有理論說明,因此作者在文中給出了一個理論解釋:

​ 在最後一個77特徵圖中,雖然中心點的感知域和邊角點的感知域是一樣的,但是中心點的感知域包括了完整的圖片,邊角點的感知域卻只有部分的圖片,因此每個點的權重應該不一樣,但是平均池化層卻把他們當作一樣的權重去考慮了,因此網絡表現會下降,如圖:
在這裏插入圖片描述
因此,作者在此處使用了可分離卷積代替平均池化層,即使用一個7
7512(512表示輸入特徵圖通道數目)的可分離卷積層代替了全局平均池化,這樣可以讓網絡自己不同點的學習權重。
此處的可分離卷積層使用的英文名是global depthwise convolution,global表示全局,depthwise表示逐深度,即逐通道的卷積,其實就是之前描述的那種可分離卷積的方式:使用7
7512的卷積核代替77512512的卷積核。
其實這裏我們可以發現,後者其實是全卷積[1]。

2.採用Insightface的損失函數進行訓練。
3.一些小細節:通道擴張倍數變小;使用Prelu代替relu;使用batch Normalization。
網絡整體結構如下:
在這裏插入圖片描述

實驗及結果
和MobileNet、ShuffleNet的對比
此處訓練集採用CASIA-Webface,損失採用Insightface的損失
在這裏插入圖片描述
和其他算法的對比
此處訓練集採用清理過的MS-Celeb-1M,損失採用Insightface的損失。
在這裏插入圖片描述
Megaface
在這裏插入圖片描述
文中引用
[1] Evan Shelhamer, Jonathan Long, Trevor Darrell.Fully Convolutional Networks for Semantic Segmentation .arXiv:1605.06211,2016.

原文鏈接:https://blog.csdn.net/Fire_Light_/article/details/80279342

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