深度学习 CNN卷积神经网络 LeNet-5详解
卷積神經網絡( Convolutional Neural Network, CNN):
是一種常見的深度學習架構,受生物自然視覺認知機制(動物視覺皮層細胞負責檢測光學信號)啟發而來,是一種特殊的多層前饋神經網絡。它的人工神經元可以響應一部分覆蓋范圍內的周圍單元,對于大型圖像處理有出色表現。
一般神經網絡VS卷積神經網絡:
相同點:卷積神經網絡也使用一種反向傳播算法(BP)來進行訓練
不同點:網絡結構不同。卷積神經網絡的網絡連接具有局部連接、參數共享的特點。
局部連接:是相對于普通神經網絡的全連接而言的,是指這一層的某個節點只與上一層的部分節點相連。
參數共享:是指一層中多個節點的連接共享相同的一組參數。
全連接:連接個數n*m 局部連接:連接個數i*m
參數不共享:參數個數n*m+m 參數共享:參數個數i+1
卷積神經網絡的主要組成:
卷積層(Convolutional layer),卷積運算的目的是提取輸入的不同特征,第一層卷積層可能只能提取一些低級的特征如邊緣、線條和角等層級,更多層的網絡能從低級特征中迭代提取更復雜的特征。
池化層(Pooling),它實際上一種形式的向下采樣。有多種不同形式的非線性池化函數,而其中最大池化(Max pooling)和平均采樣是最為常見的
全連接層(Full connection), 與普通神經網絡一樣的連接方式,一般都在最后幾層
pooling層的作用:
Pooling層相當于把一張分辨率較高的圖片轉化為分辨率較低的圖片;
pooling層可進一步縮小最后全連接層中節點的個數,從而達到減少整個神經網絡中參數的目的。
LeNet-5卷積神經網絡模型
LeNet-5:是Yann LeCun在1998年設計的用于手寫數字識別的卷積神經網絡,當年美國大多數銀行就是用它來識別支票上面的手寫數字的,它是早期卷積神經網絡中最有代表性的實驗系統之一。
LenNet-5共有7層(不包括輸入層),每層都包含不同數量的訓練參數,如下圖所示。
LeNet-5中主要有2個卷積層、2個下抽樣層(池化層)、3個全連接層3種連接方式
卷積層
卷積層采用的都是5x5大小的卷積核/過濾器(kernel/filter),且卷積核每次滑動一個像素(stride=1),一個特征圖譜使用同一個卷積核.
每個上層節點的值乘以連接上的參數,把這些乘積及一個偏置參數相加得到一個和,把該和輸入激活函數,激活函數的輸出即是下一層節點的值
LeNet-5的下采樣層(pooling層)
下抽樣層采用的是2x2的輸入域,即上一層的4個節點作為下一層1個節點的輸入,且輸入域不重疊,即每次滑動2個像素,下抽樣節點的結構如下:
每個下抽樣節點的4個輸入節點求和后取平均(平均池化),均值乘以一個參數加上一個偏置參數作為激活函數的輸入,激活函數的輸出即是下一層節點的值。
卷積后輸出層矩陣寬度的計算:
Outlength=
(inlength-fileterlength+2*padding)/stridelength+1
Outlength:輸出層矩陣的寬度
Inlength:輸入層矩陣的寬度
Padding:補0的圈數(非必要)
Stridelength:步長,即過濾器每隔幾步計算一次結果
LeNet-5第一層:卷積層C1
C1層是卷積層,形成6個特征圖譜。卷積的輸入區域大小是5x5,每個特征圖譜內參數共享,即每個特征圖譜內只使用一個共同卷積核,卷積核有5x5個連接參數加上1個偏置共26個參數。卷積區域每次滑動一個像素,這樣卷積層形成的每個特征圖譜大小是(32-5)/1+1=28x28。C1層共有26x6=156個訓練參數,有(5x5+1)x28x28x6=122304個連接。C1層的連接結構如下所示。
LeNet-5第二層:池化層S2
S2層是一個下采樣層(為什么是下采樣?利用圖像局部相關性的原理,對圖像進行子抽樣,可以減少數據處理量同時保留有用信息)。C1層的6個28x28的特征圖譜分別進行以2x2為單位的下抽樣得到6個14x14((28-2)/2+1)的圖。每個特征圖譜使用一個下抽樣核。5x14x14x6=5880個連接。S2層的網絡連接結構如下右圖
LeNet-5第三層:卷積層C3
C3層是一個卷積層,卷積和和C1相同,不同的是C3的每個節點與S2中的多個圖相連。C3層有16個10x10(14-5+1)的圖,每個圖與S2層的連接的方式如下表 所示。C3與S2中前3個圖相連的卷積結構見下圖.這種不對稱的組合連接的方式有利于提取多種組合特征。該層有(5x5x3+1)x6 + (5x5x4 + 1) x 3 + (5x5x4 +1)x6 + (5x5x6+1)x1 = 1516個訓練參數,共有1516x10x10=151600個連接。
LeNet-5第四層:池化層S4
S4是一個下采樣層。C3層的16個10x10的圖分別進行以2x2為單位的下抽樣得到16個5x5的圖。5x5x5x16=2000個連接。連接的方式與S2層類似,如下所示。
LeNet-5第五層:全連接層C5
C5層是一個全連接層。由于S4層的16個圖的大小為5x5,與卷積核的大小相同,所以卷積后形成的圖的大小為1x1。這里形成120個卷積結果。每個都與上一層的16個圖相連。所以共有(5x5x16+1)x120 = 48120個參數,同樣有48120個連接。C5層的網絡結構如下所示。
LeNet-5第六層:全連接層F6
F6層是全連接層。F6層有84個節點,對應于一個7x12的比特圖,該層的訓練參數和連接數都是(120 + 1)x84=10164.
LeNet-5第七層:全連接層Output
Output層也是全連接層,共有10個節點,分別代表數字0到9,如果節點i的輸出值為0,則網絡識別的結果是數字i。采用的是徑向基函數(RBF)的網絡連接方式。假設x是上一層的輸入,y是RBF的輸出,則RBF輸出的計算方式是:
yi的值由i的比特圖編碼(即參數Wij)確定。yi越接近于0,則標明輸入越接近于i的比特圖編碼,表示當前網絡輸入的識別結果是字符i。該層有84x10=840個設定的參數和連接。連接的方式如上圖.
以上是LeNet-5的卷積神經網絡的完整結構,共約有60,840個訓練參數,340,908個連接。一個數字識別的效果如圖所示
LeNet-5的訓練算法
訓練算法與傳統的BP算法差不多。主要包括4步,這4步被分為兩個階段:
第一階段,向前傳播階段:
a)從樣本集中取一個樣本(X,Yp),將X輸入網絡;
b)計算相應的實際輸出Op。
在此階段,信息從輸入層經過逐級的變換,傳送到輸出 層。這個過程也是網絡在完成訓練后正常運行時執行的過程。在此過程中,網絡執行的是計算(實際上就是輸入與每層的權值矩陣相點乘,得到最后的輸出結果):
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
第二階段,向后傳播階段
a)算實際輸出Op與相應的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調整權矩陣。
卷積神經網絡的優點
卷積網絡較一般神經網絡在圖像處理方面有 如下優點
a)輸入圖像和網絡的拓撲結構能很好的吻
合;
b)特征提取和模式分類同時進行,并同時在
訓練中產生;
c)權重共享可以減少網絡的訓練參數,使神
經網絡結構變得更簡單,適應性更強。
總結
卷積網絡在本質上是一種輸入到輸出的映射,它能夠學習大量的輸入與輸出之間的映射關系,而不需要任何輸入和輸出之間的精確的數學表達式。
通過對LeNet-5的網絡結構的分析,可以直觀地了解一個卷積神經網絡的構建方法,可以為分析、構建更復雜、更多層的卷積神經網絡做準備。
LaNet-5的局限性
CNN能夠得出原始圖像的有效表征,這使得CNN能夠直接從原始像素中,經過極少的預處理,識別視覺上面的規律。然而,由于當時缺乏大規模訓練數據,計算機的計算能力也跟不上,LeNet-5 對于復雜問題的處理結果并不理想。
2006年起,人們設計了很多方法,想要克服難以訓練深度CNN的困難。其中,最著名的是 Krizhevsky et al.提出了一個經典的CNN 結構,并在圖像識別任務上取得了重大突破。其方法的整體框架叫做 AlexNet,與 LeNet-5 類似,但要更加深一些。
---------------------
原文:https://blog.csdn.net/happyorg/article/details/78274066
總結
以上是生活随笔為你收集整理的深度学习 CNN卷积神经网络 LeNet-5详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tensorflow实例:(卷积神经网络
- 下一篇: 学英语必备的18条法则,建议收藏!