深度學(xué)習(xí)簡明教程 課件 第5章 卷積神經(jīng)網(wǎng)絡(luò)(二)_第1頁
深度學(xué)習(xí)簡明教程 課件 第5章 卷積神經(jīng)網(wǎng)絡(luò)(二)_第2頁
深度學(xué)習(xí)簡明教程 課件 第5章 卷積神經(jīng)網(wǎng)絡(luò)(二)_第3頁
深度學(xué)習(xí)簡明教程 課件 第5章 卷積神經(jīng)網(wǎng)絡(luò)(二)_第4頁
深度學(xué)習(xí)簡明教程 課件 第5章 卷積神經(jīng)網(wǎng)絡(luò)(二)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第5章卷積神經(jīng)網(wǎng)絡(luò)(二)5.1卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和原理5.2幾種經(jīng)典的深度卷積神經(jīng)網(wǎng)絡(luò)5.3案例與實(shí)踐

5.1

卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和原理

卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetwork,CNN)是深度學(xué)習(xí)的經(jīng)典算法之一,主要用于處理圖像、語言等具有網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),并在圖像處理、視頻分析、自然語言處理等領(lǐng)域取得了較好的效果。

深度學(xué)習(xí)的思想是:通過構(gòu)建深層網(wǎng)絡(luò)得到多個(gè)層次的特征信息,以增強(qiáng)訓(xùn)練的魯棒性。深度卷積神經(jīng)網(wǎng)絡(luò)通過卷積的運(yùn)算方法減少了深層網(wǎng)絡(luò)的內(nèi)存占用,降低了模型計(jì)算的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)主要由卷積、池化、激活函數(shù)等部分構(gòu)成,下面對每個(gè)部分的具體結(jié)構(gòu)及作用做進(jìn)一步的講解。

5.1.1卷積運(yùn)算

卷積運(yùn)算是卷積神經(jīng)網(wǎng)絡(luò)的核心,其本質(zhì)是一種數(shù)學(xué)運(yùn)算,其根本目的是從輸入的圖片矩陣中提取特征。在高分辨率的圖像處理中,過大的計(jì)算量會(huì)導(dǎo)致運(yùn)行速度緩慢。卷積運(yùn)算用一個(gè)小方陣在整個(gè)圖像矩陣上滑動(dòng),這個(gè)小方陣被稱為卷積核。卷積運(yùn)算的本質(zhì)是用卷積核與對應(yīng)的圖片矩陣做內(nèi)積,以學(xué)習(xí)方陣內(nèi)的特征信息,其運(yùn)算過程如圖5.1所示。

卷積層還包含步幅和padding填充兩個(gè)超參數(shù)。步幅決定了卷積核每次滑動(dòng)跨越的距離;padding填充是指為了使卷積核也能提取到邊緣信息,有時(shí)會(huì)在圖像邊緣補(bǔ)充一圈0值。常用的卷積核大小為1×1、3×3、5×5、7×7等,卷積核大小設(shè)置為奇數(shù)也是為了方便padding填充取整數(shù)值。

圖5.1卷積運(yùn)算的過程

5.1.2

池化操作

池化(pooling)層也是深度卷積神經(jīng)網(wǎng)絡(luò)的重要層之一。池化層又被稱為下采樣層,執(zhí)行的是下采樣的降維操作,同時(shí)對特征圖像進(jìn)行壓縮,以減少參數(shù)個(gè)數(shù),降低計(jì)算量。

池化層不需要進(jìn)行權(quán)重更新,其運(yùn)算過程十分簡單,主要的池化操作包括最大值池化、隨機(jī)池化、均值池化、組合池化等。最常見的池化操作就是最大值池化,操作過程如圖5.2所示,即將輸入的矩陣劃分為幾個(gè)大小相同的矩形區(qū)域,對每個(gè)矩形區(qū)域選取最大值,得到最后的池化輸出。同理,平均池化就是對每個(gè)子區(qū)域求平均值,隨機(jī)池化就是根據(jù)一定的算法選取隨機(jī)值等。

圖5.2最大值池化操作的過程

5.1.3激活函數(shù)

