全連線層的作用解析
作者:魏秀參
連結: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”的卷積層操作。
相關文章
- 卷積層和全連線層之間的關係卷積
- python三層全連線層實現手寫字母識別方式Python
- netty原始碼分析之新連線接入全解析Netty原始碼
- 網路連線總超時?從四層模型上解析網路是怎麼連線的模型
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- Vue 高德地圖 API Loca 如何使用 連線線圖層、脈衝連線圖層Vue地圖API
- MySQL連線原理解析MySql
- tcp的半連線攻擊和全連線攻擊--TCP DEFER ACCEPTTCP
- vnc連線黑屏,3步解析vnc連線黑屏的解決辦法VNC
- 神經網路前向和後向傳播推導(二):全連線層神經網路
- 內聯,左外聯,右外聯,全連線,交叉連線 的區別
- MOSN 原始碼解析 - 連線池原始碼
- TCP 三次握手原理以及半連線和全連線TCP
- 深度學習2.0-12.神經網路與全連線層之資料集的載入深度學習神經網路
- update-alternatives符號連線的層數過多符號
- Socket和TCP連線過程解析TCP
- 基於PyTorch框架的多層全連線神經網路實現MNIST手寫數字分類PyTorch框架神經網路
- OSI 七層參考模型的作用模型
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- MySQL 連線查詢超全詳解MySql
- 雨露均沾的OkHttp—WebSocket長連線的使用&原始碼解析HTTPWeb原始碼
- swoole4.6.x 連線池底層原理深度分析
- 全連線神經網路的原理及Python實現神經網路Python
- 做好站內連結的作用
- springboot的註解的作用說明(全)Spring Boot
- Java CompletionService 的作用與場景解析Java
- Go HTTP 重用底層 TCP 連線需要注意的關鍵點GoHTTPTCP
- 全連線神經網路學習筆記神經網路筆記
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫
- http的長連線和短連線HTTP
- 長連線和短連線的使用
- 內連線、左連線、右連線
- ConstraintLayout 全解析AI
- Immer 全解析
- HTTP全解析HTTP
- Vuex全解析Vue
- Choreographer全解析
- JS閉包作用域解析JS