《Densely Connected Convolutional Networks》論文閱讀筆記

原文代碼: https://github.com/liuzhuang13/DenseNet

pytorch實現 https://github.com/liuzhuang13/DenseNet/tree/master/models

論文動機:在CNN中靠近輸入、輸出的層之間如果包含更短的連接,則CNN訓練時會更高效、更準確;

提出網絡:Dense Convolutional Network(DenseNet);L層的傳統卷積網絡需要L次連接,而DenseNet需要\frac{L(L+1)}{2}次連接;

優點:減輕梯度消失問題;加強特徵傳播;支持特徵重用(feature reuse);減少參數數量(因爲不需要重新學習冗餘的特徵圖,儘管這個網絡結構是dense connectivity,參數反而大大減少);

Introduction

ResNets、Hightway Networks、FractalNets, they all share a key characteristic: they create short paths from early layers to later layers

下圖時DenseNet結構,意義

To ensure maximum information flow between layers in the network, we connect all layers (with matching feature-map sizes) directly with each other. To preserve the feed-forward nature, each layer obtains additional inputs from all preceding layers and passes on its own feature-maps to all subsequent layers.

 

傳統的前饋結構可以被看作是具有狀態的算法,這個狀態在層與層之間傳播,每一層接收前面一層傳遞的狀態然後寫到下面一層,它改變了狀態,但也傳遞了需要保存的信息。

本文提出的DenseNet結構可以準確區分增加到網絡上的信息以及被保存下的信息;同時Dense connections有正則化作用,會在小訓練集的任務上減少過擬合的影響;

DenseNets

l{\color{Red} }: 層的索引;

H_{l}(.): 非線性轉換,是一個複合操作,比如BN、ReLU、Poolingu哦這Conv;

X_{l}l_{th}層的輸出;

------------------------------------

先回憶ResNets:

X_{l}=H_{l}(X_{l-1})+X_{l-1}

優點:梯度可以從後面的層通過恆等函數到達前面的層;

缺點:因爲採用加和的方式將恆等函數和H_{l}結合,可能阻礙信息在網絡中的傳播;   

------------------------------------

Dense connectivity:

X_{l}=H_{l}([X_{0},X_{1},...,X_{l-1}]])

------------------------------------

考慮到特徵圖尺寸可能由下采樣引起的變化,我們將網絡分成多個dense blocks,如下圖;

transition layers: 是block和block之間的,卷積和池化操作;

Growth rate

每個函數H_{l}產生k個特徵圖,則l_{th}層有k_{0}+k*(l-1)個輸入特徵圖,k_{0}是輸入層的通道數;k就是網絡的Growth rate;

------------------------------------

Bottleneck layers:

1X1的卷積在3X3的卷積前作爲一個bottleneck layer,可以提高計算效率;

------------------------------------

Compression:

爲了進一步提高模型的compactness,我們可以減少過渡層的特徵圖的數量。

 

相關參考 https://blog.csdn.net/u012938704/article/details/53468483

https://blog.csdn.net/u011974639/article/details/78290448

 

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