DensetNet 筆記

特徵融合的方式:

summation-加,缺點:阻礙網絡中信息流。

concatenation- 串聯

密度連接模式的一個可能反直覺效果是它需要更少的參數相比較於傳統的卷積網絡,由於不需要重新學習冗餘的feature-maps。傳統的前饋傳播架構可以被當作帶有狀態的算法,狀態從一個層傳到另一個層。每層從它的之前網絡層讀取狀態,並將狀態寫到後面一層。這樣不經改變了狀態,而且傳遞所需要保存的信息。ResNets通過Identity transformations讓信息保持明確。近期,R esNets的變體表明網絡層數很多貢獻很少,事實上在訓練過程中被隨機拋棄。這讓ResNets的狀態類似於循環神經網絡,但是ResNets的參數數量相當地大,引文每層都有它自己的權重。我們所提出來的DenseNet架構明確地區分了添加到網絡中的信息和被保留的信息。DenseNe t是很窄的,僅僅添加一小部分特徵圖到網絡的集合知識(collective knowledge),保持剩餘特徵圖不變,最終分類器基於網絡中所有的特徵圖做成決策。

  除了更好的參數效率, DenseNets一個最大的優點是穿過網絡的信息流和梯度的改善,讓它們更容易訓練。每層都可以從損失函數中直接獲取梯度;原始的輸入信號,導致了一個隱式的深度監督。這有助於更深網絡結構的訓練。而且,我們觀察到密度連接有正則化的效果,在數據量更少的數據上訓練任務,減少過擬合。

[9]Hyper- columns for object segmentation and fine-grained localiza- tion. In CVPR, 2015.

[23]Fully convolutional networks for semantic segmentation.In CVPR, 2015

[30]Pedestrian detection with unsupervised multi-stage feature learning.In CVPR, 2013

[40]Multi-scale recognition with dag- cnns. In ICCV, 2015. 

  文獻9, 23,30,40,通過跳躍式連接(skip-connections)利用CNN中多層特徵(multi-level features)已經被發現各種視覺任務中很有效。

  對應紅色字體所描述的內容,作者也提出論據進行論證。文獻[13]Deep networks with stochastic depth. In ECCV, 2016中,隨機深度作爲一種成功訓練1202層ResNets的方法被提出。在訓練過程中,隨機深度(Stochastic Depth)通過隨機放棄一些層改善深度殘差網絡的訓練。這寫表明並不是所有的層都需要,需要強調的是在深度網絡中有大量的冗餘。文獻[12]Identity mappings in deep residual networks. In ECCV, 2016. 中指出,帶有pre-activation的ReNets促進了網絡層數大於1000層的最先進網路的訓練。

 一個讓網絡更深的正交的方法是提升網絡的寬度。(個人理解:提升網絡深度的另一個方法是提升網絡寬度。)然後作者舉例:GoogLeNet使用Inception module, Inception Module串聯由不同大小卷積核產生的特徵圖。文獻[41]Wide residual networks.arXiv preprint arXiv:1605.07146, 2016. 如果網足夠深,簡單地ResNets每層中卷積核的數量可以改善它的性能。文獻[17]Fractalnet:Ultra-deep neural networks without residuals. arXiv preprint arXiv:1605.07648, 2016. 提出使用更寬的網絡結構是在多個數據集上,實現競爭性結果。

DenseNet的側重點:Densets不是強調從極其深或者更寬的架構中所獲得表徵性能,而是通過特徵重用利用網絡潛力。產生的D enseNet 模型更容易訓練,高參數效率。串聯通過不同層學習到的特徵圖,提升位於網絡後面層的輸入的變化,改善效率。這就是ResNet和DenseNet的主要區別。相比較於Inception網絡,該網絡也串聯了不同層的特徵,DenseNets更簡單,更有效。

作者還總結了其他網路的創新:Network in Network 將更多的微小的多層感知機包含到卷積層的卷積核中來提取更多複雜的特徵。DSN(深度監督網絡),通過附加的分類器,中間層直接被監督。Ladder Network引進lateral connections到自動編碼器中,在半監督學習任務中產生令人印象深刻的準確率。Deeply-Fused Nets(深度融合網絡)通過組合不同基礎網絡的中間層來改善信息流。文獻[42]Augmentingsupervisedneural networks with unsupervised objectives for large-scale image classification. In ICML, 2016, 帶有通道的網路擴充最小化重建損失,而且也表明改善網絡分類模型。

 

3. DenseNets

DenseNet由L層組成,每層實現一個非線形變化:H_{l}(.), l是層的索引,H_{l}(.)是一個複合的操作函數,其中包括:Batch Normalization(BN), Rectified Linear units(ReLU), Pooling, Convolution(Conv)。x_{l}:是第l層的輸出。DenseNet中H_{l}(.)=BN+ReLU+3x3Conv

ResNets:

傳統的卷積前饋神經網絡將第l層的輸出作爲第l+1的輸入。

x_{l}=H_{l}(x_{l-1})

而ResNets添加了一個殘差連接,並用恆等函數(Identity funcation)繞過非線形變化H_{l}(.)。公式如下:

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

ResNets的一個優點是梯度可以通過identity funcation 直接從後面一層流到更前面的層。

