




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PPT模板下載:/moban/行業(yè)PPT模板:/hangye/節(jié)日PPT模板:/jieri/PPT素材下載:/sucai/PPT背景圖片:/beijing/PPT圖表下載:/tubiao/優(yōu)秀PPT下載:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/資料下載:/ziliao/PPT課件下載:/kejian/范文下載:/fanwen/試卷下載:/shiti/教案下載:/jiaoan/PPT論壇:
6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)6.2CNN訓(xùn)練6.3卷積操作的變種6.4池化操作的變種6.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.6幾種拓展的CNN結(jié)構(gòu)6.7基于深度CNN的遙感圖像分類(lèi)第六章卷積神經(jīng)網(wǎng)絡(luò)6.8基于深度CNN的運(yùn)動(dòng)模糊去除方法典型的CNN由輸入層、卷積層、池化層、全連接層、輸出層等構(gòu)成。其思維導(dǎo)向,如圖所示;卷積神經(jīng)網(wǎng)絡(luò)6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)卷積核
卷積核就是觀察的范圍,與人眼不同,計(jì)算機(jī)的觀察范圍要比人眼小得多,一般使用3×3,5×5,7×7等矩陣作為卷積核。應(yīng)該使用多大的卷積核,一般由輸入圖片的大小來(lái)決定的,輸入圖片越大,使用的卷積核也越大。6.1.1基本概念注意:卷積核一般都是奇數(shù)。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)44步長(zhǎng)
人眼可以很容易直接找到目標(biāo)內(nèi)容,而計(jì)算機(jī)不行。計(jì)算機(jī)需要一行一行的把整張圖片掃描一遍才能找到目標(biāo),而掃描的間距就是步長(zhǎng)。一般為了不遺漏特征值,掃描的步長(zhǎng)通常都會(huì)設(shè)定成1(針對(duì)大圖時(shí)也會(huì)將步長(zhǎng)設(shè)大)6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)填充
(1)只掃描可卷積的像素(padding=‘valid’),如圖所示。如果使用3×3的卷積核進(jìn)行卷積,那么通常需從(2,2)的位置開(kāi)始(此處下標(biāo)從1開(kāi)始),因?yàn)槿绻麖?1,1)開(kāi)始,則該點(diǎn)的左面和上面都沒(méi)有數(shù)據(jù),同理最終以(n-1,n-1)結(jié)束;如果步長(zhǎng)為1,卷積操作以后得到的結(jié)果會(huì)比原來(lái)的圖片長(zhǎng)寬各少2個(gè)像素。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
(2)掃描所有像素(進(jìn)行邊緣0填充,padding=‘same’),如圖所示。這種方式不管卷積核多大,都從(1,1)開(kāi)始操作,周邊不足的地方以0進(jìn)行填充,所以步長(zhǎng)為1時(shí),卷積以后得到的結(jié)果和原圖大小是一樣的。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)深度
用一個(gè)卷積核對(duì)圖片進(jìn)行一次卷積操作,將會(huì)得到一個(gè)結(jié)果;用多個(gè)卷積核對(duì)圖片進(jìn)行多次卷積操作就會(huì)得到多個(gè)結(jié)果,該結(jié)果的數(shù)量就是深度。
為什么要對(duì)同一張圖片進(jìn)行多次卷積操作呢?
6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
首先,在全連接層中,上層神經(jīng)元到本層某個(gè)神經(jīng)元的權(quán)重是w,兩層之間的參數(shù)w的數(shù)量就是兩層神經(jīng)元個(gè)數(shù)的乘積;而對(duì)圖片進(jìn)行卷積操作時(shí),使用同一個(gè)卷積核,那么這個(gè)卷積核就與全連接層中的一個(gè)w是相同的意義,一個(gè)卷積核就是一個(gè)參數(shù)(或者也可以理解為一個(gè)卷積核就對(duì)應(yīng)一個(gè)或一組神經(jīng)元),在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,每個(gè)卷積核的值都會(huì)被調(diào)整。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)卷積和互相關(guān)
卷積神經(jīng)網(wǎng)絡(luò)由卷積操作得名,卷積操作是信號(hào)處理、圖像處理和其它領(lǐng)域最常用的一種操作。在深度學(xué)習(xí)領(lǐng)域,卷積操作使用互相關(guān)運(yùn)算來(lái)代替。
卷積運(yùn)算的定義為該定義表明,卷積操作是兩個(gè)函數(shù)的積分,其中一個(gè)函數(shù)經(jīng)過(guò)顛倒和位移操作。下圖是卷積操作的可視化演示。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
左上角的兩個(gè)圖片是原始的
,
過(guò)濾器,首先將其顛倒如左下角兩圖所示,然后沿著水平坐標(biāo)軸滑動(dòng)過(guò)濾器如圖右上角兩圖所示。在每一個(gè)位置,計(jì)算
和
顛倒后的交叉范圍的面積,每一個(gè)具體點(diǎn)的交叉面積就是該點(diǎn)的卷積值,整個(gè)操作的卷積是所有卷積值的累加。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
互相關(guān)運(yùn)算的定義是兩個(gè)函數(shù)的滑動(dòng)點(diǎn)乘或者滑動(dòng)內(nèi)積,過(guò)濾器不需要經(jīng)過(guò)顛倒操作。過(guò)濾器和函數(shù)的交叉區(qū)域的面積和就是互相關(guān),下圖顯示了互相關(guān)運(yùn)算和卷積運(yùn)算的區(qū)別。
在深度學(xué)習(xí)中,卷積運(yùn)算中的過(guò)濾器并沒(méi)有經(jīng)過(guò)顛倒操作,因此實(shí)際上就是互相關(guān)運(yùn)算。但是由于卷積神經(jīng)網(wǎng)絡(luò)中的卷積核(過(guò)濾器)是隨機(jī)初始化的,所以在此互相關(guān)運(yùn)算和卷積運(yùn)算沒(méi)有本質(zhì)的區(qū)別,可以把經(jīng)過(guò)學(xué)習(xí)后得到的互相關(guān)過(guò)濾器視為實(shí)際的卷積過(guò)濾器的顛倒。1212
與神經(jīng)網(wǎng)絡(luò)一樣,模型輸入需進(jìn)行預(yù)處理操作。常見(jiàn)的輸入層中對(duì)圖像預(yù)處理方式有:去均值、歸一化、主成分分析(principalcomponentanalysis,PCA)/支持向量(Supportvectormachine,SVM)降維等。
1.均值化
把輸入數(shù)據(jù)各個(gè)維度都中心化到0,所有樣本求和求平均,然后用所有的樣本減去這個(gè)均值樣本就是去均值。
2.歸一化
數(shù)據(jù)幅度歸一化到同樣范圍,對(duì)于每個(gè)特征而言,范圍值區(qū)間為[-1,1]。
3.PCA/白化
用主成分分析法(PCA)進(jìn)行降維,讓每個(gè)維度的相關(guān)性消失,特征和特征之間相互獨(dú)立。白化是對(duì)數(shù)據(jù)每個(gè)特征軸上的幅度歸一化。6.1.2輸入層6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)136.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(a)均值化與歸一化
(b)去相關(guān)與白化
假設(shè)有一個(gè)3×3大小的卷積層,其輸入通道為3、輸出通道為4。那么一般的操作就是用4個(gè)3×3×3的卷積核來(lái)分別同輸入數(shù)據(jù)卷積,得到的輸出只有一個(gè)通道的數(shù)據(jù)。之所以會(huì)得到一通道的數(shù)據(jù),是因?yàn)閯傞_(kāi)始3×3×3的卷積核的每個(gè)通道會(huì)在輸入數(shù)據(jù)的每個(gè)對(duì)應(yīng)通道上做卷積,然后疊加每一個(gè)通道對(duì)應(yīng)位置的值,使之變成單通道,那么4個(gè)卷積核一共需要(3×3×3)×4=108個(gè)參數(shù)。6.1.3卷積層常規(guī)卷積6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在大腦識(shí)別圖像的過(guò)程中,大腦并不是整張圖同時(shí)識(shí)別,而是對(duì)于圖片中的每一個(gè)特征首先局部感知,然后更高層次對(duì)局部進(jìn)行綜合操作,從而得到全局信息。局部感知過(guò)程,6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)局部感知
卷積層的計(jì)算公式為
式中,F(xiàn)表示每一張?zhí)卣鲌D,w表示卷積核;
表示卷積運(yùn)算。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
卷積操作的含義是什么?例如,一張32×32×3的圖像,進(jìn)行卷積核大小為5×5×3的計(jì)算過(guò)程,如圖6.12所示。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(a)卷積條件與結(jié)果
(b)卷積計(jì)算
(c)卷積核
(d)逐層卷積6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
所謂激勵(lì),實(shí)際上是對(duì)卷積層的輸出結(jié)果做一次非線性映射。卷積層的輸出可表示為
式中,
表示第
層第個(gè)輸出特征圖,
表示第
層第n個(gè)特征圖與第
-1層第m個(gè)特征圖之間的連接權(quán)重,
表示卷積計(jì)算,
表示第
-1層第m個(gè)輸出特征圖,
表示第
層第n個(gè)偏置。常用的非線性激活函數(shù)有Sigmoid、Tanh、ReLU、LReLU等。Sigmod:Tanh:ReLU:LReLU:6.1.4激勵(lì)層6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
池化層(Poolinglayer):也稱(chēng)為子采樣(Subsampling)或降采樣(Downsampling)。主要用于特征降維,壓縮數(shù)據(jù)和參數(shù)的數(shù)量,減小過(guò)擬合,同時(shí)提高模型的容錯(cuò)性。
1.池化層功能
池化操作(Pooling)往往會(huì)用在卷積層之后,通過(guò)池化來(lái)降低卷積層輸出的特征維度,有效減少網(wǎng)絡(luò)參數(shù)、防止過(guò)擬合現(xiàn)象。主要功能如下:
(1)增大感受野
所謂感受野,即一個(gè)像素對(duì)應(yīng)回原圖的區(qū)域大小。假如沒(méi)有pooling,一個(gè)3×3、步長(zhǎng)為1的卷積,輸出一個(gè)像素的感受野就是3×3的區(qū)域;再加一個(gè)stride=1的3×3卷積,則感受野為5×5。感受野的增加對(duì)于模型能力的提升是必要的,正所謂“一葉障目則不見(jiàn)泰山也”。6.1.5池化層206.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
(2)平移不變性
在池化層,池化函數(shù)使用某一位置的相鄰輸出的總體統(tǒng)計(jì)特征來(lái)代替網(wǎng)絡(luò)在該位置的輸出。希望不管采用什么樣的池化函數(shù),當(dāng)對(duì)輸入進(jìn)行少量平移時(shí),經(jīng)過(guò)池化函數(shù)后的大多數(shù)輸出并不會(huì)發(fā)生改變,這就是平移的不變性。因?yàn)閜ooling不斷地抽象了區(qū)域的特征而不關(guān)心位置,所以pooling一定程度上增加了平移不變性。池化的平移不變性(translationinvariant),如圖所示。圖中右上角為3副橫折位置不一樣的圖像,分別同左上角的卷積核進(jìn)行運(yùn)算,然后再進(jìn)行3×3大小池化操作,最后得到的識(shí)別結(jié)果相同。6.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
(2)平移不變性
在池化層,池化函數(shù)使用某一位置的相鄰輸出的總體統(tǒng)計(jì)特征來(lái)代替網(wǎng)絡(luò)在該位置的輸出。希望不管采用什么樣的池化函數(shù),當(dāng)對(duì)輸入進(jìn)行少量平移時(shí),經(jīng)過(guò)池化函數(shù)后的大多數(shù)輸出并不會(huì)發(fā)生改變,這就是平移的不變性。因?yàn)閜ooling不斷地抽象了區(qū)域的特征而不關(guān)心位置,所以pooling一定程度上增加了平移不變性。池化的平移不變性(translationinvariant),如圖所示。圖中右上角為3副橫折位置不一樣的圖像,分別同左上角的卷積核進(jìn)行運(yùn)算,然后再進(jìn)行3×3大小池化操作,最后得到的識(shí)別結(jié)果相同。226.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
(3)降低優(yōu)化難度和參數(shù)可以用步長(zhǎng)大于1的卷積來(lái)替代池化,但是池化每個(gè)特征通道單獨(dú)做降采樣,與基于卷積的降采樣相比,不需要參數(shù),更容易優(yōu)化。全局池化更是可以大大降低模型的參數(shù)量和優(yōu)化工作量。2.最常見(jiàn)的池化操作最常見(jiàn)的池化操作為平均池化(meanpooling)和最大池化(maxpooling)。平均池化是計(jì)算圖像區(qū)域的平均值作為該區(qū)域池化后的值。最大池化是選圖像區(qū)域的最大值作為該區(qū)域池化后的值。(1)最大池化最大池化又分為重疊池化和非重疊池化。如,常見(jiàn)的stride=kernelsize,屬于非重疊池化;若stride<kernelsize,則屬重疊池化。與非重疊池化相比,重疊池化不僅可以提升預(yù)測(cè)精度,同時(shí)在一定程度上可以緩解過(guò)擬合。236.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
最大池化的具體操作:整個(gè)圖片被不重疊的分割成若干個(gè)同樣大小的小塊(poolingsize)。每個(gè)小塊內(nèi)只取最大的數(shù)字,再舍棄其他節(jié)點(diǎn)后,保持原有的平面結(jié)構(gòu)得到輸出,如圖所示。相應(yīng)的,對(duì)于多個(gè)特征映射(featuremap),原本64張224×224的圖像,經(jīng)過(guò)最大池化后,變成了64張112×112的圖像,如圖6.20所示,從而實(shí)現(xiàn)了降采樣(downsample)的目的。246.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)3.平均池化圖6.21表示一個(gè)4×4特征映射鄰域內(nèi)的值用一個(gè)2×2的濾波器(filter)、步長(zhǎng)為2進(jìn)行掃描,計(jì)算平均值輸出到下一層,這叫做平均池化(meanpooling)。256.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)6.1.6輸出層(全連接層)
經(jīng)過(guò)若干次卷積+激勵(lì)+池化后,就到了輸出層。模型會(huì)將學(xué)到的一個(gè)高質(zhì)量的特征圖送全連接層。其實(shí)在全連接層之前,如果神經(jīng)元數(shù)目過(guò)大,學(xué)習(xí)能力強(qiáng),有可能出現(xiàn)過(guò)擬合。因此,可以引入dropout操作,通過(guò)隨機(jī)刪除神經(jīng)網(wǎng)絡(luò)中的部分神經(jīng)元,來(lái)解決此問(wèn)題。還可以進(jìn)行局部響應(yīng)歸一化(Localresponsenormalization,
LRN)、數(shù)據(jù)增強(qiáng)等操作來(lái)增加魯棒性。
當(dāng)來(lái)到了全連接層之后,可以理解為一個(gè)簡(jiǎn)單的多分類(lèi)神經(jīng)網(wǎng)絡(luò)(如BP神經(jīng)網(wǎng)絡(luò)),通過(guò)softmax函數(shù)得到最終的輸出。整個(gè)模型訓(xùn)練完畢。266.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)6.1.6輸出層(全連接層)兩層之間所有神經(jīng)元都有權(quán)重連接,通常全連接層在卷積神經(jīng)網(wǎng)絡(luò)尾部。也就是與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)神經(jīng)元的連接方式一樣,如圖所示。276.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)6.1.7維度變化過(guò)程
在CNN中,通過(guò)卷積核對(duì)上一層進(jìn)行卷積操作,完成特征抽取,在下一層進(jìn)行池化。本節(jié)主要分析卷積層和池化層的維度變化過(guò)程,在使用全0填充(如果步長(zhǎng)為1,則可避免節(jié)點(diǎn)矩陣通過(guò)卷積層后尺寸發(fā)生變化)時(shí),卷積層/池化層的輸出維度計(jì)算公式為
式中,
表示卷積層輸出矩陣的長(zhǎng)度,它等于輸入層矩陣長(zhǎng)度除以在長(zhǎng)度方向上的步長(zhǎng)的向上取整值,
表示卷積層輸出矩陣的寬度,它等于輸入層矩陣寬度除以在寬度方向上步長(zhǎng)的向上取整值。
286.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)6.1.7維度變化過(guò)程如果不使用全0填充,則卷積層/池化層的輸出維度計(jì)算公式為式中,表示卷積核/池化核在長(zhǎng)度方向上的大小,表示卷積核/池化核在寬度方向上的大小。296.2CNN訓(xùn)練
卷積神經(jīng)網(wǎng)絡(luò)包括由它延伸出的深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程都由兩個(gè)部分組成:前向傳播和反向傳播。假設(shè)網(wǎng)絡(luò)共有L層,其中卷積層的卷積核個(gè)數(shù)為K,卷積核的尺寸為F,padding的尺寸為P,卷積步長(zhǎng)為S。前向傳播的步驟如下:步驟1:根據(jù)padding尺寸P填充樣本維度;步驟2:初始化網(wǎng)絡(luò)層的權(quán)重w和偏置b;步驟3:第一層為輸入層,則前向傳播從第二層l=2開(kāi)始到L-2層結(jié)束
306.2CNN訓(xùn)練
(a)若第l層為卷積層,則該層的輸出為(b)若第l層為池化層,則該層輸出為(c)若第l層為全連接層,則該層輸出為316.2CNN訓(xùn)練步驟4:網(wǎng)絡(luò)最后層激活函數(shù)若選為Softmax,則第L層的輸出為
以上是CNN前向傳播的過(guò)程,為了防止過(guò)擬合,在網(wǎng)絡(luò)設(shè)置時(shí),會(huì)設(shè)置Dropout系數(shù)。該參數(shù)作用是使網(wǎng)絡(luò)中神經(jīng)元隨機(jī)失活,即神經(jīng)元強(qiáng)迫置零,達(dá)到防止過(guò)擬合的目的。
在反向傳播中,網(wǎng)絡(luò)損失函數(shù)為交叉熵?fù)p失函數(shù)(Categoricalcrossentropyloss),它描述網(wǎng)絡(luò)輸出概率與實(shí)際輸出概率的距離,即交叉熵越小,兩者概率分布越接近。假設(shè)該損失函數(shù)為
,學(xué)習(xí)率為
。
326.2CNN訓(xùn)練反向傳播中第l層權(quán)重和偏置的更新公式為在反向傳播中,網(wǎng)絡(luò)會(huì)隨著迭代次數(shù)的增加不斷調(diào)優(yōu)權(quán)重和偏置,使得交叉熵?fù)p失函數(shù)最小,直到它不再變化或達(dá)到迭代次數(shù)停止。336.3卷積操作的變種6.3.1深度可分離卷積操作
為了便于比較,這里仍先給出常規(guī)卷積過(guò)程,如圖所示。(a)1層的輸出標(biāo)準(zhǔn)2D卷積,使用1個(gè)過(guò)濾器
(b)有128層的輸出的標(biāo)準(zhǔn)2D卷積,要使用128個(gè)過(guò)濾器346.3卷積操作的變種
1.逐層卷積(DepthwiseConvolution,DW)
逐層卷積(DW)的一個(gè)卷積核負(fù)責(zé)一個(gè)通道,一個(gè)通道只被一個(gè)卷積核卷積。前面的常規(guī)卷積每個(gè)卷積核同時(shí)操作輸入圖片的每個(gè)通道?,F(xiàn)在不使用2D卷積中大小為3×3×3的單個(gè)過(guò)濾器,而是分開(kāi)使用3個(gè)核。每個(gè)過(guò)濾器的大小為3×3×1。每個(gè)核與輸入層的一個(gè)通道卷積(僅一個(gè)通道,而非所有通道?。?。每個(gè)這樣的卷積都能提供大小為5×5×1的映射圖。然后,將這些映射圖堆疊在一起,創(chuàng)建一個(gè)5×5×3的圖像。經(jīng)過(guò)這個(gè)操作之后,得到大小為5×5×3的輸出,如圖所示。356.3卷積操作的變種
逐層卷積完成后的特征映射數(shù)量與輸入層的通道數(shù)相同,無(wú)法擴(kuò)展特征映射;而且這種運(yùn)算對(duì)輸入層的每個(gè)通道獨(dú)立進(jìn)行卷積運(yùn)算,沒(méi)有有效利用不同通道在相同空間位置上的特征信息。因此,需要逐層卷積將這些特征映射進(jìn)行組合生成新的特征映射。366.3卷積操作的變種
2.逐像素卷積(PointwiseConvolution,PC)逐像素卷積的運(yùn)算與常規(guī)卷積運(yùn)算非常相似,它的卷積核的尺寸為1×1×C,C為上一層的通道數(shù)。所以這里的卷積運(yùn)算會(huì)將上一步的映射在深度方向上進(jìn)行加權(quán)組合,生成新的特征映射,有幾個(gè)卷積核就有幾個(gè)輸出特征映射。為了擴(kuò)展深度,應(yīng)用一個(gè)核大小為1×1×3的1×1卷積。將5×5×3的輸入圖像與每個(gè)1×1×3的核卷積,可得到大小為5×5×1的映射圖,如圖所示。
因此,在應(yīng)用128個(gè)1×1卷積之后,得到大小為5×5×128的層,如圖所示376.3卷積操作的變種
3.深度可分卷積通過(guò)上述兩個(gè)步驟,深度可分卷積也會(huì)將輸入層(7×7×3)變換到輸出層(5×5×128)。深度可分卷積的整個(gè)過(guò)程,如圖所示。
與2D卷積相比,深度可分卷積所需的操作要少得多。對(duì)于大小為H×W×C的輸入圖像,如果使用Nc個(gè)大小為h×h×C的核執(zhí)行2D卷積(步幅為1,填充為0,其中h是偶數(shù))。386.3卷積操作的變種為了將輸入層(H×W×C)變換到輸出層(H-h+1)×(W-h+1)×Nc。所需的總乘法次數(shù)為
另一方面,對(duì)于同樣的變換,深度可分卷積所需的乘法次數(shù)為396.3卷積操作的變種
深度可分卷積與2D卷積所需的乘法次數(shù)比為當(dāng)Nc>>h時(shí),則式(6.3.3)可約簡(jiǎn)為1/h2。基于此,如果使用3×3過(guò)濾器,則2D卷積所需的乘法次數(shù)是深度可分卷積的9倍。如果使用5×5過(guò)濾器,則2D卷積所需的乘法次數(shù)是深度可分卷積的25倍。
使用深度可分卷積會(huì)降低卷積中參數(shù)的數(shù)量。因此,對(duì)于較小的模型而言,如果用深度可分卷積替代2D卷積,模型的能力可能會(huì)顯著下降。這樣得到的模型可能是次優(yōu)的。當(dāng)然如果使用得當(dāng),深度可分卷積能在不降低你的模型性能的前提下幫助你實(shí)現(xiàn)效率提升。
406.3卷積操作的變種6.3.2空洞卷積
空洞卷積也叫擴(kuò)張卷積或者膨脹卷積,簡(jiǎn)單來(lái)說(shuō)就是在卷積核元素之間加入一些空格(零)來(lái)擴(kuò)大卷積核的過(guò)程。通過(guò)這種方式,可以在不做池化損失信息的情況下,增大圖像的感受野,并且與常規(guī)卷積核的大小相同,參數(shù)量不變。假設(shè)以一個(gè)變量rate來(lái)衡量空洞卷積的擴(kuò)張系數(shù),則加入空洞之后的實(shí)際卷積核尺寸與原始卷積核尺寸之間的關(guān)系為
416.3卷積操作的變種6.3.2空洞卷積
式中,k為原始卷積核大小,rate為卷積擴(kuò)張率,K為經(jīng)過(guò)擴(kuò)展后實(shí)際卷積核大小。除此之外,空洞卷積的卷積方式跟常規(guī)卷積一樣。不同擴(kuò)展率rate,卷積核的感受野不同。例如,rate=1,2,4時(shí)卷積核的感受野,如圖所示。426.3卷積操作的變種
上圖中,卷積核沒(méi)有紅點(diǎn)標(biāo)記位置為0,紅點(diǎn)標(biāo)記位置同常規(guī)卷積核。3×3的紅點(diǎn)表示經(jīng)過(guò)卷積后,輸出圖像為3×3像素。盡管所有這三個(gè)擴(kuò)張卷積的輸出都是同一尺寸,但模型觀察到的感受野有很大的不同。
網(wǎng)絡(luò)中第層卷積層或池化層的感受野大小為
式中,表示該層卷積核或池化層所用核大小,表示上一層感受野大小,表示第i層卷積或池化的步長(zhǎng)。
如果初始感受野大小為1,則
33卷積(stride=1):r=1+(3-1)=3,感受野為33。
22池化(stride=2):r=3+(2-1)=4,感受野為44。33卷積(stride=3):r=4+(3-1)×2×1=8,感受野為88。
33卷積(stride=2):r=8+(3-1)×3×2×1=20,感受野為2020。
436.3卷積操作的變種
空洞卷積的感受野計(jì)算方法和上面相同,所謂的空洞可以理解為擴(kuò)大了卷積核的大小,下面來(lái)介紹一下空洞卷積的感受野變化(卷積核大小為33,stride=1,下面的卷積過(guò)程后面的以前面的為基礎(chǔ)):
1-dilatedconv:rate=1的卷積其實(shí)就是普通3×3卷積,因此,
,
,因此感受野為33。2-dilatedconv:rate=2可以理解為將卷積核變成了55,因此,,,感受野大小為77。446.3卷積操作的變種可見(jiàn),將卷積以上面的過(guò)程疊加,感受野變化會(huì)指數(shù)增長(zhǎng),感受野大小,該計(jì)算公式是基于疊加的順序,如果單用三個(gè)的2-dilated卷積,則感受野使用卷積感受野計(jì)算公式計(jì)算(如2-dilated,相當(dāng)于5x5卷積):第一層的2-dilated卷積:r=1+(5-1)=5。第二層的2-dilated卷積:r=5+(5-1)×1=9。第三層的2-dilated卷積:r=9+(5-1)×1×1=13。456.3卷積操作的變種6.3.33D卷積
3D卷積是在2D卷積的基礎(chǔ)上建立的,是2D卷積的泛化。下圖就是3D卷積,其過(guò)濾器深度小于輸入層深度(核大小<通道大小)。因此,3D過(guò)濾器可以在所有三個(gè)方向(圖像的高度、寬度、通道)上移動(dòng)。在每個(gè)位置,逐元素的乘法和加法都會(huì)提供一個(gè)數(shù)值。因?yàn)檫^(guò)濾器是滑過(guò)一個(gè)3D空間,所以輸出數(shù)值也按3D空間排布。也就是說(shuō),輸出是一個(gè)3D數(shù)據(jù)。
466.3卷積操作的變種6.3.33D卷積
與2D卷積(編碼了2D域中目標(biāo)的空間關(guān)系)類(lèi)似,3D卷積可以描述3D空間中目標(biāo)的空間關(guān)系。對(duì)某些應(yīng)用(比如生物醫(yī)學(xué)影像中的3D分割/重構(gòu)),這樣的3D關(guān)系很重要,如在CT和MRI中,血管之類(lèi)的目標(biāo)會(huì)在3D空間中蜿蜒曲折。
476.3卷積操作的變種6.3.4分組卷積
1.分組卷積原理
分組卷積(groupconvolution,GC)最早出現(xiàn)在AlexNet,常規(guī)的卷積操作對(duì)輸入圖像進(jìn)行整體的卷積計(jì)算,6.3.1節(jié)已展示。具有兩個(gè)濾波器組的卷積層,如圖所示。圖中,將輸入數(shù)據(jù)分成了2組(組數(shù)為g)。
注意:這種分組只是在深度(
)上進(jìn)行劃分,即某幾個(gè)通道編為一組,這個(gè)具體的數(shù)量由
決定。因?yàn)檩敵鰯?shù)據(jù)的改變,相應(yīng)的卷積核也需要做出同樣的改變。如果分成g組,則每組中卷積核的深度為
,而卷積核的大小不變,此時(shí)每組的卷積核的個(gè)數(shù)為個(gè)
,而不是原來(lái)的
。486.3卷積操作的變種
然后用每組的卷積核同它們對(duì)應(yīng)組內(nèi)的輸入數(shù)據(jù)卷積,得到輸出數(shù)據(jù)以后,再用concatenate的方式組合起來(lái),最終的輸出數(shù)據(jù)的通道仍舊為
。也就是說(shuō),分組數(shù)g確定后,將并行運(yùn)算g個(gè)相同的卷積過(guò)程,每個(gè)過(guò)程里(每組),輸入數(shù)據(jù)為
,卷積核大小為
,一共有
個(gè),輸出數(shù)據(jù)為
。
(1)參數(shù)量分析
輸入特征圖的尺寸為
,輸出特征圖的通道數(shù)為
。如果被分成g組,則有每組的輸入特征圖的通道數(shù)為
,每組的輸出通道數(shù)為(因?yàn)轭A(yù)先定義了輸出的通道數(shù)為
,那么平均分給每個(gè)組的輸出特征圖數(shù)就應(yīng)該為
)。
496.3卷積操作的變種
(2)卷積核參數(shù)量
也就是說(shuō)每組需要有
個(gè)卷積核,則共有
個(gè)卷積核(總的卷積核數(shù)量同普通卷積是相同的,但由于稀疏連接,每個(gè)卷積核的參數(shù)量減少為
,卷積核的總參數(shù)量為
。
506.3卷積操作的變種
(3)計(jì)算量分析
假設(shè)經(jīng)過(guò)卷積層特征圖的大小不變,則卷積層的計(jì)算量為
式(6.2.10)表明,分組卷積可以使得卷積層的參數(shù)量和計(jì)算量都減為原來(lái)的1/g。常規(guī)卷積與分組卷積對(duì)照,如圖所示。516.3卷積操作的變種
2.分組卷積優(yōu)點(diǎn)
極大地減少了參數(shù)。例如,當(dāng)輸入通道為256,輸出通道也為256,核大小為3×3,不做分組卷積參數(shù)為256×3×3×256。實(shí)施分組卷積時(shí),若組數(shù)為8,每個(gè)組的輸入信道和輸出信道均為32,參數(shù)為8×32×3×3×32,是原來(lái)的八分之一。而分組卷積最后每一組輸出的特征映射應(yīng)該是以連接的方式組合。
Alex認(rèn)為分組卷積的方式能夠增加濾波器之間的對(duì)角相關(guān)性,而且能夠減少訓(xùn)練參數(shù),不容易過(guò)擬合,這類(lèi)似于正則化效果。
526.3卷積操作的變種6.3.5轉(zhuǎn)置卷積
轉(zhuǎn)置卷積(transposedConvolutions)又稱(chēng)反卷積(deconvolution)。注意:此處的反卷積不是數(shù)學(xué)意義上的反卷積,或者是分?jǐn)?shù)步長(zhǎng)卷積(fractiallystracedconvolutions)。之所以叫轉(zhuǎn)置卷積是因?yàn)樗鼘⒊R?guī)卷積操作中的卷積核做一個(gè)轉(zhuǎn)置,然后把卷積的輸出作為轉(zhuǎn)置卷積的輸入,而轉(zhuǎn)置卷積的輸出,就是卷積的輸入。
卷積與轉(zhuǎn)置卷積的計(jì)算過(guò)程正好相反,如圖所示。(a)普通卷積(正)(b)轉(zhuǎn)置卷積(反)536.3卷積操作的變種
常規(guī)卷積的卷積核大小為3×3,步長(zhǎng)為2,填充(padding)為1。卷積核在紅框位置時(shí)輸出元素1,在綠色位置時(shí)輸出元素2??梢园l(fā)現(xiàn),輸入元素a僅與一個(gè)輸出元素有運(yùn)算關(guān)系,也就是元素1,而輸入元素b與輸出元素1、2均有關(guān)系。同理,c只與一個(gè)元素2有關(guān),而d與1、2、3、4四個(gè)元素都有關(guān);那么在進(jìn)行轉(zhuǎn)置卷積時(shí),依然應(yīng)該保持這個(gè)連接關(guān)系不變。
轉(zhuǎn)置卷積(反卷積)需要將圖(a)中綠色的特征圖作為輸入、藍(lán)色的特征圖作為輸出,并且保證連接關(guān)系不變。也就是說(shuō),a只與1有關(guān),b與1、2兩個(gè)元素有關(guān),其它類(lèi)推。怎么才能達(dá)到這個(gè)效果呢?可以先用0給綠色特征圖做插值,插值的個(gè)數(shù)就是使相鄰兩個(gè)綠色元素的間隔為卷積的步長(zhǎng),同時(shí)邊緣也需要進(jìn)行與插值數(shù)量相等的補(bǔ)0,如圖(b)所示。
546.3卷積操作的變種這時(shí),卷積核的滑動(dòng)步長(zhǎng)不是2而是1,步長(zhǎng)體現(xiàn)在插值補(bǔ)0的過(guò)程中。一般在CNN中,轉(zhuǎn)置卷積用于對(duì)特征圖進(jìn)行上采樣,比如想將特征圖擴(kuò)大2倍,那么就可以使用步長(zhǎng)為2的轉(zhuǎn)置卷積。
2.分組卷積優(yōu)點(diǎn)
極大地減少了參數(shù)。例如,當(dāng)輸入通道為256,輸出通道也為256,核大小為3×3,不做分組卷積參數(shù)為256×3×3×256。實(shí)施分組卷積時(shí),若組數(shù)為8,每個(gè)組的輸入信道和輸出信道均為32,參數(shù)為8×32×3×3×32,是原來(lái)的八分之一。而分組卷積最后每一組輸出的特征映射應(yīng)該是以連接的方式組合。
Alex認(rèn)為分組卷積的方式能夠增加濾波器之間的對(duì)角相關(guān)性,而且能夠減少訓(xùn)練參數(shù),不容易過(guò)擬合,這類(lèi)似于正則化效果。
556.3卷積操作的變種
為了更好地理解轉(zhuǎn)置卷積,定義w為卷積核,Large為輸入圖像,Small為輸出圖像。經(jīng)過(guò)卷積(矩陣乘法)后,將大圖像下采樣為小圖像。這種矩陣乘法的卷積實(shí)現(xiàn)w×Large=Small,如圖所示。它將輸入平展為16×1的矩陣,并將卷積核轉(zhuǎn)換為一個(gè)(4×16)稀疏矩陣。然后,在稀疏矩陣和平展的輸入之間使用矩陣乘法。之后,再將所得到的矩陣(4×1)轉(zhuǎn)換為2×2的輸出。
卷積的矩陣乘法:將Large輸入圖像(4×4)轉(zhuǎn)換為Small輸出圖像(2×2)。566.3卷積操作的變種
現(xiàn)在,如果等式的兩邊都乘上矩陣的轉(zhuǎn)置T,并借助“一個(gè)矩陣與其轉(zhuǎn)置矩陣的乘法得到一個(gè)單位矩陣”這一性質(zhì),那么就能得到T×Small=Large,如圖所示。576.3卷積操作的變種6.3.6平鋪卷積
平鋪卷積是介于局部卷積和常規(guī)卷積之間,與局部卷積相同之處在于相鄰的單元具有不同的參數(shù);與其區(qū)別在于,會(huì)有t個(gè)不同的卷積核循環(huán)使用,也就是說(shuō)相隔為t的卷積核,就會(huì)共享參數(shù)。
圖中,S為卷積核;x為特征值;相鄰的卷積核都有各自的參數(shù);但每隔t個(gè)(圖中t=2)卷積核,參數(shù)就會(huì)重復(fù)使用。586.3卷積操作的變種6.3.8卷積運(yùn)算的核心思想
卷積運(yùn)算主要通過(guò)三個(gè)重要的思想來(lái)幫助改進(jìn)機(jī)器學(xué)習(xí)系統(tǒng):稀疏交互(sparseinter-actions)、參數(shù)共享(parametersharing)、等變表示(equivariantrepresentations)。
1.稀疏交互
卷積網(wǎng)絡(luò)的稀疏交互(也叫稀疏連接或者稀疏權(quán)重),是通過(guò)使卷積核的大小遠(yuǎn)小于輸入的大小來(lái)達(dá)到的。這就區(qū)別于全連接層的矩陣相乘運(yùn)算,卷積核就只接受有限個(gè)輸入,使得參數(shù)量減小。
例如,3×3大小的卷積核,就只接受9個(gè)像素點(diǎn)上的輸入。這個(gè)塊的大小叫做感受野(receptivefield),或者FOV(fieldofview)。這說(shuō)明,卷積核主要是在學(xué)習(xí)局部相關(guān)性。596.3卷積操作的變種
CNN可以處理時(shí)間序列,因?yàn)镃NN利用數(shù)據(jù)的局部相關(guān)性,語(yǔ)音和文本具備局部相關(guān)性。CNN中的卷積操作主要是為獲得圖片或文本的局部特征,在計(jì)算機(jī)視覺(jué)里,將這種操作t稱(chēng)為濾波,都是為了獲得局部領(lǐng)域的輸出。常規(guī)卷積操作本質(zhì)上是加權(quán)平均,其線性運(yùn)算是獲取局部特征最簡(jiǎn)操作,利用BP算法也顯得特別直接。2.參數(shù)共享參數(shù)共享是指在一個(gè)模型的多個(gè)函數(shù)中使用相同的參數(shù)。在卷積網(wǎng)絡(luò)中,一般情況下一個(gè)卷積核會(huì)作用在輸入的每一個(gè)位置,這種參數(shù)共享保證了只需要學(xué)習(xí)一個(gè)參數(shù)集合,而不是對(duì)每一個(gè)輸入位置都需要學(xué)習(xí)一個(gè)單獨(dú)的參數(shù)。606.3卷積操作的變種通俗來(lái)講,在運(yùn)用卷積操作時(shí),用一個(gè)卷積核從左往右、從上到下按照步長(zhǎng)stride去遍歷特征圖的所有位置。3.等變表示參數(shù)共享使得神經(jīng)網(wǎng)絡(luò)層對(duì)平移具有等變性質(zhì)。所謂等變,即如果一個(gè)輸入作了改變,輸出也以同樣的方式改變。即如果對(duì)輸入進(jìn)行輕微的平移,卷積運(yùn)算得到的結(jié)果是一樣的。然而,卷積對(duì)其他的一些變換并不是天然等變的。例如,對(duì)于圖像的放縮或者旋轉(zhuǎn)變換,需要其他的一些機(jī)制來(lái)處理這些變換。616.4池化操作的變種
除了最大池化,還有一些其它的池化操作。
6.4.1隨機(jī)池化根據(jù)相關(guān)理論,特征提取的誤差主要來(lái)自?xún)蓚€(gè)方面:(1)鄰域大小受限造成的估計(jì)值方差增大;(2)卷積層參數(shù)誤差造成估計(jì)均值的偏移。一般來(lái)說(shuō),平均池化能減小第一種誤差,更多的保留圖像的背景信息;最大池化能減小第二種誤差,更多的保留紋理信息。隨機(jī)池化(Stochasticpooling)則介于上述兩種操作之間,通過(guò)對(duì)像素點(diǎn)按照數(shù)值大小賦予概率,再按照概率進(jìn)行采樣,在平均意義上,與平均池化近似;在局部意義上,服從最大池化的準(zhǔn)則。1.隨機(jī)池化隨機(jī)池化可以看作在一個(gè)池化窗口內(nèi)對(duì)特征圖數(shù)值進(jìn)行歸一化,626.4池化操作的變種
按照特征圖歸一化后的概率值大小隨機(jī)采樣選擇,即元素值大的被選中的概率也大。而不像最大池化那樣,永遠(yuǎn)只取那個(gè)最大值元素。隨機(jī)池化過(guò)程,如右上圖所示,特征區(qū)域越大,代表其被選擇的概率越高,比如左下角的本應(yīng)該是選擇7,但是由于引入概率,5也有一定幾率被選中。通過(guò)改變網(wǎng)絡(luò)大小g來(lái)控制失真/隨機(jī)性(distortion/stochasticity),如右下圖所示。636.4池化操作的變種
通過(guò)增加網(wǎng)絡(luò)尺寸,訓(xùn)練誤差變大,對(duì)應(yīng)更多的隨機(jī)性。測(cè)試誤差先降低(strongerregularization),后來(lái)升高(當(dāng)訓(xùn)練誤差太高時(shí))。隨機(jī)池化與最大/平均池化的比較,如圖所示。646.4池化操作的變種
2.隨機(jī)池化計(jì)算
隨機(jī)池化的計(jì)算步驟如下:
步驟1:先將方格中的元素同時(shí)除以它們的和sum,得到概率矩陣;
步驟2:按照概率隨機(jī)選中方格;
步驟3:池化得到的值就是方格位置的值。
使用隨機(jī)池化時(shí)(即test過(guò)程),其推理過(guò)程也很簡(jiǎn)單,對(duì)矩陣區(qū)域求加權(quán)平均即可。
在反向傳播求導(dǎo)時(shí),只需保留前向傳播已經(jīng)記錄被選中節(jié)點(diǎn)的位置的值,其它值都為0,這與max-pooling的反向傳播非常類(lèi)似。
656.4池化操作的變種6.4.2雙線性池化
雙線性池化(BilinearPooling)主要用在細(xì)粒度分類(lèi)網(wǎng)絡(luò)中,目標(biāo)是特征融合。對(duì)于同一個(gè)樣本提取得到的特征x和特征y,通過(guò)雙線性池化來(lái)融合兩個(gè)特征(外積),進(jìn)而提高模型分類(lèi)的能力。
1.雙線性池化思想
其主要思想是對(duì)于兩個(gè)不同圖像特征的處理方式不同。通常情況下,對(duì)于圖像的不同特征,進(jìn)行串聯(lián)(連接)或者進(jìn)行求和(sum)或者最大池化。而人類(lèi)的視覺(jué)處理主要有兩個(gè)路徑(pathway),其中腹側(cè)通路(ventralstream)是進(jìn)行物體識(shí)別的,背側(cè)通路(dorsalstream)是發(fā)現(xiàn)物體位置的?;谶@一原理,希望兩個(gè)特征能分別表示圖像的位置和對(duì)圖形進(jìn)行識(shí)別,共同發(fā)揮兩個(gè)不同特征的作用,以提高細(xì)粒度圖像的分類(lèi)效果。
666.4池化操作的變種
2.雙線性池化實(shí)現(xiàn)
如果特征x和特征y來(lái)自?xún)蓚€(gè)特征提取器,則被稱(chēng)為多模雙線性池化(MultimodalBilinearPooling,MBP)。若特征x=特征y,則被稱(chēng)為同源雙線性池化(HomogeneousBilinearPooling,HBP)或者二階池化(Second-orderpooling)。雙線性池化原理,如右圖所示;雙線性CNN模型中梯度計(jì)算,如圖所示。676.4池化操作的變種6.4.3UnPooling
Unpooling是一種上采樣操作,如下圖所示。
上采樣流程描述如下:(1)在池化(一般是最大池化)時(shí),保存最大值的位置。(2)中間經(jīng)歷若干網(wǎng)絡(luò)層的運(yùn)算。(3)上采樣階段,利用第1步保存的最大位置(maxlocation),重建下一層的特征映射。
非池化(UnPooling)不完全是池化的逆運(yùn)算,池化之后的特征映射要經(jīng)過(guò)若干運(yùn)算,才會(huì)進(jìn)行非池化操作;對(duì)于非最大位置的地方以零填充。然而,這樣并不能完全還原信息。686.4池化操作的變種696.4池化操作的變種6.4.4全局平均/最大池化
1.全局平均池化(GlobalAveragepooling)
1)池化原理全局平均池化一般是用來(lái)替換全連接層。在分類(lèi)網(wǎng)絡(luò)中,全連接層幾乎成了標(biāo)配,在最后幾層,特征映射會(huì)被改變(reshape)成向量,接著對(duì)這個(gè)向量做乘法,最終降低其維度,然后輸入到softmax層中得到對(duì)應(yīng)的每個(gè)類(lèi)別的得分。過(guò)多的全連接層,不僅會(huì)使網(wǎng)絡(luò)參數(shù)變多,也會(huì)產(chǎn)生過(guò)擬合現(xiàn)象。針對(duì)過(guò)擬合現(xiàn)象,全連接層一般會(huì)搭配dropout操作;而全局平均池化直接把整幅特征映射(它的個(gè)數(shù)等于類(lèi)別個(gè)數(shù))進(jìn)行平均池化,然后輸入到softmax層中得到對(duì)應(yīng)的每個(gè)類(lèi)別的得分。在反向傳播求導(dǎo)時(shí),它的參數(shù)更新類(lèi)似于平均池化。706.4池化操作的變種
如果要預(yù)測(cè)K個(gè)類(lèi)別,在卷積特征抽取部分的最后一層卷積層,就會(huì)生成K個(gè)特征圖,然后通過(guò)全局平均池化就可以得到K個(gè)1×1的特征圖,如右上圖所示。
將這些1×1的特征圖輸入到全連接層,因?yàn)槿殖鼗蟮闹迪喈?dāng)于一像素,所以最后的全連接其實(shí)就成了一個(gè)加權(quán)相加的操作。這種結(jié)構(gòu)比起直接的全連接更加直觀,并且泛化性能更好,如右下圖所示。716.4池化操作的變種
2)優(yōu)點(diǎn)
大幅度減少網(wǎng)絡(luò)參數(shù)(對(duì)于分類(lèi)網(wǎng)絡(luò),全連接的參數(shù)占了很大比列),同時(shí)理所當(dāng)然地減少了過(guò)擬合現(xiàn)象、賦予了輸出特征映射的每個(gè)通道類(lèi)別意義,剔除了全連接黑箱操作。具體有以下優(yōu)點(diǎn):
(1)與全連接層相比,使用全局平均池化技術(shù),對(duì)于建立特征圖和類(lèi)別之間的關(guān)系,是一種更樸素的卷積結(jié)構(gòu)選擇。
(2)全局平均池化層不需要參數(shù),避免在該層產(chǎn)生過(guò)擬合。
(3)全局平均池化對(duì)空間信息求和,對(duì)輸入的空間變化的魯棒性更強(qiáng)。
(4)全局平均池化就是對(duì)最后一層卷積的特征圖,每個(gè)通道求整個(gè)特征圖的均值。726.4池化操作的變種
2.全局最大池化(Globalmaxpooling)
1)1D最大池化(1Dmaxpooling)
顧名思義,MaxPooling是指在池化的窗口中選擇最大值。圖表明,1D全局最大池化和1D最大池化相比少了三個(gè)參數(shù),其實(shí)這三個(gè)參數(shù)描述的是一件事情:池化時(shí)的窗口大小。
圖表明,在1×1×5的網(wǎng)絡(luò)上進(jìn)行1D最大池化時(shí),如果選擇窗口大小為2,則面臨兩個(gè)問(wèn)題:
(1)滑動(dòng)窗口的步長(zhǎng)選多少?
(一般默認(rèn)為pool_size)
(2)如圖中步長(zhǎng)選2,最后一行還需要(圖中選擇valid,即不做填充(padding),放棄最后一行)。736.4池化操作的變種
而對(duì)于1D全局最大池化,池大小是固定的,即最長(zhǎng)域的維度(“全局”最大池化)。所以,由于沒(méi)有滑動(dòng)空間,不需要考慮步長(zhǎng);因此,填充不存在。
與此相應(yīng)的,兩種池化后結(jié)果的維度也不同,如右上圖所示。
2)2D最大池化(2Dmaxpooling)
與1D一樣,2D全局最大池化對(duì)全局做最大池化,如右下圖所示。在NLP領(lǐng)域更常使用全局最大池化,計(jì)算機(jī)視覺(jué)領(lǐng)域更常使用最大池化(非全局最大池化)。746.4池化操作的變種6.4.5空間金字塔池化
空間金字塔池化(SpatialPyramidPoolingindeepconvolutionalNetworks,SPP-Net)要解決的就是從卷積層到全連接層之間的一個(gè)過(guò)度層,如圖所示。在CNN中,卷積和池化對(duì)圖片輸入大小沒(méi)有要求,顯然全連接層對(duì)圖片結(jié)果就有要求。因?yàn)槿B接層的連接權(quán)值矩陣w經(jīng)過(guò)訓(xùn)練后,其大小是固定的。例如,從卷積到全連層,輸入和輸出的大小分別是50、30個(gè)神經(jīng)元,那么權(quán)值矩陣為(50,
30)。因此空間金字塔池化,要解決的就是從卷積層到全連接層之間的一個(gè)過(guò)度。756.4池化操作的變種
為了簡(jiǎn)單起見(jiàn),假設(shè)一個(gè)很簡(jiǎn)單的兩層網(wǎng)絡(luò):輸入層為一張任意大小的厚度為256的圖片;輸出層是厚度為256的21維向量?,F(xiàn)輸入的一張圖片利用不同大小的刻度進(jìn)行了劃分,如圖所示。766.4池化操作的變種
利用三種不同大小的刻度,將一張輸入圖片劃分為16+4+1=21個(gè)塊。再?gòu)倪@21個(gè)塊中,每個(gè)塊提取出一個(gè)特征,這樣剛好就提取了21維特征向量。
第一種刻度:將一張完整的圖片,劃分為16個(gè)塊,每塊的大小為(w/4,h/4);輸出為16個(gè)1x256向量;
第二種刻度:將一整張圖片劃分為4個(gè)塊,每個(gè)塊的大小為(w/2,h/2);輸出為4個(gè)1x256向量
第三種刻度:將一整張圖片作為了1個(gè)塊,該塊的大小為(w,h),輸出為1x256向量。
將三種劃分方式池化的結(jié)果進(jìn)行拼接,得到(1+4+16)×256=21×256個(gè)特征。
776.4池化操作的變種
空間金字塔最大池化的過(guò)程,其實(shí)就是從這21個(gè)圖片塊(厚度為256)中,分別計(jì)算每個(gè)塊(厚度為256)的最大值,從而得到一個(gè)輸出神經(jīng)元。最后把一張任意大小的圖片(厚度為256)轉(zhuǎn)換成了一個(gè)固定大小的厚度為256的21維特征(也可以設(shè)計(jì)其它維數(shù)的輸出,增加金字塔的層數(shù),或者改變劃分網(wǎng)格的大?。?。上述三種不同刻度的劃分,每一種刻度稱(chēng)之為金字塔的一層,每一個(gè)圖片塊大小稱(chēng)之為窗大?。╳indowssize)。如果需要金字塔的某一層輸出n×n個(gè)特征,那么就需要用窗大小為(W/n,H/n)進(jìn)行池化。786.4池化操作的變種
當(dāng)有很多層網(wǎng)絡(luò)時(shí),給網(wǎng)絡(luò)輸入一張任意大小的圖片,這時(shí)可以一直進(jìn)行卷積、池化,直到網(wǎng)絡(luò)即將與全連接層連接時(shí),就要采用金字塔池化,使得任意大小的特征圖都能夠轉(zhuǎn)換成固定大小的特征向量,這就是空間金字塔池化(多尺度特征提取出固定大小的特征向量),如圖所示。796.4池化操作的變種
Convolutionallayers包括卷積、激活函數(shù)、池化操作,假設(shè)最后一層輸出Nf個(gè)
的特征圖。空間金字塔池化層包括三組動(dòng)態(tài)參數(shù)(核大小、步長(zhǎng)由a,b決定)的最大池化操作。這里的池化都不是padding、允許重疊的:
第一組(最右)為每個(gè)特征圖生成一個(gè)1×1的池化圖;換言之,采用核大小為
、步長(zhǎng)為
的最大池化;
第二組(中間)為每個(gè)特征圖生成一個(gè)2×2的池化圖;換言之,采用核大小為
、步長(zhǎng)為
的最大池化;
第三組(最左)為每個(gè)特征圖生成一個(gè)4×4的池化圖;換言之,采用核大小為、步長(zhǎng)為的最大池化;
最后將三組池化圖展開(kāi)拼接起來(lái),得到一個(gè)
的固定大小輸出。806.4池化操作的變種6.4.6多尺度重疊滑動(dòng)池化
常規(guī)池化使用池化核為2×2,步長(zhǎng)為2的參數(shù),其最主要的作用是縮小特征圖大小,達(dá)到加速的目的。但在卷積網(wǎng)絡(luò)的高層使用這種單一尺度的池化參數(shù),沒(méi)有考慮不同尺度下特征的顯著性和相鄰特征元素之間的關(guān)系,以致準(zhǔn)確率下降。為了解決這一問(wèn)題,使用多尺度重疊滑動(dòng)池化(ScalableOverlappingSlidePooling,SOSP)方法從粗粒度到細(xì)粒度進(jìn)行池化。SOSP方法主要通過(guò)若干種尺度的池化核對(duì)輸入特征圖進(jìn)行池化。圖中,第一種尺度,使用核大小為(n,m)、填充為(n/2,m/2)、步長(zhǎng)為(1,1),通過(guò)該尺度對(duì)輸入特征圖進(jìn)行池化,得到粗粒度特征圖。816.4池化操作的變種6.4.6多尺度重疊滑動(dòng)池化第二種尺度,使用核大小為(n,m/2)、填充為(n/2,m/4)、步長(zhǎng)為(1,1),通過(guò)該尺度對(duì)輸入特征圖進(jìn)行池化,得到中粒度特征圖。第三種尺度,使用核大小為(n/2,m)、填充為(n/4,m/2)、步長(zhǎng)為(1,1),通過(guò)該尺度對(duì)輸入特征圖進(jìn)行池化,得到中粒度特征圖。第四種尺度,使用核大小為(n/2,m/2)、填充為(n/4,m/4)、步長(zhǎng)為(1,1),通過(guò)該尺度對(duì)輸入特征圖進(jìn)行池化,得到細(xì)粒度特征圖。826.4池化操作的變種以此類(lèi)推,通過(guò)尺度5、尺度6等等,可以得到細(xì)粒度特征圖。由于池化的步長(zhǎng)為(1,1)、填充大小為池化核大小的一半,故經(jīng)過(guò)多尺度重疊池化后的特征圖尺寸相同,最終將得到的若干尺度特征圖按通道合并到一起輸出。836.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.1LeNet-5模型
LeNet-5模型是1998年YannLeCun教授提出的,是第一個(gè)成功應(yīng)用于數(shù)字識(shí)別問(wèn)題的卷積神經(jīng)網(wǎng)絡(luò),在MNIST數(shù)據(jù)集上,LeNet模型識(shí)別的正確率高達(dá)99.2%。LeNet-5結(jié)構(gòu),如圖所示。846.5常見(jiàn)的幾種CNN結(jié)構(gòu)
LeNet-5架構(gòu)基于這樣的觀點(diǎn):(尤其是)圖像的特征分布在整張圖像上,以及帶有可學(xué)習(xí)參數(shù)的卷積是用少量參數(shù)在多個(gè)位置上提取相似特征的有效方式。
LeNet-5的特點(diǎn)如下:
(1)卷積神經(jīng)網(wǎng)絡(luò)使用三個(gè)層作為一個(gè)系列:卷積、池化、非線性;
(2)使用卷積提取空間特征;
(3)使用映射到空間均值下采樣(subsample);
(4)具有雙曲線正切(Tanh)或S型(Sigmoid)形式的非線性;
(5)多層神經(jīng)網(wǎng)絡(luò)作為最后的分類(lèi)器;
(6)層與層之間的稀疏連接矩陣,避免大的計(jì)算成本。856.5常見(jiàn)的幾種CNN結(jié)構(gòu)
LeNet-5是最簡(jiǎn)單的架構(gòu)之一。有2個(gè)卷積層和3個(gè)全連接層(因此“5”是神經(jīng)網(wǎng)絡(luò)中卷積層和全連接層的數(shù)量之和)。現(xiàn)在所知的平均池化層被稱(chēng)為子采樣層,它具有可訓(xùn)練的權(quán)重(和當(dāng)前設(shè)計(jì)CNNs不同)。這個(gè)架構(gòu)有大約60,000個(gè)參數(shù)。
LeNet-5架構(gòu)已成為標(biāo)準(zhǔn)的“模板”:疊加卷積層和池化層,并以一個(gè)或多個(gè)全連接層結(jié)束網(wǎng)絡(luò)。866.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.2VGGNet模型
VGGNet由牛津大學(xué)的視覺(jué)幾何組(VisualGeometryGroup)和GoogleDeepMind公司的研究員一起研發(fā)的的深度卷積神經(jīng)網(wǎng)絡(luò),其主要貢獻(xiàn)是展示出網(wǎng)絡(luò)的深度(depth),這是算法優(yōu)良性能的關(guān)鍵部分。在此網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,出現(xiàn)了ResNet(152-1000層)、GooleNet(22層)、VGGNet(19層)。它們采用新的優(yōu)化算法、多模型融合等技術(shù)。到目前為止,VGGNet依然經(jīng)常被用來(lái)提取圖像特征。VGGNet16結(jié)構(gòu),如圖所示。876.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.3ResNets模型
對(duì)于深度神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),VGGNets證明了加深網(wǎng)絡(luò)層次是提高精度的有效手段,但是由于梯度彌散的問(wèn)題導(dǎo)致網(wǎng)絡(luò)深度無(wú)法持續(xù)加深。梯度彌散問(wèn)題是由于在反向傳播過(guò)程中誤差不斷累積,導(dǎo)致在最初的幾層梯度值幾乎為0,從而無(wú)法收斂。測(cè)試結(jié)果表明,對(duì)20層以上的深層網(wǎng)絡(luò),隨著層數(shù)的增加,收斂效果越來(lái)越差。50層網(wǎng)絡(luò)是20層網(wǎng)絡(luò)錯(cuò)誤率的一倍。這一現(xiàn)象稱(chēng)為深度網(wǎng)絡(luò)的退化問(wèn)題。
退化問(wèn)題表明,不是所有的系統(tǒng)都能很容易的被優(yōu)化。難道網(wǎng)絡(luò)深度就能再增加了嗎?ResNets殘差網(wǎng)絡(luò)就是一種避免梯度消失更容易優(yōu)化的結(jié)構(gòu)。
886.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.3ResNets模型
神經(jīng)網(wǎng)絡(luò)實(shí)際上是將一個(gè)空間維度向量x,經(jīng)過(guò)非線性變換H(x)映射到另外一個(gè)空間維度中。但H(x)非常難以?xún)?yōu)化,所以轉(zhuǎn)而求H(x)的殘差F(x)=H(x)-x。假設(shè)求解F(x)=H(x)-x比求H(x)簡(jiǎn)單,就可以通過(guò)F(x)+x來(lái)達(dá)到最終輸出x的目標(biāo),如圖所示。896.5常見(jiàn)的幾種CNN結(jié)構(gòu)
右圖就是一個(gè)殘差網(wǎng)絡(luò)和平整網(wǎng)絡(luò)。34-layer表示含可訓(xùn)練參數(shù)的層數(shù)為34層,池化層不含可訓(xùn)練參數(shù)。圖左所示的殘差網(wǎng)絡(luò)和圖中間所示的平整網(wǎng)絡(luò)唯一的區(qū)別就是快捷連接。這兩個(gè)網(wǎng)絡(luò)都是當(dāng)特征映射減半時(shí),濾波器的個(gè)數(shù)翻倍,這樣保證了每一層的計(jì)算復(fù)雜度一致。
ResNet因?yàn)槭褂煤愕扔成?,在快捷連接上沒(méi)有參數(shù),所以圖中平整網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的計(jì)算復(fù)雜度都是一樣的,都是3.6billionFLOPs。
殘差網(wǎng)絡(luò)的引入使神經(jīng)網(wǎng)絡(luò)深度在盡可能加深的情況下,不會(huì)出現(xiàn)準(zhǔn)確率下降等問(wèn)題,廣泛運(yùn)用在計(jì)算機(jī)視覺(jué)任務(wù)中。906.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.4DenseNets模型
DenseNets是一種具有密集連接性的深度神經(jīng)網(wǎng)絡(luò)。在網(wǎng)絡(luò)中,每個(gè)卷積層從之前層獲得額外的輸入,并將自己的輸出特征傳輸?shù)胶竺娴乃械木矸e層。換句話說(shuō),就是某層的輸入是它之前所有層輸出的集合,該層輸出為后面所有層輸入的一部分。這種密集連接結(jié)構(gòu)的優(yōu)點(diǎn)在于每一層都加強(qiáng)了特征的傳播,并且顯著解決了梯度爆炸和消失問(wèn)題。一個(gè)稠密網(wǎng)絡(luò)(DenseNet)結(jié)構(gòu),如圖所示。916.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.4DenseNets模型
圖中上部分包含了三個(gè)稠密塊(denseblock)。該結(jié)構(gòu)將DenseNet分成多個(gè)稠密塊,就是希望各個(gè)稠密塊內(nèi)的特征映射的大小統(tǒng)一,這樣做連接就不會(huì)有大小的問(wèn)題。稠密塊結(jié)構(gòu),如圖中下部分所示。926.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.5AlexNet模型
2012年,Hinton的學(xué)生AlexKrizhevsky提出了深度卷積神經(jīng)網(wǎng)絡(luò)模型AlexNet,它可以算是LeNet的一種更深更寬的版本。AlexNet中包含了幾個(gè)比較新的技術(shù)點(diǎn),也是首次在CNN中成功應(yīng)用了ReLU、Dropout和LRN等Trick。同時(shí)AlexNet也使用了GPU進(jìn)行運(yùn)算加速,作者開(kāi)源了他們?cè)贕PU上訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的CUDA代碼。AlexNet包含了6億3000萬(wàn)個(gè)連接、6000萬(wàn)個(gè)參數(shù)和65萬(wàn)個(gè)神經(jīng)元,擁有5個(gè)卷積層,其中3個(gè)卷積層后面連接了最大池化層,最后還有3個(gè)全連接層,如圖所示。936.5常見(jiàn)的幾種CNN結(jié)構(gòu)946.5常見(jiàn)的幾種CNN結(jié)構(gòu)
AlexNet的輸入為224×224×3的圖像,輸出為1000個(gè)類(lèi)別的條件概率。整個(gè)網(wǎng)絡(luò)呈一個(gè)金字塔結(jié)構(gòu),具體來(lái)說(shuō):
1.第一個(gè)卷積層
使用兩個(gè)大小為11×11×3×48的卷積核,步長(zhǎng)S=4,零填充P=3,得到兩個(gè)大小為55×55×48的特征映射組。
2.第一個(gè)池化層
使用大小為3×3的最大池化操作,步長(zhǎng)S=2,得到兩個(gè)27×27×48的特征映射組。
3.第二個(gè)卷積層
使用兩個(gè)大小為5×5×48×128的卷積核,步長(zhǎng)S=1,零填充P=2,得到兩個(gè)大小為27×27×128的特征映射組。956.5常見(jiàn)的幾種CNN結(jié)構(gòu)
4.第二個(gè)池化層使用大小為3×3的最大池化操作,步長(zhǎng)S=2,得到兩個(gè)大小為13×13×128的特征映射組。
5.第三個(gè)卷積層
該層為兩個(gè)路徑的融合,使用一個(gè)大小為3×3×256×384的卷積核,步長(zhǎng)S=1,零填充P=1,得到兩個(gè)大小為13×13×192的特征映射組。
6.第四個(gè)卷積層
使用兩個(gè)大小為3×3×192×192的卷積核,步長(zhǎng)S=1,零填充P=1,得到兩個(gè)大小為13×13×192的特征映射組。966.5常見(jiàn)的幾種CNN結(jié)構(gòu)
7.第五個(gè)卷積層使用兩個(gè)大小為3×3×192×128的卷積核,步長(zhǎng)S=1,零填充P=1,得到兩個(gè)大小為13×13×128的特征映射組。
8.第三個(gè)池化層使用大小為3×3的最大池化操作,步長(zhǎng)S=2,得到兩個(gè)大小為6×6×128的特征映射組。
9.三個(gè)全連接層
神經(jīng)元數(shù)量分別為4096、4096和1000。
此外,AlexNet還在前兩個(gè)池化層之后進(jìn)行了局部響應(yīng)歸一化(,LRN),以增強(qiáng)模型的泛化能力。
976.5常見(jiàn)的幾種CNN結(jié)構(gòu)
AlexNet將LeNet的思想發(fā)揚(yáng)光大,把CNN的基本原理應(yīng)用到了很深很寬的網(wǎng)絡(luò)中。AlexNet主要使用到的新技術(shù)點(diǎn)如下:(1)成功使用ReLU作為CNN的激活函數(shù),并驗(yàn)證其效果在較深的網(wǎng)絡(luò)超過(guò)了Sigmoid,成功解決了Sigmoid在網(wǎng)絡(luò)較深時(shí)的梯度彌散問(wèn)題。AlexNet的出現(xiàn)將ReLU激活函數(shù)發(fā)揚(yáng)光大。(2)訓(xùn)練時(shí)使用Dropout隨機(jī)忽略一部分神經(jīng)元,避免了模型過(guò)擬合。在AlexNet中,最后幾個(gè)全連接層使用Dropout,將Dropout實(shí)用化。(3)在CNN中,使用重疊最大池化,避免平均池化的模糊化效果,且步長(zhǎng)比池化核的尺寸小,這樣池化層輸出之間會(huì)有重疊和覆蓋,提升了特征的豐富性。986.5常見(jiàn)的幾種CNN結(jié)構(gòu)
(4)提出局部響應(yīng)歸一化(LocalResponseNormalization,LRN)層,對(duì)局部神經(jīng)元的活動(dòng)創(chuàng)建競(jìng)爭(zhēng)機(jī)制,使得其中響應(yīng)比較大的值變得相對(duì)更大,并抑制其他反饋較小的神經(jīng)元,增強(qiáng)了模型的泛化能力。
(5)使用CUDA加速深度卷積網(wǎng)絡(luò)的訓(xùn)練,利用GPU強(qiáng)大的并行計(jì)算能力,處理神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)大量的矩陣運(yùn)算。將AlexNet分布在兩個(gè)GPU上,在每個(gè)GPU的顯存中儲(chǔ)存一半的神經(jīng)元的參數(shù)。因?yàn)镚PU之間通信方便,可以互相訪問(wèn)顯存,而不需要通過(guò)主機(jī)內(nèi)存,所以同時(shí)使用多塊GPU非常高效。同時(shí),Ale-xNet的設(shè)計(jì)讓GPU之間的通信只在網(wǎng)絡(luò)的某些層進(jìn)行,控制了通信的性能損耗。
(6)數(shù)據(jù)量擴(kuò)增,大大減輕過(guò)擬合,提升泛化能力,同時(shí)對(duì)圖像的RGB數(shù)據(jù)進(jìn)行PCA處理,并對(duì)主成分做一個(gè)標(biāo)準(zhǔn)差為0.1的高斯擾動(dòng),增加一些噪聲,這個(gè)Trick可以讓錯(cuò)誤率再下降1%。996.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.6Inception模型
1.InceptionV1模塊結(jié)構(gòu)
在卷積網(wǎng)絡(luò)中,如何設(shè)置卷積層的卷積核大小是一個(gè)十分關(guān)鍵的問(wèn)題,在Inception網(wǎng)絡(luò)中,一個(gè)卷積層包含多個(gè)不同大小的卷積操作,稱(chēng)為Inception模塊,Inception網(wǎng)絡(luò)是由有多個(gè)Inception模塊和少量的池化層堆疊而成。
Inception模塊同時(shí)使用1×1、3×3、5×5等不同大小的卷積核,并將得到的特征映射在深度上拼接(堆疊)起來(lái)作為輸出特征映射。
下圖給出的Inceptionvl模塊結(jié)構(gòu),有4個(gè)分支:
1006.5常見(jiàn)的幾種CNN結(jié)構(gòu)
第一個(gè)分支對(duì)輸入進(jìn)行1×1的卷積,這其實(shí)也是NIN(Networkinnetwork)中提出的一個(gè)重要結(jié)構(gòu)。1×1的卷積是一個(gè)非常優(yōu)秀的結(jié)構(gòu),它可以跨通道組織信息,提高網(wǎng)絡(luò)表達(dá)能力,同時(shí)可以對(duì)輸出通道升維和降維。Inception模塊的4個(gè)分支都用了1×1卷積來(lái)進(jìn)行低成本(計(jì)算量比3×3小很多)的跨通道的特征變換。
第二個(gè)分支先使用1×1卷積,然后連接3×3卷積,相當(dāng)于進(jìn)行了兩次特征變換。第三個(gè)分支先是1×1的卷積,然后連接5×5卷積。
第四個(gè)分支是3×3最大池化后直接使用1×1卷積。1016.5常見(jiàn)的幾種CNN結(jié)構(gòu)
由此可見(jiàn),有的分支只使用1×1卷積,有的分支使用了其他尺寸的卷積時(shí)也會(huì)再使用1×1卷積,這是因?yàn)?×1卷積的性?xún)r(jià)比很高,用很小的計(jì)算量就能增加一層特征變換和非線性化。Inception模塊的4個(gè)分支在最后通過(guò)一個(gè)聚合操作合并(在輸出通道數(shù)這個(gè)維度上聚合)。Inception模塊中包含了3種不同尺寸的卷積和1個(gè)最大池化,增加了網(wǎng)絡(luò)對(duì)不同尺度的適應(yīng)性。Inception模塊可以讓網(wǎng)絡(luò)的深度和寬度高效率地?cái)U(kuò)充,提升準(zhǔn)確率且不致于過(guò)擬合。1026.5常見(jiàn)的幾種CNN結(jié)構(gòu)
在Inception網(wǎng)絡(luò)中,最早的Inceptionv1版本就是非常著名的GoogLeNet,它由9個(gè)Inceptionv1模塊和5個(gè)池化層以及其他一些卷積層和全連接層構(gòu)成,總共為22層網(wǎng)絡(luò),如圖所示。1036.5常見(jiàn)的幾種CNN結(jié)構(gòu)
為了解決梯度消失問(wèn)題,GoogLeNet在網(wǎng)絡(luò)中間層引入兩個(gè)輔助分類(lèi)器來(lái)加強(qiáng)監(jiān)督信息。在Inception網(wǎng)絡(luò)中,比較有代表性的改進(jìn)版本為Inceptionv3網(wǎng)絡(luò),它用多層的小卷積核來(lái)替換大的卷積核,減少了計(jì)算量和參數(shù)量,并保持感受野不變。具體包括:1)使用兩層3×3的卷積來(lái)代替Inceptionv1中的5×5的卷積;2)使用連續(xù)的K×1和1×K來(lái)代替K×K的卷積。此外,Inceptionv3網(wǎng)絡(luò)同時(shí)也引入了標(biāo)簽平滑以及批歸一化等優(yōu)化方法進(jìn)行訓(xùn)練。
3.InceptionV2
2015年2月,Batch-normalizedInception(BN)被引入作為InceptionV2。
1046.5常見(jiàn)的幾種CNN結(jié)構(gòu)
Batch-normalization在一層的輸出上計(jì)算所有特征映射的均值和標(biāo)準(zhǔn)差,并使用這些值規(guī)范化其響應(yīng)。這相當(dāng)于數(shù)據(jù)增白(whitening),因此使得所有神經(jīng)圖(neuralmaps)在同樣范圍有響應(yīng),而且是零均值。在下一層不需要從輸入數(shù)據(jù)中學(xué)習(xí)offset時(shí),這有助于訓(xùn)練,還能重點(diǎn)關(guān)注如何最好的結(jié)合這些特征。
在InceptionV2中,用兩個(gè)3×3的卷積代替5×5的大卷積(用以降低參數(shù)量并減輕過(guò)擬合),如圖所示。
1056.5常見(jiàn)的幾種CNN結(jié)構(gòu)
BN是一個(gè)非常有效的正則化方法,可以讓大型卷積網(wǎng)絡(luò)的訓(xùn)練速度加快很多倍,同時(shí)收斂后的分類(lèi)準(zhǔn)確率也可以得到大幅提高。BN用于神經(jīng)網(wǎng)絡(luò)某層時(shí),會(huì)對(duì)每一個(gè)mini-batch數(shù)據(jù)的內(nèi)部進(jìn)行標(biāo)準(zhǔn)化(normalization)處理,使輸出規(guī)范化到N(0,1)的正態(tài)分布,減少了InternalCovariateShift(內(nèi)部神經(jīng)元分布的改變)。
傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí),每一層輸入的分布都在變化,導(dǎo)致訓(xùn)練變得困難,只能使用一個(gè)很小的學(xué)習(xí)速率解決這個(gè)問(wèn)題。而對(duì)每一層使用BN之后,就可以有效地解決這個(gè)問(wèn)題,學(xué)習(xí)速率可以增大很多倍,達(dá)到之前的準(zhǔn)確率所需要的迭代次數(shù)只有1/14,訓(xùn)練時(shí)間大大縮短。而達(dá)到之前的準(zhǔn)確率后,可繼續(xù)訓(xùn)練,并最終取得遠(yuǎn)超于InceptionV1模型性能top-5錯(cuò)誤率4.8%,優(yōu)于人眼水平。因BN某種意義上還起到了正則化作用,故可減少或取消Dropout,簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)。
1066.5常見(jiàn)的幾種CNN結(jié)構(gòu)
當(dāng)然,只是單純地使用BN獲得的增益還不明顯,還需要一些相應(yīng)的調(diào)整:增大學(xué)習(xí)速率并加快學(xué)習(xí)衰減速度以適用BN規(guī)范化后的數(shù)據(jù)、去除Dropout并減輕L2正則化(因BN已起到正則化的作用)、去除LRN、更徹底地對(duì)訓(xùn)練樣本進(jìn)行shuffle、減少數(shù)據(jù)增強(qiáng)過(guò)程中對(duì)數(shù)據(jù)的光學(xué)畸變(因?yàn)锽N訓(xùn)練更快,每個(gè)樣本被訓(xùn)練的次數(shù)更少,因此更真實(shí)的樣本對(duì)訓(xùn)練更有幫助)。在使用了這些措施后,InceptionV2在訓(xùn)練達(dá)到InceptionV1的準(zhǔn)確率時(shí)快了14倍,并且模型在收斂時(shí)的準(zhǔn)確率上限更高。1076.5常見(jiàn)的幾種CNN結(jié)構(gòu)
4.Inception-V3
Inception-V3的一個(gè)最重要的改進(jìn)是分解(Factorization),將7×7分解成兩個(gè)一維的卷積(1×7,7×1),3×3分解為(1×3,3×1)(如圖所示),以加速計(jì)算(多余的計(jì)算能力可以用來(lái)加深網(wǎng)絡(luò)),并通過(guò)將1個(gè)conv拆成2個(gè)conv進(jìn)一步增加網(wǎng)絡(luò)深度和非線性,而且網(wǎng)絡(luò)輸入從224×224變成了299×299,更加精細(xì)設(shè)計(jì)了35×35/17×17/8×8的模塊。1086.5常見(jiàn)的幾種CNN結(jié)構(gòu)
InceptionV3優(yōu)化了Inception模塊結(jié)構(gòu),現(xiàn)在Inception模塊有35×35、17×17和8×8三種不同結(jié)構(gòu),如圖所示。這些Inception模塊只在網(wǎng)絡(luò)的后部出現(xiàn),前部還是常規(guī)的卷積層。并且InceptionV3除了在Inception模塊中使用分支,還在分支中使用了分支(8×8結(jié)構(gòu)中),可以說(shuō)是NIN。1096.5常見(jiàn)的幾種CNN結(jié)構(gòu)
在進(jìn)行inception計(jì)算的同時(shí),Inception模塊也能通過(guò)提供池化降低數(shù)據(jù)的大小。這基本類(lèi)似于在運(yùn)行一個(gè)卷積時(shí)并行一個(gè)簡(jiǎn)單的池化層,如圖所示。
Inception也使用一個(gè)池化層和softmax作為最后的分類(lèi)器。1106.5常見(jiàn)的幾種CNN結(jié)構(gòu)
InceptionV3網(wǎng)絡(luò)結(jié)構(gòu)1116.5常見(jiàn)的幾種CNN結(jié)構(gòu)
5.InceptionV4模塊
Inceptionv4模塊,如圖所示。1126.5常見(jiàn)的幾種CNN結(jié)構(gòu)6.5.7Xception模型
Xception是google繼Inception后提出的對(duì)Inceptionv3的另一種改進(jìn),主要是采用深度可分卷積(depthwiseseparableconvolution)來(lái)替換原來(lái)Inceptionv3中的卷積操作,引入完全基于通道獨(dú)立卷積層的CNN。Xception架構(gòu),如圖所示。其基本思想如下:1136.6幾種拓展的CNN結(jié)構(gòu)6.6.1特征融合卷積神經(jīng)網(wǎng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育機(jī)構(gòu)商業(yè)計(jì)劃書(shū)
- 第1課 一起做游戲(摸牌游戲)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 煤礦鉆井施工方案
- 吊車(chē)防雨施工方案
- 鐵路線路機(jī)械清篩施工方案
- 新生兒腸炎的護(hù)理
- 服裝店店長(zhǎng)季度工作總結(jié)
- 智能貨柜操作規(guī)程模板
- 《有多少塊糖》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 2023年湖北省十堰市中考?xì)v史真題(原卷版)
- 工地防火技術(shù)方案
- 24春國(guó)家開(kāi)放大學(xué)《教育法學(xué)》終結(jié)性考試(大作業(yè))參考答案
- (2024年)團(tuán)的發(fā)展史
- 版畫(huà)藝術(shù)知識(shí)普及課件
- (高清版)DZT 0223-2011 礦山地質(zhì)環(huán)境保護(hù)與恢復(fù)治理方案編制規(guī)范
- 課程與教學(xué)論之課程開(kāi)發(fā)與學(xué)校課程建設(shè)
- 一方出地一方出資合作建房合同樣本正規(guī)范本(通用版)
- 《輕度損傷的自我處理》教學(xué)設(shè)計(jì)
- 氣防站的安全管理制度
- (完整版)基于PLC的三層電梯控制系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 中學(xué)勞動(dòng)清單
評(píng)論
0/150
提交評(píng)論