深度學習筆記——全連接層

1.概觀

卷積取的是局部特徵,全連接就是把以前的局部特徵重新通過權值矩陣組裝成完整的圖。因爲用到了所有的局部特徵,所以叫全連接。

全連接層(fully connected layers,FC)在整個卷積神經網絡中起到“分類器”的作用。如果說卷積層、池化層和激活函數層等操作是將原始數據映射到隱層特徵空間的話,全連接層則起到將學到的“分佈式特徵表示”映射到樣本標記空間的作用。

 

2.全連接層的理解

——————————以下爲個人看法,如果有錯,歡迎錘正!——————————

假設我們現在的任務是去區別一圖片是不是貓、

假設這個神經網絡模型已經訓練到此階段,如圖:

 

 

經過卷積,池化,激活等層,現已提取了上圖所示的局部特徵,且已到達了第一層全連接層並激活符合特徵存在的部分神經元,該連接層是一維的,而這個層的作用就是根據提取到的局部特徵進行相關操作進行組合並輸出到第二個全連接層的某個神經元處,如上圖,經過組合我們可以知道這是個喵頭。

那我們現在往後走一層,到第二層全連接層,假設貓的身體其他部位特徵也都被上述類似的操作提取和組合出來,得

當我們找到這些特徵,神經元就被激活了(上圖紅色圓圈)

此時,再將上圖中的特徵進行組合並輸出到輸出層,經過softmax函數進行分類,得出結論,這是隻貓。

至此,關於全連接層的信息就簡單介紹完了

 

3.全連接層和其他層,全連接層與全連接層之間的換算

以上圖爲例,我們仔細看上圖全連接層的結構,全連接層中的每一層是由許多神經元組成的(1x 4096)的平鋪結構,上圖不明顯,我們看下圖

 

當我第一次看到這個全連接層,我的第一個問題是

它是怎麼樣把3x3x5的輸出,轉換成1x4096的形式

 

 

很簡單,可以理解爲在中間做了一個卷積

 

 

從上圖我們可以看出,我們用一個3x3x5的filter 去卷積激活函數的輸出,得到的結果就是一個fully connected layer 的一個神經元的輸出,這個輸出就是一個值

因爲我們有4096個神經元

我們實際就是用一個3x3x5x4096的卷積層去卷積激活函數的輸出

 

這一步卷積一個非常重要的作用,就是把分佈式特徵representation映射到樣本標記空間

就是它把特徵representation整合到一起,輸出爲一個值。這樣做,有一個什麼好處?

就是大大減少特徵位置對分類帶來的影響

來,讓我來舉個簡單的例子

 

 

這個例子可能過於簡單了點

可是我懶得畫了,大家將就着看吧

從上圖我們可以看出,貓在不同的位置,輸出的feature值相同,但是位置不同

對於電腦來說,特徵值相同,但是特徵值位置不同,那分類結果也可能不一樣

而這時全連接層filter的作用就相當於,喵在哪我不管,我只要喵

於是我讓filter去把這個喵找到

實際就是把feature map 整合成一個值

這個值大

哦,有喵

這個值小

那就可能沒喵

和這個喵在哪關係不大了有沒有

魯棒性有大大增強了有沒有

因爲空間結構特性被忽略了,所以全連接層不適合用於在方位上找Pattern的任務,比如segmentation

 

ok, 我們發現全連接層有兩層1x4096fully connected layer平鋪結構(有些網絡結構有一層的,或者二層以上的)

 

但是大部分是兩層以上呢

這是爲啥子呢

泰勒公式都知道吧

意思就是用多項式函數去擬合光滑函數

我們這裏的全連接層中一層的一個神經元就可以看成一個多項式

我們用許多神經元去擬合數據分佈

但是隻用一層fully connected layer 有時候沒法解決非線性問題

而如果有兩層或以上fully connected layer就可以很好地解決非線性問題了

 

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