狠狠躁日日躁夜夜躁A片无码,中文字幕在线亚洲二区,最近更新中文字幕在线,四虎影视国产精品亚洲精品,男人扒开添女人下部免费视频

訂閱
糾錯
加入自媒體

三個模型對CNN結構演變進行總結

2021-06-29 10:48
CV技術指南
關注

導言:

  自2012年AlexNet在ImageNet比賽上獲得冠軍,卷積神經(jīng)網(wǎng)絡逐漸取代傳統(tǒng)算法成為了處理計算機視覺任務的核心。

  在這幾年,研究人員從提升特征提取能力,改進回傳梯度更新效果,縮短訓練時間,可視化內部結構,減少網(wǎng)絡參數(shù)量,模型輕量化, 自動設計網(wǎng)絡結構等這些方面,對卷積神經(jīng)網(wǎng)絡的結構有了較大的改進,逐漸研究出了AlexNet、ZFNet、VGG、NIN、GoogLeNet和Inception系列、ResNet、WRN和DenseNet等一系列經(jīng)典模型,MobileNet系列、ShuffleNet系列、SqueezeNet和Xception等輕量化模型。

  在本文將對這些經(jīng)典模型的結構設計演變做一個總結,旨在讓讀者了解一些結構的設計原理,產(chǎn)生效果的原因。在面對一個具體任務時能夠準確地選擇一個合理的特征提取網(wǎng)絡,而不是隨便選擇一個。在自主設計網(wǎng)絡時,也能根據(jù)總結的原則和經(jīng)驗設計出合理的結構,避免隨心設計。

本文來源于公眾號CV技術指南的技術總結系列。

更多內容請關注公眾號CV技術指南,專注于計算機視覺的技術總結,最新技術跟蹤。

CNN結構演變總結

在這個系列將按照以下三個部分對CNN結構演變進行總結。

一、經(jīng)典模型,對AlexNet、VGG、NIN、GoogLeNet和Inception系列、ResNet、WRN和DenseNet這些模型的結構設計部分進行總結。

二、輕量化模型,對MobileNet系列、ShuffleNet系列、SqueezeNet和Xception等輕量化模型總結介紹輕量化的原理,設計原則。

三、對前面經(jīng)典模型、輕量化模型中一些經(jīng)典設計進行總結。如1x1卷積的作用、兩種池化的應用場合、降低過擬合的方法、歸一化方法、卷積層大小尺寸的設計原則和卷積核的作用等。

注:本系列沒有對自動化結構網(wǎng)絡設計的模型進行總結,主要原因是模型是由算法根據(jù)具體任務自主設計而來,并非人工設計,因此并不知道其設計原理,對其總結的意義不大。

這些模型的詳細解讀,包括實驗,實際效果,完整結構,大部分都可在公眾號CV技術指南的模型解讀部分看到,少數(shù)模型的解讀將在后續(xù)更新。相關模型的原論文以及所有模型解讀的總結pdf,可關注公眾號 CV技術指南 回復“CNN模型”獲取。

LeNet

第一個卷積神經(jīng)網(wǎng)絡出現(xiàn)在1989年,這個網(wǎng)絡沒有名字,對讀者來說這個結構沒什么新穎的,但其作為第一個卷積神經(jīng)網(wǎng)絡,值得致敬。其結構由卷積層和全連接層組成,激活函數(shù)使用tanh函數(shù),損失函數(shù)使用的是均方誤差MSE,使用了反向傳播算法和隨機梯度下降。值得一提的是,在這篇論文中還出現(xiàn)了權重共享和特征圖像的概念。

LeNet是同作者LeCun在另一篇論文中提出的,用于手寫數(shù)字識別。其結構圖如下:

CNN結構演變總結(一)經(jīng)典模型

AlexNet(2012)

AlexNet是第一個深度神經(jīng)網(wǎng)絡,結構圖如下:

CNN結構演變總結(一)經(jīng)典模型

