CNN的層級結構
CNN的層級結構
1、CNN的層級結構包括:
數據輸入層/ Input layer
卷積計算層/ CONV layer
ReLU激勵層 / ReLU layer
池化層 / Pooling layer
全連接層 / FC layer
Batch Normalization層(可能有)
2、一般 CNN 結構依次為:
INPUT
[[CONVà RELU]*N àPOOL]*M
[FC àRELU]*K
FC
數據輸入層/ Input layer
有3種常見的數據處理方式:
1)去均值
2)把輸入數據各個維度都中心化到0
3)歸一化
幅度歸一化到同樣的範圍
4)PCA/白化
用PCA降維
白化是對數據每個特征軸上的幅度歸一化
卷積層
1)涉及概念:
深度(depth) : 顧名思義,它控制輸出單元的深度,也就是filter的個數,連接同一塊區域的神經元個數。
步幅(stride):它控制在同一深度的相鄰兩個隱含單元,與他們相連接的輸入區域的距離。如果步幅很小(比如 stride = 1)的話,相鄰隱含單元的輸入區域的重疊部分會很多; 步幅很大則重疊區域變少。
補零(zero-padding) : 我們可以通過在輸入單元周圍補零來改變輸入單元整體大小,從而控制輸出單元的空間大小。
2)參數共享機制
- 每個卷積核連接數據窗的權重是固定的,這樣需要估算的權重個數減少
- 可以把卷積核看做模板,每個卷積核只關註一個特性
- 一組固定的權重和不同窗口內數據做內積: 卷積
激勵層
激勵層的作用是把卷積層輸出結果做非線性映射
實際經驗
①?CNN盡量不要用sigmoid
②?首先試RELU,因為快,但要小心點
③?如果2失效,請用Leaky ReLU
④?某些情況下tanh倒是有不錯的結果,但是很少
池化層
夾在連續的卷積層中間
壓縮數據和參數的量,減小過擬合
類別:
Max pooling
average pooling
全連接層
兩層之間所有神經元都有權重連接
通常全連接層在卷積神經網絡尾部
批規範化(Batch normalization)
批規範化(Batch normalization)是深度學習中經常見到的一種訓練trick,指在采用梯度下降法訓練DNN時,對網絡層中每個mini-batch的數據進行歸一化,使其均值變為0,方差變為1,其主要作用是緩解DNN訓練中的梯度消失/爆炸現象,加快模型的訓練速度。
CNN的層級結構