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

下載本文檔

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

文檔簡介

第4章卷積神經(jīng)網(wǎng)絡(luò)(一)4.1結(jié)構(gòu)和學(xué)習(xí)算法4.2兩種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)4.3案例與實踐

4.1結(jié)構(gòu)和學(xué)習(xí)算法

4.1.1卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)目前有許多CNN架構(gòu)的變體,但它們的基本結(jié)構(gòu)非常相似。CNN的基本體系結(jié)構(gòu)通常由三種層構(gòu)成,分別是卷積層、池化層和全連接層,如圖4.1所示。圖4.1CNN結(jié)構(gòu)示意圖

卷積層由幾個特征圖(featuremaps)組成。一個特征圖的每個神經(jīng)元與它前一層的鄰近神經(jīng)元相連,這樣的一個鄰近區(qū)域叫作該神經(jīng)元在前一層的局部感知野。視覺皮層的神經(jīng)元就是用來局部接收信息的(這些神經(jīng)元只響應(yīng)某些特定區(qū)域的刺激)。神經(jīng)元區(qū)域響應(yīng)如圖4.2所示。

在圖4.2(a)中,假如每個神經(jīng)元只和它前一層鄰近的10×10個像素值相連,那么權(quán)值數(shù)據(jù)為1000000×100個參數(shù),減少為原來的萬分之一。而那10×10個像素值對應(yīng)的10×10個參數(shù),其實就相當(dāng)于卷積操作。

圖4.2神經(jīng)元區(qū)域響應(yīng)圖

為了計算一個新的特征圖,輸入特征圖首先與一個學(xué)習(xí)好的卷積核(也被稱為濾波器、特征檢測器)做卷積,然后將結(jié)果傳遞給一個非線性激活函數(shù)。通過應(yīng)用不同的卷積核可以得到新的特征圖。激活函數(shù)可描述CNN的非線性度,對多層網(wǎng)絡(luò)檢測非線性特征十分理想。典型的激活函數(shù)有Sigmoid、tanh和ReLU。

池化層旨在通過降低特征圖的分辨率實現(xiàn)空間不變性。它通常位于兩個卷積層之間。每個池化層的特征圖和它相應(yīng)的前一卷積層的特征圖相連,因此它們的特征圖數(shù)量相同。典型的池化操作是平均池化和最大池化。通過疊加幾個卷積層和池化層,可以提取更抽象的特征表示。例如,人們可以計算圖像一個區(qū)域上某個特定特征的平均值(或最大值)。這些概要統(tǒng)計特征不僅具有低得多的維度(相比使用所有提取得到的特征),同時還會改善結(jié)果(不容易過擬合)。這種聚合操作就叫作池化(pooling),有時也稱為平均池化或者最大池化(取決于計算池化的方法)。

最大池化操作如圖4.3所示。

圖4.3最大池化操作示意圖

形式上,在獲取到卷積特征后,還要確定池化區(qū)域的大小(假定為m×n),以池化卷積特征。把卷積特征劃分到數(shù)個大小為m×n的不相交區(qū)域上,然后用這些區(qū)域的平均(或最大)特征來獲取池化后的卷積特征,這些池化后的卷積特征便可以用來做分類。

經(jīng)過幾個卷積層和池化層之后,通常有一個或多個全連接層。它們將前一層所有的神經(jīng)元與當(dāng)前層的每個神經(jīng)元相連接。全連接層不保存空間信息。卷積神經(jīng)網(wǎng)絡(luò)中全連接層如圖4.4所示。

圖4.4卷積神經(jīng)網(wǎng)絡(luò)中全連接層示意圖

最后的全連接層的輸出傳遞到輸出層。對于分類任務(wù),softmax回歸由于可以生成輸出的well-formed概率分布而被普遍使用。給定訓(xùn)練集

其中x(i)是第i個輸入圖像塊,y(i)是它的類標(biāo)簽,第i個輸入屬于第j

類的預(yù)測值a(i)

j

可以用如下的softmax函數(shù)轉(zhuǎn)換:

4.1.2卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法

卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入到輸出的映射關(guān)系,而不需要任何輸入和輸出之間精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就會具有輸入到輸出的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是有導(dǎo)師訓(xùn)練,所以其樣本集是由形如(輸入向量,理想輸出向量)的向量對構(gòu)成的,所有這些向量對都應(yīng)該是來源于網(wǎng)絡(luò),即模擬的系統(tǒng)的實際“運(yùn)行”結(jié)果,它們可以是從實際運(yùn)行系統(tǒng)中采集來的。在開始訓(xùn)練前,所有的權(quán)都應(yīng)該用一些不同的小隨機(jī)數(shù)進(jìn)行初始化?!靶‰S機(jī)數(shù)”用來保證網(wǎng)絡(luò)不會因權(quán)值過大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失??;“不同”用來保證網(wǎng)絡(luò)可以正常地學(xué)習(xí)。

訓(xùn)練算法主要包括4步,這4步又被分為兩個階段。

第一階段,向前傳播階段。

