天天看點

你不得不知道的網絡架構DenseNet

你不得不知道的網絡架構DenseNet

python進階教程

機器學習

深度學習

長按二維碼關注

與 ResNet 和 Pre-Activation ResNet 相比,DenseNet 具有較少的參數和較高的精度。

你不得不知道的網絡架構DenseNet

在Standard ConvNet中,輸入圖像經過多次卷積,得到高層次特征。

你不得不知道的網絡架構DenseNet

ResNet Concept

在ResNet中,提出了恒等映射(identity mapping)來促進梯度傳播,同時使用使用 element 級的加法。它可以看作是将狀态從一個ResNet 子產品傳遞到另一個ResNet 子產品的算法。

你不得不知道的網絡架構DenseNet

One Dense Block in DenseNet

在 DenseNet 中,每個層從前面的所有層獲得額外的輸入,并将自己的特征映射傳遞到後續的所有層,使用級聯方式,每一層都在接受來自前幾層的“集體知識(collective knowledge)”。

1. 基礎 DenseNet 組成層

你不得不知道的網絡架構DenseNet

對于每個組成層使用 Pre-Activation Batch Norm (BN) 和 ReLU,然後用k通道的輸出特征映射進行 3×3 卷積,例如,将x0、x1、x2、x3轉換為x4。這是 Pre-Activation ResNet 的想法。

2.DenseNet-B (Bottleneck 層)

你不得不知道的網絡架構DenseNet

DenseNet-B

由于後面層的輸入會非常大,DenseBlock内部可以采用bottleneck層來減少計算量,主要是原有的結構中增加1x1 Conv,即BN+ReLU+1x1 Conv+BN+ReLU+3x3 Conv,稱為DenseNet-B結構。其中1x1 Conv得到4k個特征圖它起到的作用是降低特征數量,進而提升計算效率。

3. 具有轉換層(transition layer)的多Dense塊

你不得不知道的網絡架構DenseNet

Multiple Dense Blocks

采用1×1 Conv和2×2平均池化作為相鄰 dense block 之間的轉換層。

特征映射大小在 dense block 中是相同的,是以它們可以很容易地連接配接在一起。

在最後一個 dense block 的末尾,執行一個全局平均池化,然後附加一個Softmax分類器。

4. DenseNet-BC (進一步壓縮)

如果 Dense Block 包含m個特征映射,則轉換層(transition layer)生成 輸出特征映射,其中 稱為壓縮因子。

當時,跨轉換層的特征映射數保持不變。在實驗中,的 DenseNet 稱為 DenseNet-C,預設。

當同時使用 bottleneck 和 時的轉換層時,該模型稱為 DenseNet-BC 模型。

最後,訓練 with/without B/C 和不同L層和k生長速率的 DenseNet。

DenseNet的優勢

1. 強梯度流

你不得不知道的網絡架構DenseNet

誤差信号可以更直接地傳播到早期的層中。這是一種隐含的深度監督,因為早期的層可以從最終的分類層直接獲得監督。

2. 參數和計算效率

你不得不知道的網絡架構DenseNet

RestNet 和 DenseNet 的參數數量

對于每個層,RetNet 中的參數與成正比,而 DenseNet 中的參數與成正比。由于, 是以 DenseNet 比 ResNet 的size更小。

3. 更加多樣化的特征

你不得不知道的網絡架構DenseNet

DenseNet中更加多樣化的特征

由于 DenseNet 中的每一層都接收前面的所有層作為輸入,是以特征更加多樣化,并且傾向于有更豐富的模式。

4. 保持低複雜度特征

你不得不知道的網絡架構DenseNet

标準ConvNet

在标準ConvNet中,分類器使用最複雜的特征。

你不得不知道的網絡架構DenseNet

DenseNet

在 DenseNet 中,分類器使用所有複雜級别的特征。它傾向于給出更平滑的決策邊界。它還解釋了為什麼 DenseNet 在訓練資料不足時表現良好。

特征複用的進一步分析

你不得不知道的網絡架構DenseNet

Heat map on the average absolute weights of how Target layer (l) reuses the source layer (s)

  • 從非常早期的層中提取的特征被同一 Dense Block 中的較深層直接使用。
  • 轉換層的權重也分布在前面的所有層中。
  • 第二和第三dense block内的各層一貫地将最小權重配置設定給轉換層的輸出。(第一行)
  • 在最終分類層,權重似乎集中在最終feature map上。一些更進階的特性在網絡中産生得很晚。

論文連結https://arxiv.org/pdf/1608.06993.pdf

參考連結https://towardsdatascience.com/review-densenet-image-classification-b6631a8ef803

Github連結https://github.com/liuzhuang13/DenseNet