天天看點

Convolutional Neural Networks(CNN) 有關概念

在淺層神經網絡中,我們一般采用fully connected layer(全連接配接層)進行層和層的連接配接。

即 Output=f(Wx+b) ,其中 f 是一個非線性函數。

從上面的表達式中,我們可以看出,這層的任何一個輸出神經元都和全部的輸入神經元相連。

随着網絡的加深,如何加快訓練速度變成了一個很現實的問題。我們采取了一種方法:CNNs來顯著減少參數個數,進而加快了訓練速度。

CNNs基于如下從認知心理學得到的一個現象:

人識别圖像的,對資訊進行最初級加工的神經元的任務是感覺圖像的一個局部是否有一個邊緣(Edge)。

這句話裡面值得借鑒的點是:“局部”。

在CNN中,局部被展現在了兩個方面。

1.一個輸出神經元不必和所有輸入神經元相連:連接配接局部性

2. 連接配接到同一個輸出神經元的輸入神經元要在同一個局部:位置局部性。

于是就有如下的卷積函數。

yij=fks({xsi+di;sj+dj}0≤di,dj<k;Wks)

其中

xij 表示位于(i,j)處的輸入

yij 表示位于(i,j)處的輸出

s 表示跨度(stride)

Wks表示函數 fks 的參數

k (kernel size)表征感受野(receptive field)的大小(k×k)

感受野就是連接配接到特定輸出神經元的輸入神經元的統稱。

從上面的式子可以看出,相鄰的兩個輸出神經元對應的感受野的間隔為s,每一個輸出神經元的感受野的大小為k

更需要指出的是, fks 和 i,j 無關,也就是對于不同的輸出神經元,他們用的卷積函數是完全一樣的,也就是對于不同的輸出神經元,我們都同時用同一種參數。

總結一下,CNN減少參數的手段:

1. 連接配接局部性,一個輸出神經元不用和所有的輸入神經元相連

2. 空間局部性,與一個輸出神經元連接配接的輸入神經元空間位置上相鄰

3. 參數一緻性,所有的輸出神經元共享同一套參數。

繼續閱讀