CS231n-2017 第9講 卷積神經網路的各種架構
1. LeNet-5
: LeCun et al., 1998, 5層
網路結構為(Conv
為卷積層,Pool
為池化層,FC
為全連線層):
Conv — Pool — Conv — Pool — FC — FC — FC
卷積核尺寸為5x5
,跨立間隔為1
;池化層尺寸為2x2
,跨立間隔為2
。
2. AlexNet
: Krizhevsky et al., 2012, 8層
該網路將ImageNet
影象分類的錯誤率降低到了16.4%
,以此贏得了當年的ILSVRC
競賽。其結構為:
圖 2. AlexNet結構Conv1 — Max Pool1 — Norm1 — Conv2 — Max Pool2 — Norm2 — Conv3 — Conv4 — Conv5 — Max Pool3 — FC6 — FC7 — FC8
各層的具體引數如下:
圖 3. AlexNet各層引數該網路的一些特徵:
- 首次使用
ReLU
啟用函式。 - 充分使用資料增強技術。
Dropout
概率設定為0.5
。- 隨機梯度下降方法的動量係數設定為
0.9
。 - 學習速率設定為
0.01
,當驗證精度(val accuracy)變化緩慢時,將學習速率衰減10倍。 - 使用
L2
正則化,係數為 。
3. ZFNet
: Zeiler and Fergus, 2013, 8層
將AlexNet
的Conv1
層的卷積核尺寸由11x11
改為7x7
,跨立間隔由4改為2,以此將ImageNet影象分類的錯誤率降低到11.7%
,以此贏得了當年的ILSVRC
競賽。
4. VGGNet
: Simonyan and Zisserman, 2014, 16層&19層
基本思想:減小濾波器尺寸,以增加網路深度。其結構如下圖所示:
圖 4. VGG網路結構為什麼使用小尺寸的卷積核
-
(1) 在卷積輸出結果的接觸域一致的前提下:尺寸小的卷積核可以支援更深的深度。
例如:卷積核尺寸為
7x7
時,一層網路的卷積結果的接觸域是7x7;那麼同樣的接觸域大小,若使用3x3的卷積核,則需要三層。 -
(2) 在接觸域和輸出特徵數一致的前提下,尺寸較小的卷積核的引數較少。
如上述例子,假設資料通道數為C,那麼輸出一個特徵,使用
7x7
的卷積核時,所需引數個數為 ;使用3x3的卷積核時,所需引數個數為 。
該網路將ImageNet的影象分類錯誤率降低為7.3%
。
5. GoogleNet
: Szegedy et al., 2014, 22層
網路特點:去除全連線層,使得引數個數大幅度下降;構建Inception模組,網路的主要結構由Inception
模組堆疊而成。Inception
模組如下圖所示:
該模組把通過不同卷積核所獲取的特徵,沿特徵深度方向連線起來(即一個特徵的維度為各個卷積核輸出的特徵維度的和)。這會導致特徵的維度逐漸增長。針對這一問題,學者又引入了BottleNeck
層,該層用1x1的卷積核將特徵深度降低。BottleNeck
層結構如下:
GoogleNet
還在某些中間層,添加了額外的分類分支,這樣使得訓練網路時,這些分支分類器也會產生相應的梯度流。其理念是:網路中間層的資訊對網路效能有影響,若將中間的資訊計入優化目標,可能會提升網路效能;保持整個網路的資訊流在一個正確的方向上,(如果分支分類器的損失太大,則意味著網路的資訊流正在偏離正確方向)。
6. ResNet
: He et al., 2015, 152層
ResNet
網路的提出源於一個針對當時已有的網路的效能的觀察:更深的網路的效能反而比不上層數合適的網路。為了使更深的網路的效能起碼不能差於較淺的網路,考慮從某層開始,訓練一個全等網路,這樣最終輸出結果應該不會與全等網路的輸入相差太多。基於這一理念,殘差網路被提出,整個網路的主體由殘差模組堆疊而成。每個殘差模組由兩個卷積層構成,卷積核尺寸為3x3。殘差模組的結構如下圖所示。
7. 其餘網路構型
- (1) Network in Network: 在每個卷積層之後加一個全連線層,構成MlpConv層。
- (2) ResNet的改進:改進殘差模組的結構。
- (3) ResNet加寬:增加每層的特徵數。
- (4) 隨機深度網路:也是針對殘差訓練,在訓練過程中隨機丟棄層。
- (5) 分形網路。
- (6) SqeezeNet:可大幅降低AlexNet的規模。