「全連接層 (Fully Connected Layer)」是傳統神經網路和卷積神經網路 (CNN) 中常見的一種層類型。在全連接層中,每個神經元都與前一層的所有神經元相連接。
你可以將全連接層想像成一個將前面提取到的所有特徵信息「匯總」起來,並進行最終的分類或預測的階段。
全連接層的工作原理:- 輸入: 全連接層的輸入通常是前一層(可能是另一個全連接層,或者在 CNN 中,通常是經過多個卷積層和池化層處理後展平的特徵圖)。如果前一層的輸出是多維的(例如 CNN 中的特徵圖),則需要先將其展平成一個一維向量,然後再輸入到全連接層。
- 權重和偏置 (Weights and Biases): 每個連接都帶有一個可以學習的權重。此外,每個神經元通常還會關聯一個可以學習的偏置項。
- 線性組合 (Linear Combination): 對於全連接層中的每個神經元,它會接收來自前一層所有神經元的輸出,並對這些輸出進行加權求和(將每個輸入乘以其對應的權重),然後加上自身的偏置。
- 激活函數 (Activation Function): 線性組合的結果通常會被傳遞給一個非線性激活函數(例如 ReLU, Sigmoid, Tanh 等)。激活函數的引入使得神經網路能夠學習和表示非線性關係。
- 輸出: 全連接層的輸出是一個向量,向量中的每個元素代表一個神經元的激活值。在 CNN 的最後一層全連接層(通常稱為輸出層)中,激活函數的選擇通常取決於具體的任務:
- 分類任務 (Classification): 通常使用 Softmax 激活函數,將輸出轉換為各個類別的概率分布。 二元分類任務 (Binary Classification): 通常使用 Sigmoid 激活函數,輸出一個介於 0 和 1 之間的概率值。 回歸任務 (Regression): 通常不使用激活函數,或者使用線性激活函數。
全連接層在 CNN 中的作用:
在卷積神經網路中,全連接層通常放在卷積層和池化層的堆疊之後,作為最終的分類器或回歸器。
- 特徵匯總: 卷積層和池化層負責提取圖像中的局部和全局特徵。全連接層則將這些學習到的特徵組合起來,進行最終的決策。
- 分類決策: 輸出層的全連接層會根據前幾層提取到的特徵,計算出輸入圖像屬於每個類別的概率。
與卷積層的區別:
- 連接方式: 卷積層是局部連接和權重共享的,而全連接層是每個神經元都與前一層的所有神經元連接。
- 參數數量: 全連接層通常包含大量的參數,尤其是在輸入維度很高的時候。這可能會導致過擬合的問題,特別是在訓練數據不足的情況下。
- 空間信息: 卷積層能夠更好地保留輸入數據的空間結構信息,而全連接層在將多維輸入展平成一維向量的過程中,可能會丟失一些空間信息。
總之,全連接層在神經網路中扮演著重要的角色,它可以將前面層提取到的特徵進行綜合分析,並用於最終的分類或預測任務。在卷積神經網路中,它通常是模型結構的最後部分。