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


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

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

上述公式中,“+”表示一個或者多個,“?”表示一個或者零個,如“卷積層+”表示一個或者多個卷積層,“池化層?”表示一個或者零個池化層。“->”表示 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 是一個 5 層的網絡。(把 卷積和池化 當作一個 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深度學習框架》

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM