CNN-卷積神經網路簡單入門(2)

前進的小蝸牛發表於2022-02-06

       在上篇中,對卷積神經網路的卷積層以及池化層模組進行了簡單的介紹,接下來將對卷積神經網路的整個運作流程進行分析,以便對CNN有個總體上的認知和掌握。

       如下圖,卷積神經網路要完成對圖片數字的識別任務。網路的輸入是數字為7的RGB圖片,大小為32×32×3,其中32×32為圖片的畫素大小,3表示圖片的紅、綠、藍三個通道。圖中示例的卷積神經網路共有7層(不包括輸入層):第一層卷積層Conv 1,第二層池化層Pool 2,第三層卷積層Conv 3,第四層池化層Pool 4,第五層全連線層FC 5,第六層全連線層FC 6,第7層全連線層也是網路的輸出層FC 7。

       需要說明的是,圖示網路模型只是卷積神經網路的一種結構,並不是唯一結構,卷積層、池化層、全連線層的數量可根據實際情況設定。

(1)Conv 1

  一個5×5×3的卷積核和表示圖片的32×32×3的資料矩陣卷積得到一個28×28×1的feature map,如下圖所示。

       

   一個卷積核卷積得到一個feature map,當有6個卷積核時,卷積得到的特徵圖大小變為28×28×6。

CNN-卷積神經網路簡單入門(2)

  引數量:一個卷積核權值引數個數5×5×3=75,偏置引數1個,75+1=76個。一共有6個卷積核,故該層待訓練總引數個數:(5×5×3+1)×6=456。

  在該層中,表示圖片所有畫素點顏色深淺的32×32×3的三維資料矩陣經過和6個5×5×3的卷積核進行卷積後得到28×28×6的特徵圖,再經過非線性函式啟用即得到Conv 1層的輸出。輸出特徵圖的通道數和卷積核的數量一樣。

(2)Pool 2

  匯聚視窗大小為2×2,步幅為2,經過最大池化後,得到14×14×6的特徵圖。輸入特徵圖大小為28×28×6,通道數是6,池化層不會改變特徵圖的通道數,即輸出特徵圖的通道數和輸入特徵圖的通道數一樣。池化層沒有待訓練引數。池化層未使用非線性啟用函式。

(3)Conv 3

  卷積核大小5×5×6,數量是16,步幅s=1,輸出特徵圖大小為(14-5+1)×(14-5+1)×16=10×10×16。輸入特徵圖經過卷積操作還得經過非線性函式的啟用後才能得到Conv 3層的輸出。

  引數量:(5×5×6+1)×16=2416。

(4)Pool 4

  匯聚視窗大小為2×2,步幅為2,經過最大池化後,得到5×5×16的特徵圖。要注意的是,當前層的輸出不是一維向量,是無法直接連線下一層的全連線層的。因此,經過池化得到的輸出特徵圖還要經過flatten操作變為400×1的向量後,才能作為全連線層的輸入。

(5)FC 5

     該層有120個神經元。

  引數量:400×120+120=48120。

(6)FC 6

  該層有84個神經元。

  引數量:120×84+84=10164。

(7)FC 7(Output)

  網路的輸出層,有10個神經元,使用SoftMax啟用函式,神經元節點輸出值對應10個數字的概率大小。

  引數量:84×10+10=850。

 

       當網路得到10個數字的概率以後,取概率最大的那個數字即為本次神經網路的圖片數字識別結果啦~

相關文章