天天看點

DenseNet模型解讀

導言:

    傳統的卷積網絡在一個前向過程中每層隻有一個連接配接,ResNet增加了殘差連接配接進而增加了資訊從一層到下一層的流動。FractalNets重複組合幾個有不同卷積塊數量的并行層序列,增加名義上的深度,卻保持着網絡前向傳播短的路徑。相類似的操作還有Stochastic depth和Highway Networks等。

    這些模型都顯示一個共有的特征,縮短前面層與後面層的路徑,其主要的目的都是為了增加不同層之間的資訊流動。DenseNet基于此提出了一種新的連接配接模式--Dense connections。

    傳統L層的網絡僅有L個連接配接,在DenseNet中使用了L(L+1)/2個連接配接。這樣做有幾個明顯的優點:避免了梯度消失問題,加強了特征傳播,實作特征複用(feature reuse),以及實質上減少了參數量。

DenseNet在CIFAR-10, CIFAR-100, SVHN, 和ImageNet上超過了大部分的SOTA模型,使用更少的計算實作了更好的效果。

DenseNet模型解讀

DenseNet網絡結構

DenseNet模型解讀

    DenseNet使用Dense connections構成三個Dense Block,再通過幾層卷積和池化。其中Dense Block中的Dense connections是通過concat實作的。

    在ResNet中,殘差連接配接的識别函數為Xi = Hi (Xi-1) +Xi-1,這裡i指層數。而DenseNet中的識别函數為 Xi = Hi( [X0, X1, X2... Xi-1] )。(注:一個輸入經過卷積,BN,激活函數,得到輸出,這個過程可認為是一個識别函數Hi)

    考慮到是使用Concat連接配接,若每個Block層數和通道數太多,将導緻Block巨大,這裡Block中每層的通道數都比較小(在本文中通道數用K表示,k取12,24,40)。這裡K也表示growth rate。如每個識别函數産生k個通道,則第i層将有k0 + k x( i-1)個輸入通道。

    在DenseNet中,Block的結構是BN + ReLU +3x3Conv。而在DenseNet-B中使用了Bottleneck, Block的結構是BN+ReLU+1x1 Conv+BN+ReLU+3x3 Conv,在1x1處降維以減少參數。在DenseNet-C中為了使得模型更小,使用了一個超參數θ,對于通道數為k的block,其通道數在DenseNet-C中變為θk, θ取0.5。(注:DenseNet中是沒有使用Bottleneck和超參數θ的,對于同時使用Bottleneck和θ的模型成為DenseNet-BC)。

DenseNet模型解讀

    DenseNet在ImageNet上的結構如上所示,這裡的Block都是BN+ReLU+3x3Conv結構。

實作細節

    除了用于ImageNet資料集的模型有四個Dense Block,其他都隻有三個,在第一個dense block前有16通道輸出、3x3卷積核大小的卷積層用于處理輸入圖檔,(DenseNet-BC是32通道),每層卷積都使用了1個像素的padding以保持輸出大小不變,在兩個Dense blocks之間使用1x1卷積和2x2平均池化作為Transition Layer,在最後一個Dense blocks後使用全局平均池化,以及softmax分類器。

    三個Dense blocks的feature map大小分别是32x32, 16x16, 8x8。對于一般的DenseNet,有三種結構配置:{L=40, k=12},{L=100, k=12},{L=100, k=24}。而對于DenseNet-BC結構,使用如下三種網絡配置:{L=100, k=12},{L=250, k=24},{L=190, k=40}。這裡L指的是模型的總層數,不是dense block的層數。(注:BN,pooling,ReLU都是不計入層數中的)。

    圖像輸入大小為:224x224。

DenseNet理論依據

    Dense connections使得前幾層的資訊在後面層中可以直接獲得,資訊得到很好的保留,增加了不同層之間的資訊流動以及梯度傳播,這使得模型更加容易訓練。這種在每一層都使用前面所有層的資訊的方式,稱之為特征複用(feature reuse),其他論文裡出現這個feature reuse。

    每一層都可以直接獲得來源于Loss function的梯度和輸入信号(這裡指的直接來源于Loss function的梯度其實指的是dense block,而不是DenseNet),進而實作了隐式的深監督(Implicit Deep Supervision),這也有利于訓練更深的網絡。

    此外,它還有正則化效果,這使得它可以使用更小的模型尺寸,而不會出現過拟合。

結論

DenseNet模型解讀

    這裡C10表示CIFAR-10資料集。

DenseNet模型解讀

DenseNet與ResNet在ImageNet上的實驗對比,明顯可知DenseNet效果更好。

若有錯誤或疑問,歡迎留言指出。

本文來源于微信公衆号“ CV技術指南 ” 。更多内容與最新技術動态盡在公衆号釋出。

歡迎掃描下方二維碼關注公衆号“CV技術指南”,主要進行計算機視覺方向的論文解讀,最新技術跟蹤,以及CV技術的總結。

原創文章第一時間在公衆号中更新,部落格隻在有空時間才更新少量公衆号文章

DenseNet模型解讀