DenseNet—Dense卷積網絡(圖像分類)

目錄

 ●  Dense Block
 ●  DenseNet 結構
 ●  DenseNet 的優勢
 ●  CIFAR & SVHN 小規模數據集結果
 ●  ImageNet 大規模數據集結果

 ●  特徵複用的進一步分析

Dense Block

fd24fd0dcadb8b7cb093a83632fee2a95bfef17e

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

21cd3f4dbe1934c248e85b905f95dd745fa17a99

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

cb73b9ea9850c3fe9c1f9896e1802fe7293ee6cf

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

dbf5dd7ccb58fe9777b52398bdc1dd78ba0c3d3d

由於每個層從前面的所有層接收特徵映射,所以網絡可以更薄、更緊湊,即信道數可以更少。增長速率k是每個層的附加信道數。

因此,它具有較高的計算效率和存儲效率。下圖顯示了前向傳播中級聯的概念:

d9d6875bc1e62bb97db00f11581fcafded60afae

DenseNet 結構

1. 基礎 DenseNet 組成層

e76116ed4bb0cb696254a5684215ff3f255db3c1

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

2. DenseNet-B (Bottleneck 層)

b604a14071d9aa1a8f135efec52680ca3eeedf9a

爲了降低模型的複雜度和規模,在BN-ReLU-3×3 conv之前進行了BN-ReLU-1×1 conv.

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

ade4217ea4dfebba582257a75d2611a9c60db49e

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

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

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

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

如果 Dense Block 包含m個特徵映射,則轉換層(transition layer)生成 θm 輸出特徵映射,其中 0<θ≤1 稱爲壓縮因子。

當θ=1時,跨轉換層的特徵映射數保持不變。在實驗中,θ<1的 DenseNet 稱爲 DenseNet-C,θ=0.5。

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

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

DenseNet的優勢

1.強梯度流

38c430f50ed421e2af29eb950f563fe7cef493df

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

2. 參數和計算效率

09f7de98ab470aed4a0fa700234118327ce89638

對於每個層,RetNet 中的參數與c×c成正比,而 DenseNet 中的參數與1×k×k成正比。

由於 k<<C, 所以 DenseNet 比 ResNet 的size更小。

3. 更加多樣化的特徵

9aee3d663f56efd062cec655b032c7e1f5f84dc2

由於 DenseNet 中的每一層都接收前面的所有層作爲輸入,因此特徵更加多樣化,並且傾向於有更豐富的模式。

4. 保持低複雜度特徵

f9ae4ac8b8734471d9346c062ab4af7fa23d18d7

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

d2e8ae131c2bf3b685a11367f3a228ad63b79ec3

在 DenseNet 中,分類器使用所有複雜級別的特徵。它傾向於給出更平滑的決策邊界。它還解釋了爲什麼 DenseNet 在訓練數據不足時表現良好。

CIFAR & SVHN 小規模數據集結果

1. CIFAR-10

25b647882f28738365a372ae8b14637ea9539983

詳細比較Pre-Activation ResNet。

數據增強(C10+),測試誤差:

 ●  Small-size ResNet-110: 6.41%
 ●  Large-size ResNet-1001 (10.2M parameters): 4.62%
 ●  State-of-the-art (SOTA) 4.2%
 ●  Small-size DenseNet-BC (L=100, k=12) (Only 0.8M parameters): 4.5%
 ●  Large-size DenseNet (L=250, k=24): 3.6%

無數據增強(C10),測試誤差:

 ●  Small-size ResNet-110: 11.26%
 ●  Large-size ResNet-1001 (10.2M parameters): 10.56%
 ●  State-of-the-art (SOTA) 7.3%
 ●  Small-size DenseNet-BC (L=100, k=12) (Only 0.8M parameters): 5.9%
 ●  Large-size DenseNet (L=250, k=24): 4.2%

在 Pre-Activation ResNet 中出現嚴重的過擬合,而 DenseNet 在訓練數據不足時表現良好,因爲DenseNet 使用了複雜的特徵。

0e5212b218910ff6a7af8999363700f9a89c91bd

左:DenseNet-BC獲得最佳效果。

中:Pre-Activation ResNet 已經比 alexnet 和 vggnet 獲得更少的參數,DenseNet-BC(k=12)的參數比 Pre-Activation ResNet 少3×10,測試誤差相同。

右:與 Pre-Activation ResNet-1001有10.2m參數相比,0.8參數的DenseNet-BC-100具有相似的測試誤差。

2. CIFAR-100

CIFAR-100類似的趨勢如下:

5c7d75b007e1918a4c81c9ab7997f47762858840

3. 具體結果

06de49252874292c5701ff44a4f8f06e84a3b696

SVHN是街景房屋編號的數據集。藍色代表最好的效果。DenseNet-BC不能得到比基本 DenseNet 更好的結果,作者認爲SVHN是一項相對容易的任務,非常深的模型可能會過擬合。

ImageNet 大規模數據集結果

67624fe445e2e57bd47a7b84ce37b805047f3dd1

左:20M參數的DenseNet-201與大於40M參數的ResNet-101產生類似的驗證錯誤。

右:相似的計算次數趨勢(GOLOPS)。

底部:DenseNet-264(k=48)最高誤差爲20.27%,前5誤差爲5.17%。

特徵複用的進一步分析

c8d9a40becbb8146295aba6cc9bcc9f9a3801cd7

 ●  從非常早期的層中提取的特徵被同一 Dense Block 中的較深層直接使用。
 ●  轉換層的權重也分佈在前面的所有層中。
 ●  第二和第三dense block內的各層一貫地將最小權重分配給轉換層的輸出。(第一行)

 ●  在最終分類層,權重似乎集中在最終feature map上。一些更高級的特性在網絡中產生得很晚。


原文發佈時間爲:2018-11-26

本文作者:Xiaowen

本文來自雲棲社區合作伙伴“專知”,瞭解相關信息可以關注“專知”。

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