激活函數(shù)(activationfunction)是在神經(jīng)網(wǎng)絡(luò)的神經(jīng)元上運(yùn)行的函數(shù),能夠?qū)τ杏玫奶卣餍畔⑦M(jìn)行激活,對無用的特征信息進(jìn)行抑制。引入激活函數(shù)的作用是使神經(jīng)網(wǎng)絡(luò)模型能夠解決更多的非線性問題,增強(qiáng)網(wǎng)絡(luò)的表達(dá)能力。常見的激活函數(shù)有Sigmoid函數(shù)、tanh函數(shù)、ReLU函數(shù)等。

5.1.4損失函數(shù)

損失函數(shù)(lossfunction),通俗來講就是用于計(jì)算模型預(yù)測值與真實(shí)值之間差異程度的函數(shù),是一個(gè)非負(fù)實(shí)值函數(shù)。通常計(jì)算得到的損失值越小,模型的性能就越好。

在模型的訓(xùn)練階段,將訓(xùn)練數(shù)據(jù)輸入模型后,通過前向傳播得到預(yù)測值,用損失函數(shù)計(jì)算預(yù)測值與真實(shí)標(biāo)簽之間的差距,也就是損失值,再將損失值用于后續(xù)反向傳播,更新模型參數(shù),從而達(dá)到使深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目的。

常見的損失函數(shù)大多基于距離度量計(jì)算損失,即將預(yù)測值和真實(shí)值看作特征空間中的兩個(gè)點(diǎn),通過計(jì)算空間中兩個(gè)點(diǎn)的距離來計(jì)算損失值,如交叉熵?fù)p失函數(shù)(crossentropyloss)、均方誤差損失函數(shù)(meansquarederror)等。

5.2幾種經(jīng)典的深度卷積神經(jīng)網(wǎng)絡(luò)

5.2.1VGGVGG是2014年由牛津大學(xué)的VisualGeometryGroup組提出,可被應(yīng)用于圖像分類、檢測等任務(wù)中。根據(jù)深度的不同VGG可分為VGG13、VGG16和VGG19等。VGG的核心思想是使用較小的卷積核堆疊,在增加網(wǎng)絡(luò)深度的同時(shí)控制參數(shù)量,提升網(wǎng)絡(luò)性能。VGG中ConvNet的具體網(wǎng)絡(luò)結(jié)構(gòu)如圖5.3所示,整個(gè)結(jié)構(gòu)由一些3×3和1×1的卷積層與池化層堆疊而成,最后加入了3個(gè)全連接層。從A列到E列,添加的層數(shù)增加,神經(jīng)網(wǎng)絡(luò)的深度不斷加深,模型中所含參數(shù)的數(shù)量也不斷增加。

圖5.3VGG中ConvNet的網(wǎng)絡(luò)結(jié)構(gòu)

VGG主要做出了以下貢獻(xiàn):

(1)構(gòu)造了結(jié)構(gòu)簡潔的小卷積核網(wǎng)絡(luò)。

卷積核幾乎全部采用3×3大小(部分使用了1×1大小),小卷積核能在一定程度上增強(qiáng)模型性能,并且用到的參數(shù)量相對較少,VGG不同版本的參數(shù)量如表5.1所示。從表中可看到,在卷積層數(shù)增加時(shí),參數(shù)量并沒有特別明顯地增加。池化核都采用2×2大小,網(wǎng)格結(jié)構(gòu)簡潔。

(2)證明了一定程度上越深的網(wǎng)絡(luò)性能會(huì)越好。

VGG幾種模型的實(shí)驗(yàn)結(jié)果如表5.2所示,可以看到A~E網(wǎng)絡(luò)層數(shù)加深時(shí)分類錯(cuò)誤率降低了,模型精度越來越高,可以證明一定程度上不斷加深的網(wǎng)絡(luò)能夠提高性能。

5.2.2GoogLeNet

GoogLeNet是2014年由Google團(tuán)隊(duì)提出的,獲得了2014年ILSVRC競賽的第一名。

與基于LeNet基礎(chǔ)提出的VGG不同,GoogLeNet采用了一些更大膽的方式。一般提升網(wǎng)絡(luò)精度最直接、最安全的方法就是增大網(wǎng)絡(luò)規(guī)模,包括網(wǎng)絡(luò)的深度、寬度、神經(jīng)元數(shù)量等。但是盲目地增大網(wǎng)絡(luò)規(guī)模會(huì)引起參數(shù)量的暴漲和計(jì)算復(fù)雜度的增加,從而引起過擬合,大大降低網(wǎng)絡(luò)性能,特別是當(dāng)數(shù)據(jù)集的規(guī)模有限時(shí),越深的網(wǎng)絡(luò)性能反而會(huì)越差。因此Google公司提出了一種新的網(wǎng)絡(luò)———GoogLeNet。GoogLeNet采用Inception方法解決了這一問題,其網(wǎng)絡(luò)深度達(dá)到了22層。

