前言
在CV領(lǐng)域,我們需要熟練掌握最基本的知識(shí)就是各種卷積神經(jīng)網(wǎng)絡(luò)CNN的模型架構(gòu),不管我們?cè)趫D像分類或者分割,目標(biāo)檢測(cè),NLP等,我們都會(huì)用到基本的CNN網(wǎng)絡(luò)架構(gòu)。
CNN從最初的2012年AlexNet橫空出世到2014年VGG席卷世界以及2015年ResNet奠定了該領(lǐng)域的霸主地位,網(wǎng)絡(luò)模型變得越變?cè)缴?,而且也得到證明,越深的網(wǎng)絡(luò)擬合效果越好,但網(wǎng)絡(luò)相應(yīng)的參數(shù)量計(jì)算量都極速增加,不利于技術(shù)的推廣和應(yīng)用。
因此,一些輕量級(jí)的網(wǎng)絡(luò)結(jié)構(gòu)也慢慢隨之出現(xiàn),比如MobileNet系列,ShuffleNet系列,以及ResNext、DenseNet、EfficenceNet等模型,他們都互相吸取彼此的優(yōu)點(diǎn),不但降低了參數(shù)量或者計(jì)算量,同時(shí)分類精度更高,因而受到了更多的關(guān)注。接下來我們就對(duì)CNN的各種網(wǎng)絡(luò)結(jié)構(gòu)以及他們的優(yōu)缺點(diǎn)進(jìn)行一次詳細(xì)的解讀!
AlexNet(2012)
1、增加了relu非線性激活函數(shù),增強(qiáng)了模型的非線性表達(dá)能力。成為以后卷積層的標(biāo)配。
2、dropout層防止過擬合,成為以后fc層的標(biāo)配。
3、通過數(shù)據(jù)增強(qiáng),來減少過擬合。
4、引入標(biāo)準(zhǔn)化層(Local Response Normalization):通過放大那些對(duì)分類貢獻(xiàn)較大的神經(jīng)元,抑制那些對(duì)分類貢獻(xiàn)較小的神經(jīng)元,通過局部歸一的手段,來達(dá)到作用。
VGG(2014)
論文的主要?jiǎng)?chuàng)新點(diǎn)在于:
1、用3x3小卷積核代替了5x5或者7x7的卷積核 2、基于ALexnet加深了網(wǎng)絡(luò)深度,證明了更深的網(wǎng)絡(luò),能更好的提取特征。
GoogleNet(2014)
在設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)時(shí),不僅僅考慮網(wǎng)絡(luò)的深度,也會(huì)考慮網(wǎng)絡(luò)的寬度,并將這種結(jié)構(gòu)定義為Inception結(jié)構(gòu)。
1、引入1x1卷積的主要目的是為了減少維度,還用于修正線性激活(ReLU)
2、網(wǎng)絡(luò)最后采用了average pooling(平均池化)來代替全連接層
后面的Inception v2/v3都是基于v1的這種方法在擴(kuò)展,主要目標(biāo)有:
1、參數(shù)量降低,計(jì)算量減少。
2、網(wǎng)絡(luò)變深,網(wǎng)絡(luò)非線性表達(dá)能力更強(qiáng)
ResNet(2015)
問題:
1、增加深度帶來的首個(gè)問題就是梯度爆炸/消散的問題,這是由于隨著層數(shù)的增多,在網(wǎng)絡(luò)中反向傳播的梯度會(huì)隨著連乘變得不穩(wěn)定,變得特別大或者特別小。這其中經(jīng)常出現(xiàn)的是梯度消散的問題。
2、為了克服梯度消散也想出了許多的解決辦法,如使用BatchNorm,將激活函數(shù)換為ReLu,使用Xaiver初始化等,可以說梯度消散已經(jīng)得到了很好的解決
已知有網(wǎng)絡(luò)degradation的情況下,不求加深度能提高準(zhǔn)確性,能不能至少讓深度網(wǎng)絡(luò)實(shí)現(xiàn)和淺層網(wǎng)絡(luò)一樣的性能,即讓深度網(wǎng)絡(luò)后面的層至少實(shí)現(xiàn)恒等映射的作用,根據(jù)這個(gè)想法,作者提出了residual模塊來幫助網(wǎng)絡(luò)實(shí)現(xiàn)恒等映射。
ResNet的設(shè)計(jì)特點(diǎn):
1、核心單元模塊化,可進(jìn)行簡(jiǎn)單堆疊。 2、Shortcut方式解決網(wǎng)絡(luò)梯度消失問題。 3、Average Pooling層代替fc層。 4、引入BN層加快網(wǎng)絡(luò)訓(xùn)練速度和收斂時(shí)的穩(wěn)定性。 5、加大網(wǎng)絡(luò)深度,提高模型的特征抽取能力。
MobileNet v1
谷歌在2017年提出專注于移動(dòng)端或者嵌入式設(shè)備中的輕量級(jí)CNN網(wǎng)絡(luò):MobileNet。最大的創(chuàng)新點(diǎn)是深度可分離卷積。
通過將標(biāo)準(zhǔn)卷積分解為深度卷積核逐點(diǎn)卷積,能夠顯著的降低參數(shù)量和計(jì)算量。引入Relu6激活函數(shù)。
參數(shù)量計(jì)算量的計(jì)算:
網(wǎng)絡(luò)結(jié)構(gòu)如下:
MobileNet v2
改進(jìn)點(diǎn)主要有以下幾個(gè)方面:
1、引入殘差結(jié)構(gòu),先升維再降維,增強(qiáng)梯度的傳播,顯著減少推理期間所需的內(nèi)存占用
Inverted Residuals:
殘差模塊:輸入首先經(jīng)過1x1的卷積進(jìn)行壓縮,然后使用3x3的卷積進(jìn)行特征提取,最后在用1x1的卷積把通道數(shù)變換回去。整個(gè)過程是“壓縮-卷積-擴(kuò)張”。這樣做的目的是減少3x3模塊的計(jì)算量,提高殘差模塊的計(jì)算效率。
倒殘差模塊:輸入首先經(jīng)過1x1的卷積進(jìn)行通道擴(kuò)張,然后使用3x3的depthwise卷積,最后使用1x1的pointwise卷積將通道數(shù)壓縮回去。整個(gè)過程是“擴(kuò)張-卷積-壓縮”。
對(duì)低維度做ReLU運(yùn)算,很容易造成信息的丟失。而在高維度進(jìn)行ReLU運(yùn)算的話,信息的丟失則會(huì)很少。
Linear Bottleneck:
這個(gè)模塊是為了解決一開始提出的那個(gè)低維-高維-低維的問題,即將最后一層的ReLU6替換成線性激活函數(shù),而其他層的激活函數(shù)依然是ReLU6。
MobileNet v3
V3結(jié)合了V1的深度可分離卷積,V2的Inverted Residuals 和 Linear Bottleneck,以及加入SE模塊、利用NAS(神經(jīng)結(jié)構(gòu)的搜索)來搜索網(wǎng)絡(luò)參數(shù)。
互補(bǔ)搜索技術(shù) —— NAS & NetAdapt
h-swish激活函數(shù)
out = F.relu6(x + 3., self.inplace) / 6. return out * x
改進(jìn)一:下圖是MobileNet-v2的整理模型架構(gòu),可以看到,網(wǎng)絡(luò)的最后部分首先通過1x1卷積映射到高維,然后通過GAP收集特征,最后使用1x1卷積劃分到K類。所以其中起抽取特征作用的是在7x7分辨率上做1x1卷積的那一層。
而V3是先進(jìn)行池化然后再進(jìn)行1x1卷積提取特征,V2是先1X1卷積提取特征再池化。
ShuffleNet
組卷積
Group convolution是將輸入層的不同特征圖進(jìn)行分組,然后采用不同的卷積核再對(duì)各個(gè)組進(jìn)行卷積,這樣會(huì)降低卷積的計(jì)算量。
因?yàn)橐话愕木矸e都是在所有的輸入特征圖上做卷積,可以說是全通道卷積,這是一種通道密集連接方式(channel dense connection),而group convolution相比則是一種通道稀疏連接方式(channel sparse connection)。
depthwise convolution,這是一種比較特殊的group convolution,此時(shí)分組數(shù)恰好等于通道數(shù),意味著每個(gè)組只有一個(gè)特征圖。
分組卷積的會(huì)帶來一個(gè)矛盾就是特征通信。group convolution層另一個(gè)問題是不同組之間的特征圖需要通信。所以MobileNet等網(wǎng)絡(luò)采用密集的1x1 pointwise convolution,因?yàn)橐WCgroup convolution之后不同組的特征圖之間的信息交流。
為達(dá)到特征通信目的,我們不采用dense pointwise convolution,考慮其他的思路:channel shuffle
ShuffleNet的核心是采用了兩種操作:pointwise group convolution和channel shuffle,這在保持精度的同時(shí)大大降低了模型的計(jì)算量。其基本單元?jiǎng)t是在一個(gè)殘差單元的基礎(chǔ)上改進(jìn)而成。
-
cnn
+關(guān)注
關(guān)注
3文章
352瀏覽量
22203 -
卷積神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
4文章
367瀏覽量
11863 -
resnet
+關(guān)注
關(guān)注
0文章
12瀏覽量
3158
原文標(biāo)題:卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展及各模型的優(yōu)缺點(diǎn)
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論