其創(chuàng)新之處有五處:

1. 使用ReLU作為激活函數(shù)。

2. 提出在全連接層使用Dropout避免過擬合。注:當BN提出后,Dropout就被BN替代了。

3. 由于GPU顯存太小,使用了兩個GPU,做法是在通道上分組。這算不上創(chuàng)新,之所以在這里寫上這一點,是因為它是ShuffleNet_v1使用分組卷積想法的來源。關于ShuffleNet_v1在公眾號CV技術指南的模型解讀中有詳細解讀。

4. 使用局部響應歸一化(Local Response Normalization --LRN),在生物中存在側抑制現(xiàn)象,即被激活的神經(jīng)元會抑制周圍的神經(jīng)元。在這里的目的是讓局部響應值大的變得相對更大,并抑制其它響應值相對比較小的卷積核。例如,某特征在這一個卷積核中響應值比較大,則在其它相鄰卷積核中響應值會被抑制,這樣一來卷積核之間的相關性會變小。LRN結合ReLU,使得模型提高了一點多個百分點。

注:LRN后自Batch-Normalization出現(xiàn)后就再也沒用過了,我印象中只有FstCN 2015年(使用分解時空卷積的行為識別)中用了一次,因此讀者對這個可以不用去了解。

5. 使用重疊池化。作者認為使用重疊池化會提升特征的豐富性,且相對來說會更難過擬合。注:使用重疊池化會出現(xiàn)棋盤格效應。

NiN(2014)

CNN結構演變總結(一)經(jīng)典模型

創(chuàng)新之處有二:

1. 使用MLPconv,后來在其它模型中就演變成了1x1卷積。

2. 提出全局平均池化代替全連接層。

這樣做的好處有以下幾點:

1. 相比于使用全連接層,參數(shù)量極大地減少,相對來說沒那么容易過擬合。

2. 使得feature map直接映射到類別信息,這樣更符合卷積網(wǎng)絡的結構。

3. 全局平均池化綜合了空間所有的信息,使得對輸入的空間轉換更魯棒。

也有一個缺點:必須固定輸入大小。

VGG(2014)

CNN結構演變總結(一)經(jīng)典模型

創(chuàng)新之處有二:

1. 使用了多個小尺寸的卷積核堆疊來代替一個大的卷積核,這樣參數(shù)更少,而感受野卻是一樣的。全部使用了3X3的尺寸,池化都是2x2,步長都為2。

2. 去掉了LRN。作者發(fā)現(xiàn)它效果不明顯。

GoogLeNet(2014)

GoogLeNet也稱為Inception_V1, 其后續(xù)還有三個改進版,合稱Inception系列,對這個系列的解讀在模型解讀部分有詳細解讀,這里只介紹新穎之處。

創(chuàng)新之處有二:

1. 提出Inception Module。大家發(fā)現(xiàn)網(wǎng)絡越深越寬的效果越好,然而這樣會帶來以下幾個問題:

1) 參數(shù)量,計算量越來越大,在有限內存和算力的設備上,其應用也就越難以落地。

2) 對于一些數(shù)據(jù)集較少的場景,太大的模型反而容易過擬合,但模型太小則泛化能力不夠。

3) 容易出現(xiàn)梯度消失的問題。

解決這些問題比較直觀的方法就是采用稀疏連接來代替全連接層,但很明顯,由于底層是通過矩陣計算的,稀疏連接在參數(shù)量上減少了,但并沒有減少計算量。因此設計了如下左圖的結構。

CNN結構演變總結(一)經(jīng)典模型

CNN結構演變總結(一)經(jīng)典模型

使用上面這個結構又會出現(xiàn)一個問題,由于使用了在通道上拼接的方式,導致通道數(shù)很大,因此使用NiN中1x1卷積的方式降低通道數(shù)。最終決定使用如右圖所示的結構

