卷積神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱CNN,常用于視覺圖像分析的深度學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)。形象地來(lái)說(shuō),這些網(wǎng)絡(luò)結(jié)構(gòu)就是由生物的神經(jīng)元抽象擬合而成的。正如,每個(gè)生物神經(jīng)元可以相互通信一般,CNN根據(jù)輸入產(chǎn)生類似的通信輸出。若要論CNN的起源,那大概就是1980年代初了,隨著最近技術(shù)的迅猛進(jìn)步和計(jì)算能力的不斷強(qiáng)大,CNN就此流行起來(lái)。簡(jiǎn)而言之,CNN技術(shù)允許在合理的時(shí)間內(nèi),利用其自身性和擴(kuò)展性的算法對(duì)大量數(shù)據(jù)和復(fù)雜訓(xùn)練進(jìn)行卷積維度的“神經(jīng)”運(yùn)算。目前,CNN主要應(yīng)用于:基于人工智能的虛擬助手、自動(dòng)照片標(biāo)記、視頻標(biāo)記和自動(dòng)駕駛汽車等方面。
一、卷積神經(jīng)網(wǎng)絡(luò)與常規(guī)神經(jīng)網(wǎng)絡(luò)的區(qū)別
CNN能處理分辨率更高的圖像,解決常規(guī)神經(jīng)網(wǎng)絡(luò)不能解決的巨大計(jì)算開銷問題;舉個(gè)例子:如果考慮一個(gè)大小為224224個(gè)和3個(gè)通道的圖像,它對(duì)應(yīng)于224x224x3=150528的輸入特性。一個(gè)典型的具有1000個(gè)節(jié)點(diǎn)的隱層神經(jīng)網(wǎng)絡(luò)在第一層本身就有150528×1000個(gè)參數(shù)。這對(duì)于常規(guī)神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),根本就難以估量;
具有檢測(cè)不變性(Translation invariance)的特性,不管在識(shí)別過程中的哪個(gè)微時(shí)間階段,或者圖像識(shí)別的局部區(qū)域大小,都具有客觀識(shí)物不變性質(zhì)。
二、CNN的工作機(jī)制和原理
卷積層都是基于卷積的數(shù)學(xué)運(yùn)算。卷積層由一組濾波器組成,就像一個(gè)二維數(shù)字矩陣。然后,濾波器與輸入圖像合并以產(chǎn)生輸出。在每個(gè)卷積層中,我們采用一個(gè)濾波器并將濾波器滑動(dòng)到圖像上以執(zhí)行卷積操作。卷積運(yùn)算的主要任務(wù)是對(duì)圖像的濾波值和像素進(jìn)行矩陣乘法,并將得到的值相加得到輸出。
CNN可以幫助我們尋找特定的局部化圖像特征,例如:借助圖像中的邊緣,我們可以在網(wǎng)絡(luò)初始層中,使用這些特征來(lái)尋求一個(gè)簡(jiǎn)單的模式。這一過程暫且稱之為局部建模。再利用局部模型中的,劃分圖像的水平和垂直邊緣。當(dāng)然,也可以借助更深的層次結(jié)構(gòu),進(jìn)行二度復(fù)雜的模式構(gòu)建。一個(gè)典型的案例,就是垂直邊緣檢測(cè)的示例:
三、卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)
首先,卷積神經(jīng)網(wǎng)絡(luò)由許許多多的卷積層進(jìn)行組建,卷積層是CNN相對(duì)基礎(chǔ)的部分。它主要負(fù)責(zé)承載CNN計(jì)算的負(fù)荷。這個(gè)基礎(chǔ)層有助于減少神經(jīng)定義的空間,這因?yàn)榉线@一特性,我們這里姑且將這基礎(chǔ)層喻為單元池。這使得我們?cè)谶M(jìn)行類似CNN操作時(shí),大大減少了所需的計(jì)算量和權(quán)重。目前,最主流的檢測(cè)過程也可以說(shuō)是最大的池,它能檢測(cè)出就近原理的最大輸出。這些單元池提供了我們前面提及的檢測(cè)不變性,這也恰恰意味著,一個(gè)對(duì)象將是可識(shí)別的,無(wú)論它出現(xiàn)在框架上的任何位置。我們這里,可以將部分單元池按照一定的線性規(guī)則進(jìn)行鏈接而形成新的結(jié)構(gòu)體,稱為全連接層(FC)。這一層的神經(jīng)元與前一層或者后續(xù)一層的所有神經(jīng)元,都有完全的連通性,就像常規(guī)的神經(jīng)網(wǎng)絡(luò)中所看到的那樣。這就是為什么它可以像常規(guī)神經(jīng)網(wǎng)絡(luò)一樣,通過矩陣乘法和偏置效應(yīng)來(lái)計(jì)算。FC層還能表示輸入和輸出之間的映射關(guān)系。而對(duì)于非線性的網(wǎng)絡(luò)層來(lái)說(shuō),由于卷積是一種線性運(yùn)算,而且圖像遠(yuǎn)離線性,因此常將非線性層直接置于卷積層之后,將非線性引入后直接激活映射。非線性運(yùn)算有幾種,流行的有:
Sigmoid:這種非線性結(jié)構(gòu)具有數(shù)學(xué)層面上的表示形式。例如:F(X)=1/1+exp(-x)。.它取一個(gè)實(shí)數(shù)并將其壓縮到0到1之間。但是,它存在一個(gè)致命的問題——就是梯度消失問題,這是一種局部梯度變小而反向傳播導(dǎo)致梯度消失的現(xiàn)象。
Tanh: 可以將實(shí)數(shù)壓縮到范圍內(nèi)[-1,1]。和Sigmoid一樣,觸發(fā)時(shí)是飽和的,但不同的是它的輸出是以零為中心的。
ReLU:修正線性單元(Relu),同時(shí)計(jì)算函數(shù)?(κ)=max(0,κ)。換句話說(shuō),觸發(fā)時(shí)只是在零處的閾值。與Sigmoid和tanh相比,relu更可靠,收斂速度也提高了6倍不止。
四、 卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)
在充分了解了CNN的組成要素和工作機(jī)制之后,我們就可以建立一個(gè)卷積神經(jīng)網(wǎng)絡(luò)了。例如:我們可以使用CIFAR 10,這是一個(gè)由50,000個(gè)示例和10,000個(gè)示例組成的訓(xùn)練集的數(shù)據(jù)集。每個(gè)示例是一個(gè)32×32彩色圖像,均來(lái)自10個(gè)相互關(guān)聯(lián)的標(biāo)簽類中。在數(shù)據(jù)訓(xùn)練與模型的擬合過程中,我們采用了數(shù)據(jù)增強(qiáng)的方法。在所構(gòu)建的網(wǎng)絡(luò)中,使用了分批層次,通過采取具有強(qiáng)制性質(zhì)的高斯單位分布,避免了權(quán)重矩陣初始化不當(dāng)?shù)膯栴}。用于實(shí)現(xiàn)的CNN模型的體系結(jié)構(gòu):
-
濾波器
+關(guān)注
關(guān)注
160文章
7703瀏覽量
177485 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100420 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
782文章
13621瀏覽量
165952
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論