- 1、LeNet,1998年
- 2、AlexNet,2012年
- 3、ZF-net,2013年
- 4、GoogleNet,2014年
- 5、VGG,2014年
- 6、ResNet,2015年
LeNet-5
LeNet-5是由 Yann LeCun 等人於1998年提出的,是一個用於識別手寫數字的網絡,其網絡結構圖如下所示:
LeNet-5的輸入是 32×32 的灰度圖像,只有一個通道。網絡結構包括兩組卷積層+池化層的組合,兩個全連接層,輸出是 84×1維的向量,再通過一個特定的分類器得到預測值。前期LeNet-5 中的池化都是平均池化,而現在通常會使用最大池化。另外現在通常會使用 Softmax 來得到 10 路輸出作為預測。
在 LeNet-5 中,隨着網絡的深入,數據的高度和寬度逐漸縮小,通道數逐漸增加。LeNet-5 是一個很小的網絡,只有約 6 萬個參數,現代的神經網絡經常有上千萬甚至上億個參數。
LeNet-5共有7層,不包含輸入層,每層都包含可訓練參數(連接權重)。輸入圖像為32*32大小。這要比Mnist數據庫中最大的字母(28*28)還大。這樣做的原因是希望潛在的明顯特征如筆畫端點或角點能夠出現在最高層特征監測器感受野的中心。在LeNet-5中,最后一層卷積層的感受野的中心在32x32的輸入圖像中形成了一個20x20的區域,輸入像素值被歸一化了,這樣背景(白色)對應-0.1,前景(黑色)對應1.175.這使得輸入的均值約等於0,方差約等於1,這樣能夠加速學習。
LeNet-5網絡跟現在的網絡結構相似,在一些處理方式上有區別:
- LeNet-5使用Sigmoid和Tanh函數來獲取非線性輸出,現在常使用的非線性函數是ReLU;
- LeNet-5是在池化層之后引入了非線性,現在一般是在卷積層后通過激活函數獲取非線性,在池化層后不再引入非線性;
訓練參數計算:
C1層
屬性:卷積層 卷積核大小 5*5
輸入:32*32
輸出特征圖大小:28*28 (32-5+1)
卷積核種類(特征圖個數): 6
神經元數量: 28*28*6
可訓練參數: 6*(5*5+1)(6個特征圖,每個特征圖含一個濾波器5*5個參數,和一個偏置參數)
連接數: 6*(5*5+1)*28*28
S2層
屬性:下采樣層 采樣區域大小 2*2
采樣方式: 2*2區域的4個值相加,乘以一個可訓練參數,再加上一個偏置參數,結果通過Sigmoid非線性化
輸出特征圖大小: 14*14
采樣種類(特征圖個數): 6
神經元數量: 6*14*14
可訓練參數: 6*(1+1)(采樣的權重+一個偏置參數)
連接數: 6*(2*2+1)*14*14
C3層
屬性: 卷積層 卷積核大小 5*5
輸出特征圖大小: 10*10
卷積核種類(特征圖個數): 16
可訓練參數:C3跟S2並不是全連接的,具體連接方式是: C3的前6個特征圖以S2中3個相鄰的特征圖子集為輸入。接下來6個特征圖以S2中4個相鄰特征圖子集為輸入。然后的3個以不相鄰的4個特征圖子集為輸入。最后一個將S2中所有特征圖為輸入,對應如下:
這樣算,可訓練參數 = 6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516
連接數:10*10*1516
S4層
屬性:下采樣層 采樣區域大小 2*2
采樣方式: 2*2區域的4個值相加,乘以一個可訓練參數,再加上一個偏置參數,結果通過Sigmoid非線性化
輸出特征圖大小: 5*5
采樣種類(特征圖個數): 16
神經元數量: 16*5*5
可訓練參數: 16*(1+1)(采樣的權重+一個偏置參數)
連接數:16*(2*2+1)*5*5=2000
C5層
屬性:卷積層 卷積核大小 5*5
輸入:5*5
輸出特征圖大小:1*1 (5-5+1)
卷積核種類(特征圖個數): 120
神經元數量: 120*1
可訓練參數: 120*(5*5*16+1)=48120
連接數: 120*(5*5*16+1)=48120
F6
屬性: 全連接層
輸入: 120維的向量
計算方式:計算輸入向量和權重向量之間的點積,再加上一個偏置,結果通過sigmoid函數
可訓練參數: 84*(120+1)= 10164
Gaussian Connections
LeNet-5最后一步是Gaussian Connections,采用了RBF函數(即徑向歐式距離函數),計算輸入向量和參數向量之間的歐式距離。目前已經被Softmax取代。