(1)從樣本集中取一個樣本(X,Yp),將X輸入網(wǎng)絡(luò);

(2)計算相應(yīng)的實際輸出Op。

在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時執(zhí)行的過程。

第二階段,向后傳播階段。

(1)計算實際輸出Op與相應(yīng)的理想輸出Yp的差;

(2)按極小化誤差的方法調(diào)整權(quán)矩陣。

這兩個階段的工作一般應(yīng)受精度要求的控制。

4.2兩種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)

4.2.1LeNet

LeNet-5卷積神經(jīng)網(wǎng)絡(luò)算法可廣泛應(yīng)用于數(shù)字識別、圖像識別領(lǐng)域。不包括輸入層,LeNet-5共有7層:

3個卷積層、2個池化層、1個全連接層和1個輸出層。其中C1、C3層為5×5的卷積層,S2、S4層為池化層,F6層是全連接層,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4.5所示。

圖4.5LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)

由圖4.5可以看出,輸入的圖像的大小為32×32。經(jīng)過6個5×5的卷積核進(jìn)行卷積操作后,得到了6個28×28特征圖的C1卷積層。接著S2池化層進(jìn)行下采樣,得到6個14×14的特征圖,其運(yùn)算方式是每個特征圖的單元都與C1卷積層中的每個特征圖的2×2像素的區(qū)域相連。C3卷積層有16張?zhí)卣鲌D,每個特征圖均通過5×5的卷積核與S2池化層中的某幾個或全部特征圖進(jìn)行卷積操作,S2與C3的連接方式如表4.1所示。S4池化層通過對C3層下采樣得到16個5×5的特征圖。C5卷積層的120個特征圖是通過對S4層進(jìn)行5×5的卷積操作得到的,特征圖的大小為1×1。F6全連接層共有84個單元,并且F6層與C5層是全連接的。輸出層采用的是歐氏徑向基函數(shù)(RBF)。RBF的計算方式如下:

式中:xj為全連接層中第j個神經(jīng)元,yi為輸出層第i

個神經(jīng)元,wij為全連接層第j個神經(jīng)元與輸出層第i

個神經(jīng)元之間的權(quán)值。

4.2.2AlexNet

AlexNet在模型訓(xùn)練中加入了LRN(localresponsenormalization)局部響應(yīng)歸一化、ReLU激活函數(shù)、Dropout、GPU加速等新的技術(shù)點,成功地推動了神經(jīng)網(wǎng)絡(luò)的發(fā)展。由于AlexNet在BP神經(jīng)網(wǎng)絡(luò)和LeNet-5的基礎(chǔ)上提出了更深更寬的神經(jīng)網(wǎng)絡(luò),因此它具備兩者的優(yōu)點,并對某些數(shù)據(jù)局部特征變形或扭曲具有一定的魯棒性。

AlexNet模型共八層,前五層為卷積層和池化層,后三層為全連接層。全連接層后接softmax分類器進(jìn)行分類,其結(jié)構(gòu)如圖4.6所示。AlexNet具有以下四個方面的特點:

(1)使用ReLU激活,使得計算量大大減少。由于ReLU激活函數(shù)為線性函數(shù),其導(dǎo)數(shù)為1,因此減少了模型訓(xùn)練的計算量。正是因為激活函數(shù)導(dǎo)數(shù)不為0,所以梯度在反向傳播過程中不會出現(xiàn)逐漸衰減的現(xiàn)象,且在網(wǎng)絡(luò)層數(shù)加深時梯度不會消失。

(2)AlexNet在全連接層中使用了Dropout,在訓(xùn)練時隨機(jī)忽略部分神經(jīng)元,被“丟棄”的神經(jīng)元不參與訓(xùn)練,輸入和輸出該神經(jīng)元的權(quán)重系數(shù)也不做更新,從而有效地解決了過擬合問題。

(3)局部響應(yīng)歸一化層(LRN)借鑒側(cè)抑制的思想來實現(xiàn)局部抑制,創(chuàng)建了局部神經(jīng)元的競爭機(jī)制,使響應(yīng)大的值更大并且抑制響應(yīng)小的值,增強(qiáng)了模型的泛化能力。

(4)AlexNet采用GPU并行訓(xùn)練,提高了模型的訓(xùn)練速度。

圖4.6AlexNet結(jié)構(gòu)

4.3案例與實踐

4.3.1圖像語義分割

圖像語義分割就是逐像素分類的過程。Linknet[5]是一種進(jìn)行語義分割的輕量型深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可用于完成無人駕駛、增強(qiáng)現(xiàn)實等任務(wù)。它能夠在GPU和NVIDIATX1等嵌入式設(shè)備上提供實時性能。Linknet可以在TX1和TitanX上分別以2f/s和19f/s的速率處理分辨率為1280×720的輸入圖像,其架構(gòu)如圖4.7所示。

圖4.7LinkNet架構(gòu)

