經典卷積神經網絡結構——LeNet-五、AlexNet、VGG-16

  經典卷積神經網絡的結構通常知足以下表達式:網絡

輸出層 -> (卷積層+ -> 池化層?)+  -> 全鏈接層+框架

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

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

  

1. LeNet-5(modern)

圖 1  LeNet-5spa

1.1 LeNet-5 結構:

  • 輸入層

圖片大小爲 32×32×1,其中 1 表示爲黑白圖像,只有一個 channel。blog

  • 卷積層

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。ci

  • 卷積層

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

  • 池化層

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深度學習框架》

相關文章
相關標籤/搜索