目錄
● 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內的各層一貫地將最小權重分配給轉換層的輸出。(第一行)
● 在最終分類層,權重似乎集中在最終feature map上。一些更高級的特性在網絡中產生得很晚。
原文發佈時間爲:2018-11-26
本文作者:Xiaowen
本文來自雲棲社區合作伙伴“專知”,瞭解相關信息可以關注“專知”。
</div>