LinkNet架構(gòu)類似Unet的網(wǎng)絡(luò)架構(gòu),編碼器的特征圖和對應(yīng)解碼器上采樣后的特征圖級聯(lián),conv為卷積操作,full-conv為全卷積,/2代表下采樣的步長是2,*2代表上采樣的因子是2。卷積層后加BN(batchnormalization)與ReLU操作。圖4.7的左半部分為編碼器,使用ResNet-18進(jìn)行編碼,使得模型更加輕量化且效果較好;圖4.7的右半部分為解碼器。

LinkNet中的模塊如圖4.8所示。

圖4.8LinkNet中的模塊

表4.2包含了整個LinkNet中每個模塊使用的特征圖信息。

4.3.2目標(biāo)檢測

目標(biāo)檢測就是在給定的場景中確定目標(biāo)的位置和類別,然而尺寸、姿態(tài)、光照、遮擋等因素的干擾,給目標(biāo)檢測增加了一定的難度。傳統(tǒng)的目標(biāo)檢測采用模板匹配的方法。而基

于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法一般可分為兩類:one-stage算法與two-stage算法。最具代表性的one-stage算法包括SSD、YOLO等變體;

two-stage算法主要以R-CNN、FastR-CNN、FasterR-CNN及基于R-CNN的變體算法為主。本節(jié)主要介紹two-stage算法中FasterR-CNN。

FasterR-CNN在FastR-CNN的基礎(chǔ)上將selectivesearch的搜索方法換成RPN(regionproposalnetwork),同時引入anchorbox解決了目標(biāo)形變,因此FasterR-CNN能夠?qū)⑻卣魈崛?、proposal提取、目標(biāo)框回歸與分類整合在一個網(wǎng)絡(luò)中,其結(jié)構(gòu)如圖4.9所示,主要包括以下四個部分:

卷積:采用卷積、ReLU及池化操作提取輸入圖像的特征圖,特征圖被RPN和全連接層所共享。

RPN:首先判斷anchors屬于前景還是背景,再利用回歸修正anchors獲得精確的區(qū)域。

ROI池化:利用卷積層輸出的特征圖和RPN網(wǎng)絡(luò)產(chǎn)生的區(qū)域提取區(qū)域的特征,將特征輸入全連接層。

分類:利用提取區(qū)域的特征計算區(qū)域的類別,并采用目標(biāo)框回歸獲得最終目標(biāo)框的精確位置。

圖4.9FasterR-CNN網(wǎng)絡(luò)結(jié)構(gòu)

RPN網(wǎng)絡(luò)結(jié)構(gòu)如圖4.10所示。在特征圖上滑動窗口能夠得到目標(biāo)的粗略位置,同時由于anchorsbox的比例不同,因此能夠適應(yīng)不同尺寸與分辨率的目標(biāo)。之后進(jìn)行目標(biāo)分類和邊界框回歸:通過目標(biāo)分類可以得到檢測目標(biāo)是前景還是背景;利用邊界框回歸通過計算邊界框的偏移量,以獲得更精確的目標(biāo)框位置。

圖4.10RPN網(wǎng)絡(luò)結(jié)構(gòu)

ROI池化操作將不同大小的ROI轉(zhuǎn)換為固定大小的ROI,從而提高處理速度。其主要步驟如下:

(1)根據(jù)輸入圖像將ROI映射到特征圖對應(yīng)的位置。

(2)將映射后的區(qū)域劃分為相同大小的sections,其數(shù)量與輸出的維度保持一致。

(3)對每個section進(jìn)行最大池化操作。

FasterR-CNN的損失函數(shù)為

(4.2)

式中:

i

為anchor在一個小batch里的索引;pi

為anchor預(yù)測為目標(biāo)的概率;p*i

為標(biāo)簽值,當(dāng)標(biāo)簽值為正時,p*i

=1,當(dāng)標(biāo)簽值為負(fù)時,p*i

=0;

ti={tx

,ty

,tw,th}是預(yù)測邊界框的坐標(biāo)向量;t*i

為對應(yīng)的groundtruth;Lcls(pi,p*i)是兩個類別的對數(shù)損失;Lreg(ti,t*i)為回歸損失,這里采用smoothL1來計算;p*i

Lreg(ti,t*i)代表只有前景才能計入損失,背景不參加。有關(guān)該算法更多的細(xì)節(jié)可以查看本章參考文獻(xiàn)。

R-CNN、FastR-CNN、FasterR-CNN算法的簡要對比如表4.3所示。

4.3.3目標(biāo)跟蹤

SiameseFC算法通過模板匹配的方法進(jìn)行相似性度量,計算出模板圖像和待檢測圖像各位置的相似度,相似度最高的點即為目標(biāo)中心位置,這樣不僅跟蹤效果好,且效率高。

該算法采用ILSVRC15數(shù)據(jù)庫中用于目標(biāo)檢測的視頻進(jìn)行離線模型訓(xùn)練,同時不更新模型,保證了算法速度。SiameseFC算法憑借其優(yōu)勢成為很多變體(如CFNet、DCFNet)的基線,其流程如圖4.11所示。

圖4.11SiameseFC算法流程圖

溫馨提示

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

最新文檔

評論

0/150

提交評論