CNN全連接層和卷積層的轉化

0. 前言

自AlexNet網絡在ImageNet LSVRC-2012的比賽中,取得了top-5錯誤率爲15.3%的成績後卷積神經網絡CNN在圖像深度學習中成爲不可缺少的大殺器。以圖像分類任務爲例在對最後一個卷積層進行池化後一般會再接2~3個全連接層(Full Connected Layer),這是一個高維向低維特徵映射的過程,多個全連接層的作用是增加函數非線性,可以理解爲提升分類的準確度。這種結構在VGG(2014)系列中仍有使用,
但是全連接層的加入會使模型帶產生過量參數,之後的網絡都在想辦法減少和避免全連接層的使用(全卷積),本文主要是對比全連接層和卷積層的轉化方式,以及在模型中的實際作用。

1. 全連接轉化爲卷積實現

首先引用CS231n中的內容:

全連接層和卷積層之間不同在於:卷積核中的權值每次滑動計算時只是局部連接,且在卷積列中的神經元共享參數——計算局部信息,而全連接層神經元的權值與所有輸入相連——計算全局信息。但二者都是採用的矩陣的點積運算,具有相似的函數計算形式,因此能夠實現互相轉換。

二者間互相轉化的特點爲:

  • 卷積——>全連接: 權重矩陣參數增大,權重補0,由於參數共享性質,在其中大部分塊中,存在大量相等參數。
  • 全連接——>全卷積: 將卷積核的尺寸設置爲和輸入數據體的尺寸一致(NxWxHxC)。除第一層全連接外,其他通道數都爲1,N表示本層神經元的個數,爲一個提前設定的超參數,結果與初始的那個全連接層一致。
    在兩種變換中,將全連接層轉化爲卷積層在實際運用中更加有用。具體怎麼有用呢?

現以圖像分類問題爲例,最後需要得到的是所屬類別的得分,輸出應該是一個向量的表示形式。假設經過多個卷積與池化層後準備輸入到全連接的是,是一個4x4x3的一般特徵圖(或理解爲一張彩色圖片),如果進行全連接操作,我們需要先將特徵圖reshape到1x1x48,下圖給出了一次全連接的圖像,然後再接softmax,最後一層全連接網絡一般不使用激活函數和批歸一化BN,而其他的所有層目前的做法是首先嚐試BN+ReLU進行激活,兩者的先後順序不一定,一般是激活在前。參考實驗:caffenet-benchmark-batchnorm

2. 具體實現對比

回到剛纔的問題,將這一步全連接轉化爲全卷積操作時,以相同的輸出作爲比較,卷積神經網絡的輸入是4x4x3的圖像,使用10個與原特徵圖一致的卷積核操作變爲1x1x10的輸出。實際上,我們可以將這全連接層中的任意一個轉化爲卷積層,見下圖示意圖:
在這裏插入圖片描述
顯然最後得出的結果都是一個1x1x10的向量,分析上面計算的參數量,對於reshape的全連接參數量爲48x10,全卷積操作的計算量爲4x4x3x10,因此參數量相等,看起來似乎沒有改的必要,但是問題就出現了reshape後的第一個全連接,這裏訓練出來的權重矩陣是48x10,如果我們要使用模型訓練的參數進行推理(測試)的話,我們最後一層卷積池化後的特徵圖大小隻能夠是4x4x3,也就是說我們在起始處輸入的圖像大小必須固定(因爲訓練後的模型固定了),那問題來了,如果我們仍想使用訓練好的模型進行前向傳播獲得分類結果的話該怎麼辦呢?
我們需要對圖片進行分區域計算,就是說對原始圖片進行剪裁,使其成爲滿足要求的圖片後纔可以進行輸入。舉個例子,加入我們訓練時候的圖片大小爲32x32x1,如果你手上準備測試64x64x1的圖像,那麼你需要進行滑窗採樣。由於全連接的參數不共享,所以最後分類的結果和準確度需要先後進行多次計算然後取平均。

3. 計算時間對比

再看看使用卷積層替代的效果,最後一次卷積後的特徵圖變爲8x8x3(32/4=8,所以new size=64/8=8)對於4x4x3的卷積核設計完全可以通過一次滑動操作處理這個特徵圖。由於(8-4)/ 1 + 1 = 5,現在我們將得到最終大小爲[5x5x10]的分類矩陣,爲了做比較,我們需要以8像素爲步長跨64x64圖像上的每32x32區域,及一共5x5個區域進行獨立地評估原始使用FC層的網絡,輸入爲25張32x32x1的區域圖像進行評價(允許出現重疊部分)其結果與一次轉發轉換後的ConvNet相同操作次數一樣。
但是使用轉化後的卷積神經網絡進行一次前向傳播計算要高效得多,因爲25次計算都在共享計算資源。另外使用全連接的設計對於採樣的相同區域進行了多次重複池化操作,因此會耗費了更多的時間。

總結:

減少和避免全連接層的使用能夠有效降低模型的參數,也已在VGG後的多數網絡裏得到使用。
將全連接層轉化爲卷積層的作用:

  • 解決了輸入尺寸的限制;
  • 全連接層會破壞圖像的空間結構,卷積會降低這種破壞,如channel=全連接的神經元個數時,使用1*1卷積代替全連接,效果很好

補充: 使用用11卷積層代替全連接層的好處:
1、不改變圖像空間結構,對於特徵的升維/降維知識改變的channels的大小;
全連接層會破壞圖像的空間結構,而1
1卷積層不會破壞圖像的空間結構。
2、整合多通道的信息,進行信息交換
在通道channels CC的維度上做線性組合,圖像的WWHH仍然是共享權值的滑窗。
3.輸入可以是任意尺寸
卷積核滑動採樣的特點決定了不限制輸入圖像的尺寸大小。

  • 節省了前向傳播的計算時間。
    注意:對於可分離卷積對模型的加速是另外的概念,和這裏不是一回事。

cs231n卷積網絡原文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章