經典卷積神經網路結構——LeNet-5、AlexNet、VGG-16

wuliytTaotao發表於2018-08-28

  經典卷積神經網路的結構一般滿足如下表示式:

輸出層 -> (卷積層+ -> 池化層?)+  -> 全連線層+

上述公式中,“+”表示一個或者多個,“?”表示一個或者零個,如“卷積層+”表示一個或者多個卷積層,“池化層?”表示一個或者零個池化層。“->”表示 forward 方向。

  下面將分別介紹 LeNet-5AlexNetVGG-16 結構。

  

1. LeNet-5(modern)

圖 1  LeNet-5

1.1 LeNet-5 結構:

  • 輸入層

圖片大小為 32×32×1,其中 1 表示為黑白影象,只有一個 channel。

  • 卷積層

filter 大小 5×5,filter 深度(個數)為 6,padding 為 0, 卷積步長 $s=1$,輸出矩陣大小為 28×28×6,其中 6 表示 filter 的個數。

  • 池化層

average pooling,filter 大小 2×2(即 $f=2$),步長 $s=2$,no padding,輸出矩陣大小為 14×14×6。

  • 卷積層

filter 大小 5×5,filter 個數為 16,padding 為 0, 卷積步長 $s=1$,輸出矩陣大小為 10×10×16,其中 16 表示 filter 的個數。

  • 池化層

average pooling,filter 大小 2×2(即 $f=2$),步長 $s=2$,no padding,輸出矩陣大小為 5×5×16。注意,在該層結束,需要將 5×5×16 的矩陣flatten 成一個 400 維的向量。

  • 全連線層(Fully Connected layer,FC)

neuron 數量為 120。

  • 全連線層(Fully Connected layer,FC)

neuron 數量為 84。

  • 全連線層,輸出層

現在版本的 LeNet-5 輸出層一般會採用 softmax 啟用函式,在 LeNet-5 提出的論文中使用的啟用函式不是 softmax,但其現在不常用。該層神經元數量為 10,代表 0~9 十個數字類別。(圖 1 其實少畫了一個表示全連線層的方框,而直接用 $\hat{y}$ 表示輸出層。)

 

1.2 LeNet-5 一些性質:

  • 如果輸入層不算神經網路的層數,那麼 LeNet-5 是一個 7 層的網路。(有些地方也可能把 卷積和池化 當作一個 layer)(LeNet-5 名字中的“5”也可以理解為整個網路中含可訓練引數的層數為 5。)
  • LeNet-5 大約有 60,000 個引數。
  • 隨著網路越來越深,影象的高度和寬度在縮小,與此同時,影象的 channel 數量一直在增加。
  • 現在常用的 LeNet-5 結構和 Yann LeCun 教授在 1998 年論文中提出的結構在某些地方有區別,比如啟用函式的使用,現在一般使用 ReLU 作為啟用函式,輸出層一般選擇 softmax。

 

2. AlexNet

圖 2  AlexNet

2.1 AlexNet 結構:

  • 輸入層:影象大小為 227×227×3,其中 3 表示輸入影象的 channel 數(R,G,B)為 3。
  • 卷積層:filter 大小 11×11,filter 個數 96,卷積步長 $s = 4$。(filter 大小隻列出了寬和高,filter矩陣的 channel 數和輸入圖片的 channel 數一樣,在這裡沒有列出)
  • 池化層:max pooling,filter 大小 3×3,步長 $s = 2$。
  • 卷積層:filter 大小 5×5,filter 個數 256,步長 $s = 1$,padding 使用 same convolution,即使得卷積層輸出影象和輸入影象在寬和高上保持不變。
  • 池化層:max pooling,filter 大小 3×3,步長 $s = 2$。
  • 卷積層:filter 大小 3×3,filter 個數 384,步長 $s = 1$,padding 使用 same convolution。
  • 卷積層:filter 大小 3×3,filter 個數 384,步長 $s = 1$,padding 使用 same convolution。
  • 卷積層:filter 大小 3×3,filter 個數 256,步長 $s = 1$,padding 使用 same convolution。
  • 池化層:max pooling,filter 大小 3×3,步長 $s = 2$;池化操作結束後,將大小為  6×6×256 的輸出矩陣 flatten 成一個 9216 維的向量。
  • 全連線層:neuron 數量為 4096。
  • 全連線層:neuron 數量為 4096。
  • 全連線層,輸出層:softmax 啟用函式,neuron 數量為 1000,代表 1000 個類別。

 

2.2 AlexNet 一些性質:

  • 大約 60million 個引數;
  • 使用 ReLU 作為啟用函式。

 

3. VGG-16

圖 3  VGG-16

3.1 VGG-16 結構:

  • 輸入層
  • 卷積層
  • 卷積層
  • 池化層
  • 卷積層
  • 卷積層
  • 池化層
  • 卷積層
  • 卷積層
  • 卷積層
  • 池化層
  • 卷積層
  • 卷積層
  • 卷積層
  • 池化層
  • 卷積層
  • 卷積層
  • 卷積層
  • 池化層
  • 全連線層
  • 全連線層
  • 全連線層,輸出層

 

3.2 VGG-16 一些性質:

  • VGG-16 中的 16 表示整個網路中有 trainable 引數的層數為 16 層。(trainable 引數指的是可以通過 back-propagation 更新的引數)
  • VGG-16 大約有 138million 個引數。
  • VGG-16 中所有卷積層 filter 寬和高都是 3,步長為 1,padding 都使用 same convolution;所有池化層的 filter 寬和高都是 2,步長都是 2。

 

References

Course 4 Convolutional Neural Networks by Anderw Ng

《TensorFLow實戰Google深度學習框架》

 

相關文章