卷積神經網路(CNN)學習筆記2:舉例理解
阿新 • • 發佈:2019-01-05
下圖是一個經典的CNN結構,稱為LeNet-5網路
可以看出,CNN中主要有兩種型別的網路層,分別是卷積層和池化(Pooling)/取樣層(Subsampling)。卷積層的作用是提取影象的各種特徵;池化層的作用是對原始特徵訊號進行抽象,從而大幅度減少訓練引數,另外還可以減輕模型過擬合的程度。
卷積層
卷積層是卷積核在上一級輸入層上通過逐一滑動視窗計算而得,卷積核中的每一個引數都相當於傳統神經網路中的權值引數,與對應的區域性畫素相連線,將卷積核的各個引數與對應的區域性畫素值相乘之和,(通常還要再加上一個偏置引數),得到卷積層上的結果。如下圖所示。
下面的動圖能夠更好地解釋卷積過程:
池化/取樣層
通過卷積層獲得了影象的特徵之後,理論上我們可以直接使用這些特徵訓練分類器(如softmax),但是這樣做將面臨巨大的計算量的挑戰,而且容易產生過擬合的現象。為了進一步降低網路訓練引數及模型的過擬合程度,我們對卷積層進行池化/取樣(Pooling)處理。池化/取樣的方式通常有以下兩種:
- Max-Pooling: 選擇Pooling視窗中的最大值作為取樣值;
- Mean-Pooling: 將Pooling視窗中的所有值相加取平均,以平均值作為取樣值;
如下圖所示。
LeNet-5網路詳解
以上較詳細地介紹了CNN的網路結構和基本原理,下面介紹一個經典的CNN模型:LeNet-5網路
。
其中原始輸入圖為32*32,卷積核為5*5,則可得C1層的特徵圖大小為(32-5+1)*(32-5+1)=28*28