圖像識別-LeNet網絡筆記

一、引言

手寫字體識別模型LeNet5誕生於1994年,是最早的卷積神經網絡之一。LeNet5通過巧妙的設計,利用卷積、參數共享、池化等操作提取特徵,避免了大量的計算成本,最後再使用全連接神經網絡進行分類識別,這個網絡也是最近大量神經網絡架構的起點。

LeNet網絡是Yann LeCun大神的論文,來源Gradient-Based Learning Applied to Document Recognition

二、LeNet網絡筆記

LeNet5的網絡結構示意圖如下所示:
在這裏插入圖片描述
LeNet5由7層CNN(不包含輸入層)組成,上圖中輸入的原始圖像大小是32×32像素,卷積層用Ci表示,子採樣層(pooling,池化)用Si表示,全連接層用Fi表示。下面逐層介紹其作用和示意圖上方的數字含義。

1、C1層(卷積層):6@28×28

該層使用了6個卷積核,每個卷積核的大小爲5×5,這樣就得到了6個feature map(特徵圖)。

(1)特徵圖大小
每個卷積核(5×5)與原始的輸入圖像(32×32)進行卷積,這樣得到的feature map(特徵圖)大小爲(32-5+1)×(32-5+1)= 28×28

卷積核與輸入圖像按卷積核大小逐個區域進行匹配計算,匹配後原始輸入圖像的尺寸將變小,因爲邊緣部分卷積核無法越出界,只能匹配一次,匹配計算後的尺寸變爲Cr×Cc=(Ir-Kr+1)×(Ic-Kc+1),其中Cr、Cc,Ir、Ic,Kr、Kc分別表示卷積後結果圖像、輸入圖像、卷積核的行列大小。

(2)參數個數
由於參數(權值)共享的原因,對於同個卷積核每個神經元均使用相同的參數,因此,參數個數爲(5×5+1)×6= 156,其中5×5爲卷積核參數,1爲偏置參數

(3)連接數
卷積後的圖像大小爲28×28,因此每個特徵圖有28×28個神經元,每個卷積核參數爲(5×5+1)×6,因此,該層的連接數爲(5×5+1)×6×28×28=122304

2、S2層(下采樣層,也稱池化層):6@14×14

(1)特徵圖大小

這一層主要是做池化或者特徵映射(特徵降維),池化單元爲2×2,因此,6個特徵圖的大小經池化後即變爲14×14。回顧本文剛開始講到的池化操作,池化單元之間沒有重疊,在池化區域內進行聚合統計後得到新的特徵值,因此經2×2池化後,每兩行兩列重新算出一個特徵值出來,相當於圖像大小減半,因此卷積後的28×28圖像經2×2池化後就變爲14×14。

這一層的計算過程是:2×2 單元裏的值相加,然後再乘以訓練參數w,再加上一個偏置參數b(每一個特徵圖共享相同的w和b),然後取sigmoid值(S函數:0-1區間),作爲對應的該單元的值。卷積操作與池化的示意圖如下:

在這裏插入圖片描述
(2)參數個數

S2層由於每個特徵圖都共享相同的w和b這兩個參數,因此需要2×6=12個參數

(3)連接數
下采樣之後的圖像大小爲14×14,因此S2層的每個特徵圖有14×14個神經元,每個池化單元連接數爲2×2+1(1爲偏置量),因此,該層的連接數爲(2×2+1)×14×14×6 = 5880

3、C3層(卷積層):16@10×10

C3層有16個卷積核,卷積模板大小爲5×5。

(1)特徵圖大小

與C1層的分析類似,C3層的特徵圖大小爲(14-5+1)×(14-5+1)= 10×10

(2)參數個數

需要注意的是,C3與S2並不是全連接而是部分連接,有些是C3連接到S2三層、有些四層、甚至達到6層,通過這種方式提取更多特徵,連接的規則如下表所示:
在這裏插入圖片描述
例如第一列表示C3層的第0個特徵圖(feature map)只跟S2層的第0、1和2這三個feature maps相連接,計算過程爲:用3個卷積模板分別與S2層的3個feature maps進行卷積,然後將卷積的結果相加求和,再加上一個偏置,再取sigmoid得出卷積後對應的feature map了。其它列也是類似(有些是3個卷積模板,有些是4個,有些是6個)。因此,C3層的參數數目爲(5×5×3+1)×6 +(5×5×4+1)×9 +5×5×6+1 = 1516

(3)連接數

卷積後的特徵圖大小爲10×10,參數數量爲1516,因此連接數爲1516×10×10= 151600

4、S4(下采樣層,也稱池化層):16@5×5

(1)特徵圖大小

與S2的分析類似,池化單元大小爲2×2,因此,該層與C3一樣共有16個特徵圖,每個特徵圖的大小爲5×5。

(2)參數量

與S2的計算類似,所需要參數個數爲16×2 = 32

(3)連接數

連接數爲(2×2+1)×5×5×16 = 2000

5、C5層(卷積層):120

(1)特徵圖大小

該層有120個卷積核,每個卷積核的大小仍爲5×5,因此有120個特徵圖。由於S4層的大小爲5×5,而該層的卷積核大小也是5×5,因此特徵圖大小爲(5-5+1)×(5-5+1)= 1×1。這樣該層就剛好變成了全連接,這只是巧合,如果原始輸入的圖像比較大,則該層就不是全連接了。

(2)參數個數

與前面的分析類似,本層的參數數目爲120×(5×5×16+1) = 48120

(3)連接數

由於該層的特徵圖大小剛好爲1×1,因此連接數爲48120×1×1=48120

6、F6層(全連接層):84

(1)特徵圖大小

F6層有84個單元,之所以選這個數字的原因是來自於輸出層的設計,對應於一個7×12的比特圖,如下圖所示,-1表示白色,1表示黑色,這樣每個符號的比特圖的黑白色就對應於一個編碼。
該層有84個特徵圖,特徵圖大小與C5一樣都是1×1,與C5層全連接。

(2)參數個數

由於是全連接,參數數量爲(120+1)×84=10164。跟經典神經網絡一樣,F6層計算輸入向量和權重向量之間的點積,再加上一個偏置,然後將其傳遞給sigmoid函數得出結果。

(3)連接數

由於是全連接,連接數與參數數量一樣,也是10164。

7、OUTPUT層(輸出層):10

Output層也是全連接層,共有10個節點,分別代表數字0到9。如果第i個節點的值爲0,則表示網絡識別的結果是數字i。

(1)特徵圖大小

該層採用徑向基函數(RBF)的網絡連接方式,假設x是上一層的輸入,y是RBF的輸出,則RBF輸出的計算方式是:
在這裏插入圖片描述
上式中的Wij的值由i的比特圖編碼確定,i從0到9,j取值從0到7×12-1。RBF輸出的值越接近於0,表示當前網絡輸入的識別結果與字符i越接近。

(2)參數個數

由於是全連接,參數個數爲84×10=840。

(3)連接數

由於是全連接,連接數與參數個數一樣,也是840。

發佈了82 篇原創文章 · 獲贊 50 · 訪問量 4045
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章