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