Inception在增加網(wǎng)絡(luò)的深度和寬度時(shí)控制網(wǎng)絡(luò)的參數(shù)量,因此將網(wǎng)絡(luò)中的全連接改為了稀疏連接,從計(jì)算密集矩陣改為計(jì)算稀疏矩陣,降低了計(jì)算量。

Inceptionv1的兩個(gè)版本結(jié)構(gòu)如圖5.4所示。其中,圖5.4(a)中把多個(gè)卷積或池化操作并聯(lián)在一起封裝為一個(gè)網(wǎng)絡(luò)模塊,設(shè)計(jì)之后的神經(jīng)網(wǎng)絡(luò)是以Inception模塊為單位來構(gòu)造整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的。圖5.4(a)中的模塊將三種常用卷積尺寸(1×1、3×3、5×5)以及3×3大小的池化并聯(lián)(池化操作的作用是減小空間占用,避免過擬合),運(yùn)算后得到4個(gè)尺寸大小相同的特征圖,最后級(jí)聯(lián)得到當(dāng)前模塊的輸出。

圖5.4Inceptionv1的兩個(gè)版本結(jié)構(gòu)

Inception改變了以前網(wǎng)絡(luò)結(jié)構(gòu)層與層之間串聯(lián)的規(guī)則,使用并聯(lián)結(jié)構(gòu)既可以保證結(jié)構(gòu)的整齊性,又可以在模型運(yùn)算過程中自由選擇每層使用卷積或者池化操作的尺寸,從而得到多尺度的信息,增強(qiáng)了模型的泛化能力。如果每一層都要計(jì)算上一層的輸出,那么卷積層和池化層的輸出疊加會(huì)使得到的輸出量增加,對于5×5的卷積層可能會(huì)導(dǎo)致計(jì)算量爆炸,因此對圖5.4(a)做了一些改進(jìn),如圖5.4(b)所示,在3×3和5×5的卷積前,以及3×3的池化操作后都添加了1×1的卷積用于降維。我們將這個(gè)稍加改進(jìn)的結(jié)構(gòu)稱為Inceptionv1的改進(jìn)版本?;贗nception構(gòu)建的GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)如表5.3所示。

研究者們在Inceptionv1的基礎(chǔ)上又提出了一些改進(jìn),提出了Inceptionv2模塊,即用多個(gè)較小的卷積核替代較大的卷積核(與VGG相似),并在Inceptionv1的基礎(chǔ)上增加了批量歸一化(batchnormalization,BN)層,用于規(guī)范每一層的輸入分布,加快網(wǎng)絡(luò)的訓(xùn)練速度。Inceptionv3還在原有的網(wǎng)絡(luò)結(jié)構(gòu)中加入了卷積分解的方法,將n×n大小的卷積核分解為1×n和n×1大小,這樣做減少了參數(shù)數(shù)量,降低了計(jì)算量。

5.3

案例與實(shí)踐

5.3.1圖像分類Inceptionv3是谷歌提出的Inceptionv1的改進(jìn)版網(wǎng)絡(luò),它在原有的網(wǎng)絡(luò)結(jié)構(gòu)中加入了卷積分解的方法,在降低了網(wǎng)絡(luò)計(jì)算量的同時(shí)提升了網(wǎng)絡(luò)的性能。Inceptionv3首先用小尺寸卷積核替代大尺寸卷積核,即用3×3和1×1的卷積核替代5×5和7×7的卷積核,將Inceptionv1改寫為如圖5.5(a)所示的結(jié)構(gòu),再將卷積核分解為非對稱卷積,即將n×n大小的卷積核分解為1×n和n×1大小,分解后的結(jié)構(gòu)如圖5.5(b)所示。

圖5.5Inceptionv2、Inceptionv3結(jié)構(gòu)圖

將Inceptionv3與其他方法用于圖像分類,實(shí)驗(yàn)分類結(jié)果如表5.4所示,Inceptionv3相比于其他方法的實(shí)驗(yàn)錯(cuò)誤率有了明顯的降低。

