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使用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在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),這也有利於訓練更深的網絡。

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

結論

    這里C10表示CIFAR-10數據集。

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

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


本文來源於微信公眾號“ CV技術指南 ” 。更多內容與最新技術動態盡在公眾號發布。

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

原創文章第一時間在公眾號中更新,博客只在有空時間才更新少量公眾號文章

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM