Densely Connected Convolutional Networks

摘要

作者提出了一種新的網絡結構,傳統的L層網絡間有L個連接,作者提出的Densenet的L層網絡間有L(L+1)/2個連接。對某一層,之前的所有層的特征圖都被用做輸入。Densenet有以下幾個優點:緩解了梯度消失,加強了特征傳播,實現了特征重用和充分減少了參數數目。

介紹和相關工作

隨著神經網絡的加深,輸入信息經過多層網絡常常出現梯度消失等問題。Resnet、Highway Networks、Stochastic depth and FractalNets解決梯度消失問題的共性是它們在前面網絡層與后面層之間創造了短連接。在本文中,作者提出了一種將信息最大化向下一層傳播的網絡。


Figure 1: A 5-layer dense block with a growth rate of k= 4.Each layer takes all preceding feature-maps as input

在整合特征時沒有像Resnet那樣將特征圖與前面層的信息相加而是將兩者拼接在了一起。違背直覺的是Densenet的參數數目變少了。除了減少參數外,該網絡提升了信息的流動與梯度傳播讓網絡變得更容易去訓練,并且密集連接具有正則化的作用,緩解了過擬合。

DenseNets

考慮一幅圖片X0輸入一個卷積網絡,該網絡包含L層,每層有一個非線性傳輸函數H(l),H可以是一系列操作的組合,例如批正則化,RELU,池化或者卷積操作。


ResNets

該網絡在一個block后一層輸入加上了該block的輸入,使得梯度可以直接由后一層向前一個block最開始的層傳播,但缺點是直接相加可能會妨礙網絡中信息流動。

Dense connectivity

為了提升信息在層之間的流動,作者提出了如圖結構,在每一個block里整合前一層特征圖信息時,將其與更早的特征圖進行拼接而不是相加。

Composite function

定義H(l)由BN、RELU和一個3x3的卷積構成。

Pooling layers

將整個網絡劃分為多個blocks,并在blocks之間進行卷積和池化。在該實驗中,使用了一個BN和一個1x1的卷積層和一個2x2的平均池化層。

Growth rate

假設每一個H操作就會產生k個feature maps,那么當層數為l的時候就會有k*(l-1)+k0 (k0是input的通道數,RGB的話,就是3),如果k太大,會導致數據量特別大,而這個k又是卷積核的個數,所以也不能太大,太大了,網絡的參數又太多。為了控制參數數目,作者引入超參數k,為增長率。



一種解釋是每一層所學到的都作為block中共享的知識,而每一層所學的對整體的貢獻由k所決定。

Bottleneck layers

為了減少特征圖從而減少計算量,采用在3x3卷積結構前加1x1卷積結構減少特征圖數目。加入這種結構的blocks稱為DenseNet-B。

Compression

為了讓網絡結構更加緊湊,本實驗在blocks之間的過渡層增加了reduce率為0.5的操作,這時稱這個模型為 DenseNet-BC。
之后就是實現細節了。

總結

通過實驗證明了模型在一些數據集上表現達到領先水平,在達成相同準確率的情況下,DenseNet所需的參數和浮點操作數遠小于ResNet。

點評

文章中對于輸入信息流的處理比較特別,算是Resnet中對信息處理的想法的一種擴展,僅僅是這樣的操作使模型表現或許有所提升,但參數數量也會增多,計算量變大。所以文章中一系列的減少參數的操作十分重要,并且難能可貴的是它仍然保證了模型的表現。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。