1. 程式人生 > >卷積神經網路(CNN)中全連線層(FC layer)的作用

卷積神經網路(CNN)中全連線層(FC layer)的作用

前言

一般來說,卷積神經網路會有三種類型的隱藏層——卷積層、池化層、全連線層。卷積層和池化層比較好理解,主要很多教程也會解釋。

  • 卷積層(Convolutional layer)主要是用一個取樣器從輸入資料中採集關鍵資料內容;
  • 池化層(Pooling layer)則是對卷積層結果的壓縮得到更加重要的特徵,同時還能有效控制過擬合。

但是可憐的全連線層(Fully Connected layer)很多時候都被忽略了,可能大佬們覺得我們都能懂吧。。查閱了一下資料,大概理解了全連線層的作用,即將前面經過多次卷積後高度抽象化的特徵進行整合,然後可以進行歸一化,對各種分類情況都輸出一個概率,之後的分類器(Classifier)可以根據全連線得到的概率進行分類。
這是我理解過後的總結,如有不當之後也敬請指正。當然結合了國內外很多篇文章才最終大概理解了全連線層的作用。最近又沉迷翻譯,這篇文章就準備翻譯下stackexchange裡面關於CNN中FC layer的作用。
水平有限,歡迎各位指正。

原文連結

卷積神經網路中全連線層作用(What do the fully connected layers do in CNNs?)

Question:我理解了卷積層和池化層的作用,但是我不能理解卷積神經網路中全連線層的作用。為什麼不能將前一層直接輸出到輸出層呢?

Answer:卷積層的輸出代表著資料的高階特徵。當輸出可以被扁平化並且能夠被連線到輸出層時,新增一個全連線層通常能以簡易的方式學習到這些非線性組合特徵。
實質上,卷積層提供了一個有意義、低維度且幾乎不變的特徵空間,然後全連線層在這個空間裡學習一個(非線性)方程。
注:從全連線層轉換為卷積層是很方便的。將這些頂層全連線層轉換為卷積層是很有幫助的。

Q:所以我們通過反向傳播來學習連線層之間的權重,這是否正確?

A:是的,錯誤通過反向傳播從全連線層傳播到卷積層和池化層。

Q:所以,全連線層的目的就是就像PCA(主成分分析),它通過學習全部的權重來整合了“好”的特徵並減少其他特徵。

A:這主要取決於你特徵的非線性組合。所有的特徵都可能是好的(假設你沒有死掉的特徵),那麼這些特徵的組合就可能更好。