2. 使用了輔助分類函數(shù),如下圖所示,有3個softmax輸出位置,有兩個是在中間位置,這樣方便在中間層輸出分類,同時通過加權(中間0.3)的方式加到最終的分類結果中。作者認為這樣能給模型增加反向傳播的梯度信號,緩解了梯度消失問題,在一定程度上也有正則化的效果。在推理階段,這兩個softmax將會去除。

注:后面的InceptionV2-V3論文中會發(fā)現(xiàn)這玩意沒用,但讀者可以在自己的方向上嘗試一下,也許會有用呢。

完整的結構圖如下:

CNN結構演變總結(一)經(jīng)典模型

Inception_v2和Inception_v3

這兩者是出現(xiàn)在同一篇論文中,作者提出了很多改進技術,使用了其中一部分的稱為V2, 全部都使用的是V3。

創(chuàng)新之處有四:

1. 提出分解卷積。如將5x5卷積核分解為1x5和5x1的非對稱卷積堆疊。

CNN結構演變總結(一)經(jīng)典模型

最終還衍生出了下面這種混合式的模塊。(個人感覺沒必要這么干,意義不大)

CNN結構演變總結(一)經(jīng)典模型

2. 使用了批歸一化Batch-Normalization (BN), 關于BN,完整的介紹出現(xiàn)在另一篇論文中,公眾號CV技術指南中也有對其完整的解讀,感興趣的讀者可在模型解讀中的《Inception系列之Inception_v2》中看到。注:當BN提出后,Dropout就被BN替代了。

3. 提出一種高效降低特征圖大小的方法。

在降低特征圖尺寸時,若按下圖這兩種方式設計,第一種會出現(xiàn)瓶頸,違背模型設計原則。(關于這些設計原則將會總結在《CNN結構演變總結》的第三篇中),第二種方式則參數(shù)量巨大。

CNN結構演變總結(一)經(jīng)典模型

因此就出現(xiàn)了下面這種

CNN結構演變總結(一)經(jīng)典模型

4. 提出標簽平滑化。如果模型在訓練過程中學習使得全部概率值給ground truth標簽,或者使得最大的Logit輸出值與其他的值差別盡可能地大,直觀來說就是模型預測的時候更自信,這樣將會出現(xiàn)過擬合,不能保證泛化能力。因此標簽平滑化很有必要。

平滑化的方式是使得標簽值小于1,而其它值大于0,如5個類,使得標簽值為{0.05,0.05,0.8,0.05,0.05}。具體是由狄拉克函數(shù)函數(shù)實現(xiàn)的。感興趣的可看該論文的解讀。

完整的結構如下:

CNN結構演變總結(一)經(jīng)典模型

Inception_v4, Inception_ResNet_v1和v2

在Inception系列的第四篇論文里,提出了三種結構,這三種結構沒什么創(chuàng)新點,作者在論文中也沒有介紹為什么這么設計。

如果一定要說有創(chuàng)新點的話,主要就是在上面Inception_v2-v3的基礎上,第一種Inception_v4在Inception模塊上改了一些參數(shù),提出了幾個不同參數(shù)的Inception block,與v2和v3沒有本質上的改變。第二第三種結構在Inception模塊中加入了殘差連接,同樣是沒有本質上的改變,且比較少見有用這三種作為特征提取網(wǎng)絡的,因此這里不多介紹。感興趣的看該論文的解讀,里面有完整的結構。

ResNet(2015)

一般而言,網(wǎng)絡越深越寬會有更好的特征提取能力,但當網(wǎng)絡達到一定層數(shù)后,隨著層數(shù)的增加反而導致準確率下降,網(wǎng)絡收斂速度更慢。

針對這個問題,ResNet的創(chuàng)新之處有二:

1. 提出shortcut connection, 右邊直接連接的部分稱為identity mapping。該方法靈感來源于Highway Networks。

CNN結構演變總結(一)經(jīng)典模型

注:剛開始認為殘差連接可以緩解梯度消失問題,但在后續(xù)的論文中經(jīng)過實驗證明它似乎并不能。