5.3.2圖像分割

DeepLabv1發(fā)表于2015年,其模型結(jié)構(gòu)如圖5.6所示。首先輸入圖像到深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)中提取圖像特征,這里使用的是VGG16網(wǎng)絡(luò)。由于池化操作會(huì)降低特征圖的分辨率,因此文獻(xiàn)[4]在操作時(shí)跳過了池化層的下采樣操作,并且將卷積替換為空洞卷積,通過在卷積核的行列之間補(bǔ)零的方法,擴(kuò)大感受野的同時(shí)實(shí)現(xiàn)了稀疏映射,從而降低了模型的計(jì)算復(fù)雜度。

如圖5.6所示,輸入圖像經(jīng)過DCNN提取特征后可得到圖像粗分割圖,然后使用雙線性插值(bilinearinterpolation)恢復(fù)到輸入圖像原尺寸,再用全連接CRF(conditionalradomfeild,條件隨機(jī)場)即可得到最后的分割結(jié)果。

圖5.6DeepLabv1模型結(jié)構(gòu)圖

CRF主要用于處理不光滑的分割問題。每個(gè)像素位置i

具有隱變量

xi(指像素的真實(shí)類別標(biāo)簽)及對應(yīng)的觀測值

yi

(指像素點(diǎn)對應(yīng)的顏色值)。以像素為節(jié)點(diǎn),像素與像素間的關(guān)系作為邊,可構(gòu)建一個(gè)條件隨機(jī)場(CRF)。通過觀測值yi

可預(yù)測像素位置i

對應(yīng)的類別標(biāo)簽xi。條件隨機(jī)場結(jié)構(gòu)如圖5.7所示。

圖5.7條件隨機(jī)場結(jié)構(gòu)示意圖

CRF能量函數(shù)為

(5.1)

式中:x為對于全局像素點(diǎn)的概率預(yù)測分布,xi

為某一個(gè)像素點(diǎn)的概率預(yù)測分布,θi(xi)為一元?jiǎng)莺瘮?shù),θij

(xi,xj)為二元?jiǎng)莺瘮?shù)。模型的優(yōu)化目標(biāo)就是最小化能量函數(shù)。

如表5.5所示,與PASCALVOC2012“測試”集上的其他先進(jìn)方法相比,文獻(xiàn)提出的DeepLab模型的性能當(dāng)時(shí)是最優(yōu)的,在測試集上的平均IOU最高達(dá)到了71.6%。

5.3.3目標(biāo)檢測

SSD(singleshotmultiBoxdetector)是WeiLiu在ECCV2016上提出的一種目標(biāo)檢測算法,是一種典型的one-stage方法,其主要思路是在圖片不同的位置上使用不同比例和尺寸的目標(biāo)框進(jìn)行密集采樣,再使用backbone提取特征并且直接分類得到結(jié)果,因此其計(jì)算速度更快。

SSD的主要思想是使用多個(gè)特征圖進(jìn)行多尺度的目標(biāo)位置預(yù)測和分類,初始會(huì)在圖片中設(shè)置不同尺度大小和長寬比例的復(fù)合型目標(biāo)框作為先驗(yàn)框。SSD模型結(jié)構(gòu)主要分為三部分,即Backbone、Extra-layers以及Pred-Layer,如圖5.8所示。

Backbone的主要作用是提取圖像的特征,這里采用了VGG16,并在此基礎(chǔ)上做出了一些改進(jìn),將VGG的最后兩個(gè)全連接層替換為卷積層。

Extra-layers用于對VGG輸出的圖像特征做進(jìn)一步處理,在VGG16后面增加了4個(gè)卷積層,加上VGG后的2個(gè)卷積層一共有6層,每一個(gè)卷積層的輸出一方面送入下一個(gè)卷積層繼續(xù)運(yùn)算,另一方面與初始化的目標(biāo)框進(jìn)行回歸與分類操作,且這些層的尺寸逐漸減小,這樣的設(shè)計(jì)可使模型得到多個(gè)尺度上的特征。

最后將得到的多種特征圖送入Pred-Layer中,從而預(yù)測目標(biāo)框的位置信息、置信度、類別等。

SSD損失函數(shù)為位置誤差(locatizationloss,lo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論