綜述:DenseNet—Dense卷積網路(影象分類)
目錄
● Dense Block
● DenseNet 結構
● DenseNet 的優勢
● CIFAR & SVHN 小規模資料集結果
● ImageNet 大規模資料集結果
● 特徵複用的進一步分析
Dense Block
在Standard ConvNet中,輸入影象經過多次卷積,得到高層次特徵。
在ResNet中,提出了恆等對映(identity mapping)來促進梯度傳播,同時使用使用 element 級的加法。它可以看作是將狀態從一個ResNet 模組傳遞到另一個ResNet 模組的演算法。
在 DenseNet 中,每個層從前面的所有層獲得額外的輸入,並將自己的特徵對映傳遞到後續的所有層,使用級聯方式,每一層都在接受來自前幾層的“集體知識(collective knowledge)”。
由於每個層從前面的所有層接收特徵對映,所以網路可以更薄、更緊湊,即通道數可以更少。增長速率k是每個層的附加通道數。
因此,它具有較高的計算效率和儲存效率。下圖顯示了前向傳播中級聯的概念:
DenseNet 結構
1. 基礎 DenseNet 組成層
對於每個組成層使用 Pre-Activation Batch Norm (BN) 和 ReLU,然後用k通道的輸出特徵對映進行 3×3 卷積,例如,將x0、x1、x2、x3轉換為x4。這是 Pre-Activation ResNet 的想法。
2. DenseNet-B (Bottleneck 層)
為了降低模型的複雜度和規模,在BN-ReLU-3×3 conv之前進行了BN-ReLU-1×1 conv.
3. 具有轉換層(transition layer)的多Dense塊
採用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.強梯度流
誤差訊號可以更直接地傳播到早期的層中。這是一種隱含的深度監督,因為早期的層可以從最終的分類層直接獲得監督。
2. 引數和計算效率
對於每個層,RetNet 中的引數與c×c成正比,而 DenseNet 中的引數與1×k×k成正比。
由於 k<<C, 所以 DenseNet 比 ResNet 的size更小。
3. 更加多樣化的特徵
由於 DenseNet 中的每一層都接收前面的所有層作為輸入,因此特徵更加多樣化,並且傾向於有更豐富的模式。
4. 保持低複雜度特徵
在標準ConvNet中,分類器使用最複雜的特徵。
在 DenseNet 中,分類器使用所有複雜級別的特徵。它傾向於給出更平滑的決策邊界。它還解釋了為什麼 DenseNet 在訓練資料不足時表現良好。
CIFAR & SVHN 小規模資料集結果
1. CIFAR-10
詳細比較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 使用了複雜的特徵。
左: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類似的趨勢如下:
3. 具體結果
SVHN是街景房屋編號的資料集。藍色代表最好的效果。DenseNet-BC不能得到比基本 DenseNet 更好的結果,作者認為SVHN是一項相對容易的任務,非常深的模型可能會過擬合。
ImageNet 大規模資料集結果
左:20M引數的DenseNet-201與大於40M引數的ResNet-101產生類似的驗證錯誤。
右:相似的計算次數趨勢(GOLOPS)。
底部:DenseNet-264(k=48)最高誤差為20.27%,前5誤差為5.17%。
特徵複用的進一步分析
● 從非常早期的層中提取的特徵被同一 Dense Block 中的較深層直接使用。
● 轉換層的權重也分佈在前面的所有層中。
● 第二和第三dense block內的各層一貫地將最小權重分配給轉換層的輸出。(第一行)
● 在最終分類層,權重似乎集中在最終feature map上。一些更高階的特性在網路中產生得很晚。
原文釋出時間為:2018-11-26
本文作者: Xiaowen