DenseNet論文閱讀

Densenet

簡要說說幹了啥

Resnet表明在靠近輸入層與靠近輸出層之間設置shortcut能夠更好地訓練網絡。Densenet在其基礎上加上了更多連接,每一層的輸入均爲前面所有層的特徵。Densenet有以下幾個優點:

  1. 緩解了梯度消失的問題
  2. 加強了特徵的傳播
  3. 鼓勵了特徵的重用
  4. 減少了參數的數量

下圖是DenseNet部分模型結構:

Densenet

爲啥這樣做

隨着網絡結構越來越深,神經網絡逐漸出現梯度消失等問題,爲了解決這些問題出現了諸如resnet、highway_network等工作,這些工作的本質都是創建離輸入層近的層與離輸出層近的層之間的快速通道。Densenet爲了更好的利用各個層之間的信息,將所有層直接連接在一起,這樣做的好處可能是網絡中每一層的特徵值能夠被更好的利用, 從而讓網絡更淺。

DenseNet 網絡模型

在這裏插入圖片描述
在DenseNet中最重要的便是DenseBlock,DenseBlock提出了一種新的連接方式可以將當前層直接連接到它之後的所有層。其公式如下:
xl=Hl([x0,x1,...,xl1]x_l = H_l([x_0, x_1,...,x_{l-1}])
其中[x0,x1,...,xl1][x_0, x_1,...,x_{l-1}]代表ll層之前的所有層產生的特徵圖通過通道連接的結果,HlH_l被定義爲三個連續的操作,分別是批量歸一化、ReLU激活函數以及一個3×33\times3的卷積。由於需要進行通道連接,所以 x0,x1,...,xl1x_0, x_1,...,x_{l-1}層的特徵圖大小應該是一樣的,在DenseBlock中不會存在有池化操作,而是在三個Dense Block之間加入transpose layer。
transpose layer 包含池化層以及卷積核爲1×11\times1的卷積來實現DenseBlock中不能使用的池化操作以及特徵降維(這裏不是很清晰)。

如果DenseBlock中每一層神經網絡產生kk個特徵圖的話,那麼第ll層網絡的特徵圖數就是k0+k×(l1)k_0+k\times(l-1)個特徵圖,其中k0k_0是輸入層特徵圖的通道數,而kk是我們可以設置的超參數,稱作Growth rate。DenseNet中由於每一層都能夠訪問其前面所有層的特徵圖,所以這個Growth rate設置的較小也能取得不錯的結果。

實驗與結果

實驗採用了三個數據集分別是

  1. CIFAR
  2. SVNH
  3. IMAGENET

並對這三個數據集進行了介紹,同時給出了訓練時的超參數的設計。

在這三個數據集上面訓練的效果如下圖所示
在這裏插入圖片描述
同時在準確率、容量大小、以及過擬合三個方面分析了DenseNet。

其中可以用在隱寫分析中的特點應該是DenseNet更不容易過擬合。因爲隱寫分析中如果使用高維特徵的話應該很容易過擬合。

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