DenseNet模型解讀

導言:微信

    傳統的卷積網絡在一個前向過程當中每層只有一個鏈接,ResNet增長了殘差鏈接從而增長了信息從一層到下一層的流動。FractalNets重複組合幾個有不一樣卷積塊數量的並行層序列,增長名義上的深度,卻保持着網絡前向傳播短的路徑。相相似的操做還有Stochastic depth和Highway Networks等。網絡

    這些模型都顯示一個共有的特徵,縮短前面層與後面層的路徑,其主要的目的都是爲了增長不一樣層之間的信息流動。DenseNet基於此提出了一種新的鏈接模式--Dense connections。函數

 

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

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

DenseNet網絡結構

 

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

    在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)個輸入通道。it

    在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)。io

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

實現細節

    除了用於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技術的總結。正在進行的系列有網絡模型解讀、行爲識別和CV技術總結

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

相關文章
相關標籤/搜索