1. 程式人生 > >CS231n-2017 第9講 卷積神經網路的各種架構

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

圖 1. LeNet結構

2. AlexNet: Krizhevsky et al., 2012, 8層

該網路將ImageNet影象分類的錯誤率降低到了16.4%,以此贏得了當年的ILSVRC競賽。其結構為:

Conv1 — Max Pool1 — Norm1 — Conv2 — Max Pool2 — Norm2 — Conv3 — Conv4 — Conv5 — Max Pool3 — FC6 — FC7 — FC8

圖 2. AlexNet結構

各層的具體引數如下:

圖 3. AlexNet各層引數

該網路的一些特徵:

  • 首次使用ReLU啟用函式。
  • 充分使用資料增強技術。
  • Dropout概率設定為0.5
  • 隨機梯度下降方法的動量係數設定為0.9
  • 學習速率設定為0.01,當驗證精度(val accuracy)變化緩慢時,將學習速率衰減10倍。
  • 使用L2正則化,係數為 5
    × 1 0 4 5\times10^{-4}

3. ZFNet
: Zeiler and Fergus, 2013, 8層

AlexNetConv1層的卷積核尺寸由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的卷積核時,所需引數個數為 7 2 × C 7^2\times C ;使用3x3的卷積核時,所需引數個數為 3 2 × C × 3 3^2\times C\times 3

該網路將ImageNet的影象分類錯誤率降低為7.3%

5. GoogleNet: Szegedy et al., 2014, 22層

網路特點:去除全連線層,使得引數個數大幅度下降;構建Inception模組,網路的主要結構由Inception模組堆疊而成。Inception模組如下圖所示:

圖 5. Inception模組結構

該模組把通過不同卷積核所獲取的特徵,沿特徵深度方向連線起來(即一個特徵的維度為各個卷積核輸出的特徵維度的和)。這會導致特徵的維度逐漸增長。針對這一問題,學者又引入了BottleNeck層,該層用1x1的卷積核將特徵深度降低。BottleNeck層結構如下:

圖 6. BottleNeck層結構

GoogleNet還在某些中間層,添加了額外的分類分支,這樣使得訓練網路時,這些分支分類器也會產生相應的梯度流。其理念是:網路中間層的資訊對網路效能有影響,若將中間的資訊計入優化目標,可能會提升網路效能;保持整個網路的資訊流在一個正確的方向上,(如果分支分類器的損失太大,則意味著網路的資訊流正在偏離正確方向)。

6. ResNet: He et al., 2015, 152層

ResNet網路的提出源於一個針對當時已有的網路的效能的觀察:更深的網路的效能反而比不上層數合適的網路。為了使更深的網路的效能起碼不能差於較淺的網路,考慮從某層開始,訓練一個全等網路,這樣最終輸出結果應該不會與全等網路的輸入相差太多。基於這一理念,殘差網路被提出,整個網路的主體由殘差模組堆疊而成。每個殘差模組由兩個卷積層構成,卷積核尺寸為3x3。殘差模組的結構如下圖所示。

圖 7. 殘差模組

7. 其餘網路構型

  • (1) Network in Network: 在每個卷積層之後加一個全連線層,構成MlpConv層。
  • (2) ResNet的改進:改進殘差模組的結構。
  • (3) ResNet加寬:增加每層的特徵數。
  • (4) 隨機深度網路:也是針對殘差訓練,在訓練過程中隨機丟棄層。
  • (5) 分形網路。
  • (6) SqeezeNet:可大幅降低AlexNet的規模。