CNN入門——CNN各層功能解釋

   衆所周知,CNN是一種特殊的深層前饋網絡,CNN模型主要包含輸入層、卷積層、激勵函數、池化層、全連接層以及輸出層。接下來將爲大家細化分析每一層結構的作用。

卷積神經網絡經典模型圖
輸入層(INPUT):用於數據的輸入。
當輸入一張3232的jpg圖片的時候,輸入層能讀取到3232*3的矩陣,3是它的深度(即R、G、B)。

卷積層(CONV):使用卷積核進行特徵提取和特徵映射。
機器學習識別圖片的過程中,並不是一下子整張圖同時識別,而是對於圖片中的每一個特徵首先局部感知,然後更高層次對局部進行綜合操作,從而得到全局信息。左邊爲輸入層讀取數據,右邊通過卷積層提取特徵
激勵函數(RELU):由於卷積也是一種線性運算,因此需要增加非線性映射。
所謂激勵,實際上是對卷積層的輸出結果做一次非線性映射。
  如果不用激勵函數(其實就相當於激勵函數是f(x)=x),這種情況下,每一層的輸出都是上一層輸入的線性
函數。容易得出,無論有多少神經網絡層,輸出都是輸入的線性組合,與沒有隱層的效果是一樣的,這就是最原
始的感知機了。
常用的激勵函數有:

  • Sigmoid
  • Tanh
  • ReLU
  • Leaky ReLU
  • ELU
  • Maxout

激勵函數建議:首先ReLU,因爲迭代速度快,但是有可能效果不加。如果ReLU失效的情況下,考慮使用
Leaky ReLU或者Maxout,此時一般情況都可以解決。Tanh函數在文本和音頻處理有比較好的效果。
池化層(POOL):進行下采樣,對特徵圖稀疏處理,減少數據運算量。
池化,也稱爲欠採樣或下采樣。要用於特徵降維,壓縮數據和參數的數量,減小過擬合,同時提高模型的容錯性。
通過池化層,使得原本4*4的特徵圖壓縮成了2*2,從而降低了特徵維度
全連接層(FC):也稱它爲輸出層,用於輸出卷積計算後的結果。
經過前面若干次卷積+激勵+池化後,終於來到了輸出層,模型會將學到的一個高質量的特徵圖片全連接層。其實在全連接層之前,如果神經元數目過大,學習能力強,有可能出現過擬合。因此,可以引入dropout操作,來隨機刪除神經網絡中的部分神經元,來解決此問題。還可以進行局部歸一化(LRN)、數據增強等操作,來增加魯棒性。
結果輸出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章