全連線層的作用解析

CtrlZ1發表於2020-12-17

作者:魏秀參
連結:https://www.zhihu.com/question/41037974/answer/150522307
來源:知乎

全連線層到底什麼用?我來談三點。

  • 全連線層(fully connected layers,FC)在整個卷積神經網路中起到“分類器”的作用。如果說卷積層、池化層和啟用函式層等操作是將原始資料對映到隱層特徵空間的話,全連線層則起到將學到的“分散式特徵表示”對映到樣本標記空間的作用。在實際使用中,全連線層可由卷積操作實現:對前層是全連線的全連線層可以轉化為卷積核為1x1的卷積;而前層是卷積層的全連線層可以轉化為卷積核為hxw的全域性卷積,h和w分別為前層卷積結果的高和寬(注1)。
  • 目前由於全連線層引數冗餘(僅全連線層引數就可佔整個網路引數80%左右),近期一些效能優異的網路模型如ResNet和GoogLeNet等均用全域性平均池化(global average pooling,GAP)取代FC來融合學到的深度特徵,最後仍用softmax等損失函式作為網路目標函式來指導學習過程。需要指出的是,用GAP替代FC的網路通常有較好的預測效能。具體案例可參見我們在ECCV'16(視訊)表象性格分析競賽中獲得冠軍的做法:「冠軍之道」Apparent Personality Analysis競賽經驗分享 - 知乎專欄 ,project:Deep Bimodal Regression for Apparent Personality Analysis
  • 在FC越來越不被看好的當下,我們近期的研究(In Defense of Fully Connected Layers in Visual Representation Transfer)發現,FC可在模型表示能力遷移過程中充當“防火牆”的作用。具體來講,假設在ImageNet上預訓練得到的模型為 ,則ImageNet可視為源域(遷移學習中的source domain)。微調(fine tuning)是深度學習領域最常用的遷移學習技術。針對微調,若目標域(target domain)中的影像與源域中影像差異巨大(如相比ImageNet,目標域影像不是物體為中心的影像,而是風景照,見下圖),不含FC的網路微調後的結果要差於含FC的網路。因此FC可視作模型表示能力的“防火牆”,特別是在源域與目標域差異較大的情況下,FC可保持較大的模型capacity從而保證模型表示能力的遷移。(冗餘的引數並不一無是處。)

注1: 有關卷積操作“實現”全連線層,有必要多囉嗦幾句。

以VGG-16為例,對224x224x3的輸入,最後一層卷積可得輸出為7x7x512,如後層是一層含4096個神經元的FC,則可用卷積核為7x7x512x4096的全域性卷積來實現這一全連線運算過程,其中該卷積核引數如下:

“filter size = 7, padding = 0, stride = 1, D_in = 512, D_out = 4096”

經過此卷積操作後可得輸出為1x1x4096。

如需再次疊加一個2048的FC,則可設定引數為“filter size = 1, padding = 0, stride = 1, D_in = 4096, D_out = 2048”的卷積層操作。

相關文章