全連接層(FC)與全局平均池化層(GAP)


在卷積神經網絡的最后,往往會出現一兩層全連接層,全連接一般會把卷積輸出的二維特征圖轉化成一維的一個向量,全連接層的每一個節點都與上一層每個節點連接,是把前一層的輸出特征都綜合起來,所以該層的權值參數是最多的。例如在VGG16中,第一個全連接層FC1有4096個節點,上一層POOL2是7*7*512 = 25088個節點,則該傳輸需要4096*25088個權值,需要耗很大的內存。又如下圖:

最后的兩列小圓球就是兩個全連接層,在最后一層卷積結束后,進行了最后一次池化,輸出了20個12*12的圖像,然后通過了一個全連接層變成了1*100的向量。

這是怎么做到的呢,其實就是有20*100個12*12的卷積核卷積出來的,對於輸入的每一張圖,用了一個和圖像一樣大小的核卷積,這樣整幅圖就變成了一個數了,如果厚度是20就是那20個核卷積完了之后相加求和。這樣就能把一張圖高度濃縮成一個數了。

全連接的目的是什么呢?因為傳統的網絡我們的輸出都是分類,也就是幾個類別的概率甚至就是一個數--類別號,那么全連接層就是高度提純的特征了,方便交給最后的分類器或者回歸。

但是全連接的參數實在是太多了,你想這張圖里就有20*12*12*100個參數,前面隨便一層卷積,假設卷積核是7*7的,厚度是64,那也才7*7*64,所以現在的趨勢是盡量避免全連接,近期的大部分論文FC多用全局平均池化層(GAP,Global Average Pooling)的方法代替。后者的思想就是:用 feature map 直接表示屬於某個類的 confidence map,比如有10個類,就在最后輸出10個 feature map,每個feature map中的值加起來求平均值,這十個數字就是對應的概率或者叫置信度。然后把得到的這些平均值直接作為屬於某個類別的 confidence value,再輸入softmax中分類, 更重要的是實驗效果並不比用 FC 差。

后者的優勢是:1.因為FC的參數眾多,這么做就減少了參數的數量(在最近比較火的模型壓縮中,這個優勢可以很好的壓縮模型的大小)。2.因為減少了參數的數量,可以很好的減輕過擬合的發生。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM