卷積神經網路 全連線層

2021-09-19 01:34:01 字數 1607 閱讀 7223

全連線層

全連線層與卷積層

全連線層與gap(全域性平均池化層)

[1]

[2]

[3]

全連線層一般會把卷積輸出的二維特徵圖轉化為一維的乙個向量,全連線層的每乙個節點都與上一層的每個節點連線,是把前一層的輸出特徵都綜合起來,所以該層的權值引數是最多的。

作用

全連線網路的作用就是將最後一層卷積得到的feature map stretch成向量,對這個向量做乘法,最終降低其維度,然後輸入到softmax層中得到對應的每個類別的得分。

實現

以下圖為例:

最後的兩列小圓球就是兩個全連線層

在經過若干卷積核池化之後,會輸出20個12x12的矩陣,這代表用了20個神經元,每個神經元都對這張圖進行了一次次卷積,並且每個神經元最後輸出的12x12的矩陣都代表了這個神經元對該的乙個特徵的理解

接下來到了全連線層,輸出乙個1x100的矩陣,其實就是有100個20x12x12的卷積核卷積出來的,對於輸入的每一張圖,用了乙個和影象一樣大小尺寸的核卷積,這樣整幅圖就變成了乙個數,因為厚度是20,所以對20個核卷積完了之後再相加求和得到乙個數,一共是100個卷積核,所以得到100個數。每個數代表乙個高度提純的特徵

最後在經過乙個分類器(也是乙個全連線層)對這些特徵再進行一次計算(降維),將其中的某幾個特徵進行組合,得到屬於各個類別的概率。

缺點

引數量過大,特別是與最有乙個卷積層(池化層)相連的全連線層,如圖就需要 100 * 20 * 12 * 12個引數。引數量過大會導致訓練速度降低,容易過擬合。

全連線層實際上就是卷積核大小為上層特徵大小的卷積運算,卷積的結果為乙個節點,就對應全連線層的乙個點。

從上面的分析已經看可以看出:

最後一層的卷積層(池化層)的輸出為20x12x12,連線此層的卷積層為1x1x100

將全連線層轉為卷積層就是:

共有100組濾波器

每組濾波器含有20個卷積核

每個卷積核大小為12x12

則輸出為1x1x100

全連線層的作用就是將卷積層展開成向量之後對每個feature map進行分類,gap就是將上述的兩個過程合二為一。如下圖所示。

主要思想

用 feature map 直接表示屬於某個類的 confidence map,比如有10個類,就在最後輸出10個 feature map,每個feature map中的值加起來求平均值,這十個數字就是對應的概率或者叫置信度。然後把得到的這些平均值直接作為屬於某個類別的 confidence value,再輸入softmax中進行分類。

優點

減少參數量

對整個網路從結構上做正則化防止過擬合

可以實現任意影象大小的輸入

缺點

造成收斂速度減慢

卷積神經網路中的 「全連線層」

對 n 1 層和 n 層而言,n 1 層的任意乙個節點,都和第 n 層所有節點有連線 即第n層節點都和第n 1層節點相連線 即第n層的每個節點在進行計算的時候,啟用函式的輸入是n 1層所有節點的加權。像下面的中間層就是全連線方式 以上圖為例,我們仔細看上圖全連線層的結構,全連線層中的每一層是由許多神...

pytorch神經網路之卷積層與全連線層引數的設定

當使用pytorch寫網路結構的時候,本人發現在卷積層與第乙個全連線層的全連線層的input features不知道該寫多少?一開始本人的做法是對著pytorch官網的公式推,但是總是算錯。後來發現,寫完卷積層後可以根據模擬神經網路的前向傳播得出這個。全連線層的input features是多少。首...

卷積神經網路全連線層轉換為卷積層獲得heatmap

全連線層換卷積層的出處大約是yahoo的一篇 multi view face detection using deep convolutional neural networks 使用 alexnet 為基礎 fine tuning 後的網路作為人臉分類器,在檢測時將網路中的全連線層改為卷積層,獲得...