1. 程式人生 > >CNN的層級結構

CNN的層級結構

adding 固定 數據窗 深度學習 layer bubuko 依次 現象 壓縮

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的層級結構