2. 提出瓶頸模塊( bottleneck block )。這個瓶頸模塊在MobileNet v2中有所應用并調整。

CNN結構演變總結(一)經(jīng)典模型

使用瓶頸模塊構建出了ResNet34, ResNet50, ResNet101, ResNet152等深層

神經(jīng)網(wǎng)絡。

WRN(2017)

使用identity mapping的殘差塊使我們可以訓練一個非常深的網(wǎng)絡,但與此同時,殘差塊也是殘差網(wǎng)絡的一個缺點。當梯度流通過整個網(wǎng)絡時,網(wǎng)絡不會強迫梯度流過權重層(這會導致訓練中學習不到什么)。所以很有可能少量的塊能夠學習有用的表達,或者很多的塊分享非常少的信息,對最終結果影響很小。

創(chuàng)新之處有二:

1. 提出加寬殘差塊的方式,這種方式可以更加高效地提高殘差網(wǎng)絡性能,而不是增加網(wǎng)絡深度,使用這種方式構建了wider residual networks (WRN)。

2. 提出在殘差塊中使用Dropout。前人的研究中,dropout被插入到了殘差網(wǎng)絡中的identity連接上,這導致性能下降。而WRN提出dropout插入到卷積層之間的方式使性能有所提升。

CNN結構演變總結(一)經(jīng)典模型

DenseNet(2018)

傳統(tǒng)的卷積網(wǎng)絡在一個前向過程中每層只有一個連接,ResNet增加了殘差連接從而增加了信息從一層到下一層的流動。FractalNets重復組合幾個有不同卷積塊數(shù)量的并行層序列,增加名義上的深度,卻保持著網(wǎng)絡前向傳播短的路徑。相類似的操作還有Stochastic depth和Highway Networks等。

這些模型都顯示一個共有的特征,縮短前面層與后面層的路徑,其主要的目的都是為了增加不同層之間的信息流動。

基于信息流動的方式,DenseNet創(chuàng)新之處有一:

1. 傳統(tǒng)L層的網(wǎng)絡僅有L個連接,在DenseNet中使用了L(L+1)/2個連接。這樣做有幾個明顯的優(yōu)點:避免了梯度消失問題,加強了特征傳播,實現(xiàn)特征復用(feature reuse),以及實質上減少了參數(shù)量。

CNN結構演變總結(一)經(jīng)典模型

使用這個密集連接構建了Dense Block

CNN結構演變總結(一)經(jīng)典模型

總結:本文對比較經(jīng)典的一些模型在結構上的創(chuàng)新之處進行了總結,讓讀者對目前特征提取網(wǎng)絡有一個比較全面的了解,通過對創(chuàng)新之處的總結概括,相信讀者對于CNN這種特征提取網(wǎng)絡的作用機制有了清晰的認識。

本文來源于公眾號CV技術指南的技術總結系列。

更多內容請關注公眾號CV技術指南,專注于計算機視覺的技術總結,最新技術跟蹤。

在公眾號CV技術指南 中回復“CNN模型”可獲得以上模型的詳細解讀pdf以及論文原文,注:少部分模型沒有解讀。

在下一篇將對目前的輕量化網(wǎng)絡進行總結,在下篇中讀者將了解到,目前降低神經(jīng)網(wǎng)絡計算量的方式有哪些,設計這樣的方式的原理何在。

在第三篇中我們將對經(jīng)典模型和輕量化模型中涉及到的一些方法進行總結,介紹原理作用,總結在這些模型論文中提到的網(wǎng)絡設計原則,讓讀者可以根據(jù)具體任務自主設計網(wǎng)絡或選擇合適的網(wǎng)絡,避免設計時胡亂選擇參數(shù)或隨意選擇網(wǎng)絡。

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯(lián)系郵箱:
    *驗 證 碼:

    粵公網(wǎng)安備 44030502002758號