然而,identity function 和H_{l}(.)的輸出是由summation組成,有可能阻礙網絡中信息流。

DensetNet Connectivity

爲了進一步改善層與層之間的信息流,作者提出一個不同的連接模式:將0至l-1層的輸出作爲l層的輸入。

 

公式:

x_{l}=H_{l}([x_{0},x_{1},...,x_{l-1}])  等式2

[x_{0},x_{1},...,x_{l-1}]表示:0至l-1層的輸出的特徵圖的串聯。for ease of implementation, 爲了便於實現, 我們將H_{l}(.)的多個輸入串聯成一個單一的張量。

Pooling Layers

當特徵圖的大小改變的時候,等式2中串聯(concatenation)操作是不可行的。然而,一個卷積網絡的基礎部分是下采樣層。爲了改善DenseNet中下采樣,作者將網絡分爲多個密度連接的dense blocks。如下圖所示:

 

兩個相鄰的dense blocks之間的層叫做transition layers(過渡層),在作者的實驗中,transition layer由batch normalization layer + 1x1 j卷積層+ 2x2 平均池化層組成。

Trasition layer = Batch Normalization Layer + 1x1 Convolutional Layer + 2x2 Averager Pooling Layer.

H_{l}(.) = Batch Normalization (BN)+ Rectified Linear Unit (ReLU) + 3x3 Convolution.

Growth Rate

  • 如果每個層產生K個特徵圖,那麼第l層則有k_{0}+k*(l-1)個特徵圖,k0是輸入層的通道數量。作者把超參數K稱作Growth rate.
  • 作者通過實驗證明相對小的k置DenseNet網絡在測試集上可以取得最好的結果。對於這些結果一個可解釋的說法:每層都可以獲取到該層之前所有的feature map, 作者認爲可以把feature map 當作網路的全局狀態。增長率k調整每層有多少信息貢獻到全局狀態。全局狀態可以在網絡內部任何地方可以獲取到。

Bottleneck  layers

  • 雖然每個層輸出k個feature map, 但是通常每個層有更多的輸入。在文獻[36]Rethinking the inception architecture for computer vision. InCVPR, 2016.,文獻[11] [Deep residual learning for image recognition.In CVPR, 2016], 在每個3x3之前,引入1x1卷積作爲瓶頸層(bottleneck layer)來減少輸入feature map的數量,因此改善計算效率。作者發現這樣的設計對DenseNet特別有效,作者把帶有這樣的bottleneck layers (H_{l}(.) =BN+ReLU+1x1 Conv + BN+ReLU+3x3Conv)的網絡稱爲DenseNet-B。在實驗中,作者設計每個1x1卷積輸出4k個特徵圖。

Compression

  •  爲了進一步改善模型的緊密性(Compactness),我們可以減少在過渡層的特徵圖的數量。如果一個DenseNet Block 包含m個特徵圖,我們讓緊跟Block後面的過渡層輸出\theta m個輸出特徵圖, \theta(0< \theta\leq 1)被稱爲壓縮因子compression facor。\theta=1,特徵圖的數量在經過transition layer後數量保持不變。作者把帶有\theta<1的DenseNet稱爲DenseNet-C。當網絡同時使用Bottleneck layer和\theta<1的Transition layer,作者把模型稱爲DenseNet-BC。

Training

在ImageNet數據集上,作者訓練模型90次Eopchs, Batch size:256, 初始化學習率0.1, 在Epoch30,60的時候,學習率降低0.1倍。由於GPU的限制,最大的模型DenseNet-161,使用大小爲128最小批處理(mini-batch )進行訓練,爲了彌補大小爲128 batch訓練,增加Epoch次數100,在Epoch90的時候,學習率降低0.1倍。如果模型的Batch減少,可以通過增加Epoch次數。

一些可借鑑的結論:

如果基於某些數據做分類,檢測容易,太深的模型容易過擬合。This may be explained by that SVHN is a relatively easy task, and extremely deep models may overfit to the training set.

4.3 Classification Results on CIFAR and SVHN

Capacity:
沒有壓縮或者瓶頸層,隨着L和k的提升DenseNet性能越好。基於C10+列觀察,隨着參數從1.0M, 7.0M, 27.2M逐漸增加,錯誤率從5.24%, 4.10%,下降到3.74%。在C100+上,也可以得到類似的結果。這些暗示DenseNets可以利用更大,更深的模型的表徵能力。同時,它也暗示DenseNet不會遭受過擬合或者優化困難。

Parameter Efficiency

在相同的數據集C10+上,具有更少參數的DenseNet-BC(k=24), Depth-250, 15.3M參數量,其性能都超過了FractalNet,WideResNet。

Overfitting:

帶有Compression, Bottleneck layer的DenseNet更容易防止過擬合。

 

 


5. Discussion

Implicit Deep Supervision

  對於dense convolutional networks的準確率的改善一個可能解釋是每層通過shorter connection接受來自損失函數的附加監督。可以理解DenseNet實現一種深度監督。深度監督的好處之前在DSN中已經說明過了,讓分類器附加到每個隱藏層,強迫中間層學習判別式特徵(Discriminative Features)。

  DenseNets以隱藏式的方式實現一種類似深度監督。

 

 

 

 

 

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