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