全連接層的作用是什么?-全連接層(fullyconnectedlayers

全連接層到底什么用?我來談三點。

  • 全連接層(fullyconnectedlayers,FC)在整個卷積神經網路中起到“分類器”的作用。如果說卷積層、池化層和激活函數層等操作是將原始數據映射到隱層特征空間的話,全連接層則起到將學到的“分布式特征表示”映射到樣本標記空間的作用。在實際使用中,全連接層可由卷積操作實現:對前層是全連接的全連接層可以轉化為卷積核為1×1的卷積;而前層是卷積層的全連接層可以轉化為卷積核為hxw的全局卷積,h和w分別為前層卷積結果的高和寬(注1)。
  • 目前由于全連接層參數冗余(僅全連接層參數就可占整個網路參數80%左右),近期一些性能優異的網路模型如ResNet和GoogLeNet等均用全局平均池化(globalaveragepooling,GAP)取代FC來融合學到的深度特征,最后仍用softmax等損失函數作為網路目標函數來指導學習過程。需要指出的是,用GAP替代FC的網路通常有較好的預測性能。具體案例可參見我們在ECCV’16(視訊)表象性格分析競賽中獲得冠軍的做法:「冠軍之道」ApparentPersonalityAnalysis競賽經驗分享-今日熱點專欄,project:DeepBimodalRegressionforApparentPersonalityAnalysis
  • 在FC越來越不被看好的當下,我們近期的研究(InDefenseofFullyConnectedLayersinVisualRepresentationTransfer)發現,FC可在模型表示能力遷移過程中充當“防火墻”的作用。具體來講,假設在ImageNet上預訓練得到的模型為,則ImageNet可視為源域(遷移學習中的sourcedomain)。微調(finetuning)是深度學習領域最常用的遷移學習技術。針對微調,若目標域(targetdomain)中的圖像與源域中圖像差異巨大(如相比ImageNet,目標域圖像不是物體為中心的圖像,而是風景照,見下圖),不含FC的網路微調后的結果要差于含FC的網路。因此FC可視作模型表示能力的“防火墻”,特別是在源域與目標域差異較大的情況下,FC可保持較大的模型capacity從而保證模型表示能力的遷移。(冗余的參數并不一無是處。)

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

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

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

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

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

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