經典分類模型(六):DenseNet(2017CVPR)

Densely Connected Convolutional Networks-----DenseNet_2017CVPR

密集連接的卷積網絡

傳統上爲了加強CNN模型的表達能力有兩種可行的辦法,一是將CNN層數增加,變得越來越深;二則是將單層CNN的conv filters數目增加,變得越來越寬。但這兩種都會導致訓練參數的倍增,從而滑向overfitting的深淵。

後來Resnet等網絡中關於identity mapping的引入,使得我們進一步意識到有效的CNN網絡結構設計可以在網絡訓練參數一定的情況下達到一定的優良性能。

Resnet中通過使用skip learning可有效地將前面layers產生的activation maps傳遞給後面的layers使用,極大地規避了前向的參數爆炸(exploding)及後向的參數消失(vanishing)等問題。而在DenseNet中,作者進一步考慮加強CNN網絡前面layers與後面layers之間的關聯,從而設計出了DenseNet網絡,以更充分地將後端layers處理得到的feature信息有效地爲後面layers所複用,進而使得網絡隨着層數的增加,逐步在保有原來已得全局feature信息的基礎上對其不斷增加新的後面layers所產生的features信息。它的設計被實驗證明可以有效地複用各layers之間的feature map計算,從而減少每層需用的訓練參數。

DenseNet的網絡結構則可描述爲:Xl = Hl([X0, X1, …, Xl-1])。其中[X0, X1,…,Xl-1]分別表示與lth layer feature map size相同的前面若干個layers所生成的feature maps集合。

參考鏈接: https://www.jianshu.com/p/59bb32202353

Abstract

最近的工作表明,如果卷積網絡在靠近輸入的層和靠近輸出的層之間包含較短的連接,則可以進行更深入,更準確和有效的訓練。在本文中,我們接受了這一觀察,並介紹了密集卷積網絡(DenseNet),該網絡以前饋方式將每一層連接到其他每一層。**具有L層的傳統卷積網絡具有L(L+1)/2個連接(每層與其後續層之間有一個連接),而我們的網絡具有L個直接連接。**對於每一層,所有先前層的特徵圖都用作輸入,而其自身的特徵圖則用作所有後續層的輸入。 **DenseNets具有幾個引人注目的優點:它們減輕了消失梯度的問題,增強了特徵傳播,鼓勵了特徵重用,並大大減少了參數數量。**我們在四個競爭激烈的對象識別基準測試任務(CIFAR-10,CIFAR-100,SVHN和ImageNet)上評估了我們提出的體系結構。 DenseNets在大多數方面都比最新技術有了顯着改進,同時需要較少的計算來實現高性能。代碼和預訓練模型可在以下位置獲得https://github.com/liuzhuang13/DenseNet.

1.Introduction

卷積神經網絡(CNN)已成爲視覺對象識別的主要機器學習方法。 儘管它們最初是在20多年前引入的[18],但計算機硬件和網絡結構的改進才使真正的深度CNN訓練成爲可能。 最初的LeNet5 [19]由5層組成,VGG具有19層[29],僅去年的高速公路網[34]和殘差網絡(ResNets)[11]才突破了100層障礙。
在這裏插入圖片描述
隨着CNN越來越深入,出現了一個新的研究問題:隨着有關輸入或漸變的信息穿過許多層,當到達網絡的末端(或起點)時,它可能消失並“洗掉”。 最近的許多出版物都解決了這一問題或相關問題。 ResNets [11]和Highway Networks [34]通過身份連接將信號從一層旁路到另一層。 隨機深度[13]通過在訓練過程中隨機放置各層來縮短ResNets,以提供更好的信息和梯度流。 FractalNets [17]反覆將幾個並行層序列與不同數量的卷積塊組合在一起,以獲得較大的標稱深度,同時保持網絡中的許多短路徑。 儘管這些不同的方法在網絡拓撲和培訓過程方面有所不同,但是它們都具有一個關鍵特徵:它們創建了從早期層到後續層的短路徑。

在本文中,我們提出了一種架構,該架構將這種見解提煉爲簡單的連通性模式:爲了確保網絡中各層之間的最大信息流,我們將所有層(具有匹配的特徵圖大小)直接相互連接。爲了保留前饋特性,每個層都從所有先前的層中獲取其他輸入,並將其自身的特徵圖傳遞給所有後續層。圖1示意性地說明了這種佈局。至關重要的是,與ResNets相比,我們永遠不會在將特徵傳遞到圖層之前通過求和來組合特徵。相反,我們通過串聯功能來組合它們。因此,“第l層具有”輸入,由所有前面的卷積塊的特徵圖組成。它自己的特徵圖將傳遞到所有L-′後續層。這將在L層網絡中引入L(L + 1)/ 2個連接,而不是像傳統體系結構那樣僅引入L個。由於其密集的連接模式,我們將這種方法稱爲密集卷積網絡(DenseNet)。

這種密集的連接模式的可能與直覺相反的效果是,與傳統的卷積網絡相比,它需要的參數更少,因爲不需要重新學習冗餘的特徵圖。可以將傳統的前饋體系結構視爲具有狀態的算法,該狀態會逐層傳遞。每一層都從其上一層讀取狀態並寫入下一層,它不僅改變狀態,還傳遞需要保留的信息。 ResNets [11]通過附加身份轉換使信息保存變得明確。ResNets[13]的最新變化表明,許多層的貢獻很小,實際上在訓練過程中可以隨意丟棄。這使得ResNet的狀態類似於(展開的)遞歸神經網絡[21],但是ResNet的參數數量實質上更大,因爲每一層都有其自己的權重。我們提出的DenseNet體系結構明確區分了添加到網絡中的信息和保留的信息。DenseNet層非常狹窄(例如,每層12個過濾器),僅向網絡的“集體知識”添加少量特徵圖集網絡並保持其餘特徵圖不變-最終分類器根據網絡中的所有特徵圖做出決定。

**除了更好的參數效率外,DenseNets的一大優勢是它們改善了整個網絡中的信息流和梯度,這使得它們易於訓練。**每層都可以直接從損耗函數和原始輸入信號訪問梯度,從而導致隱式的深度監控[20]。這有助於訓練更深層次的網絡體系結構。此外,我們還觀察到密集的連接具有正則化效果,從而減少了訓練集大小較小的任務的過度擬合。

我們在四個競爭激烈的基準數據集(CIFAR-10,CIFAR-100,SVHN和ImageNet)上評估DenseNet。 與具有可比精度的現有算法相比,我們的模型通常需要更少的參數。此外,在大多數基準測試任務上,我們的性能明顯優於當前最新的結果。

2.Related Work

自從最初發現以來,對網絡體系結構的探索一直是神經網絡研究的一部分。最近神經網絡流行度的復甦也使這一研究領域復興。隨着現代網絡中層數的增加,擴大了架構之間的差異,並激發了對不同連通性模式的探索和對舊研究思想的重新審視。

在1980年代的神經網絡文獻中,已經研究了類似於我們提出的密集網絡佈局的級聯結構[3]。他們的開拓性工作專注於以逐層方式訓練的完全連接的多層感知器。最近,提出了使用間歇梯度下降訓練的全連接級聯網絡[40]。儘管此方法對小型數據集有效,但僅可擴展到具有數百個參數的網絡。在[9,23,31,41]中,發現通過跳過連接在CNN中使用多級功能對於各種視覺任務都是有效的。與我們的工作平行,[1]推導了具有與我們類似的跨層連接的網絡的純理論框架。

高速公路網絡[34]是最早提供可有效訓練具有100多個層的端到端網絡的方法的體系結構之一。通過使用旁路和選通單元,可以毫無困難地優化具有數百層的公路網。旁路路徑被認爲是簡化這些非常深層網絡訓練的關鍵因素。 ResNets [11]進一步支持了這一點,其中純身份映射用作旁路路徑。 ResNets在許多具有挑戰性的圖像識別,定位和檢測任務(例如ImageNet和COCO對象檢測)中取得了令人印象深刻的創紀錄性能[11]。最近,提出了隨機深度作爲成功訓練1202層ResNet的一種方法[13]。隨機深度可通過在訓練過程中隨機放置各層來改善對深度殘差網絡的訓練。這表明可能並不需要所有的層,並突顯了深度(殘留)網絡中存在大量冗餘。我們的論文在某種程度上受到了這一觀察的啓發。具有預激活功能的ResNets還可以訓練具有> 1000層的最新網絡[12]。
在這裏插入圖片描述
使網絡更深的正交方法(例如藉助跳過連接)是增加網絡寬度。 GoogLeNet [36,37]使用“盜版模塊”,將不同大小的過濾器生成的特徵圖連接起來。在[38]中,提出了具有廣泛廣義殘差塊的ResNets的變體。實際上,只要深度足夠,只需增加ResNets每層中的過濾器數量就可以改善其性能[42]。 FractalNets還使用廣泛的網絡結構在多個數據集上取得了競爭性結果[17]。

DenseNets並未從極深或極深的架構中獲得代表性的功能,而是通過特徵重用來挖掘網絡的潛力,從而生成易於訓練且參數高效的濃縮模型。連接不同層學習到的特徵圖會增加後續層輸入的變化,並提高效率。這構成了DenseNet和ResNet之間的主要區別。相較於Inception網絡[36,37],它也將不同層次的特徵連接在一起,DenseNets更簡單,更高效。

還有其他顯着的網絡體系結構創新也產生了競爭結果。網絡中的網絡(NIN)[22]結構將微多層感知器包含到卷積層的過濾器中,以提取更復雜的特徵。在深度監督網絡(DSN)[20]中,直接對內部層進行監督
通過輔助分類器,可以增強早期圖層接收到的梯度。 Ladder Networks [27,25]將橫向連接引入自動編碼器中,從而在半監督學習任務上產生了令人印象深刻的準確性。[39]中,提出了Deep-Fused Nets(DFNs)通過組合不同基礎網絡的中間層來改善信息流。用最小化重建損失的途徑增強網絡也可以改善圖像分類模型[43]。

3.DenseNets

考慮通過卷積網絡傳遞的單個圖像x0。該網絡包含L個層,每個層執行一個非線性變換H l(·),其中“索引該層”。 H l(·)可以是諸如批歸一化(BN)[14],整流線性單位(ReLU)[6],合併[19]或卷積(Conv)之類的運算的複合函數。我們將第l層的輸出表示爲xl。

ResNets。傳統的卷積前饋網絡將第l層的輸出作爲輸入連接到第(l + 1)層[16],這會導致以下層轉換:x l = H l(x 1-1)。 ResNets [11]添加了一個跳過連接,該連接使用身份函數繞過非線性變換:
在這裏插入圖片描述
ResNets的一個優點是,梯度可以直接通過身份函數從後面的層流到前面的層。但是,標識函數和H的輸出通過求和相結合,這可能會阻礙網絡中的信息流。

密集的連接。爲了進一步改善各層之間的信息流,我們提出了一種不同的連接模式:我們引入了從任何層到所有後續層的直接連接。圖1示意性地說明了所得DenseNet的佈局。因此,第l層接收所有先前的層x 0,…,xl-1的特徵圖作爲輸入:
在這裏插入圖片描述
其中[x 0,x 1,…,xl-1]指的是在0,…,-1層中生成的要素圖的串聯。由於其密集的連接性,我們將此網絡架構稱爲密集卷積網絡(DenseNet)。爲了易於實施,我們將等式中H的多個輸入(·)連接起來。 (2)成單個張量。

複合功能。根據[12],我們將Hl(·)定義爲三個連續操作的複合函數:批歸一化(BN)[14],然後是整流線性單元(ReLU)[6]和3×3卷積(轉換)。

合併層。等式中使用的串聯操作。 (2)當特徵圖的大小發生變化時是不可行的,但是,卷積網絡的重要部分是降低特徵圖大小的下采樣層。爲了便於在我們的體系結構中進行下采樣,我們將網絡劃分爲多個密集連接的密集塊;見圖2。我們將塊之間的層稱爲過渡層,它們進行卷積和池化。我們的實驗中使用的過渡層包括批處理歸一化層和1×1卷積層,然後是2×2平均池化層。
在這裏插入圖片描述
增長率。如果每個函數H1產生k個特徵圖,則得出第l層具有k 0 + k×(1-1)個輸入特徵圖,其中k 0是輸入層中的通道數。 DenseNet與現有網絡體系結構之間的重要區別是DenseNet可以具有非常狹窄的層,例如k =12。我們將超參數k稱爲網絡的增長率。我們在第4節中表明,相對較小的增長率足以在我們測試的數據集上獲得最新的結果。對此的一種解釋是,每個層在其塊中都可以訪問所有前面的特徵圖,因此可以訪問網絡的“集體知識”。可以將特徵圖視爲網絡的全局狀態。每層將自己的k個特徵圖添加到此狀態。增長率決定每一層爲全球狀態貢獻多少新信息。寫入後的全局狀態可以在網絡中的任何位置進行訪問,並且與傳統的網絡體系結構不同,無需逐層複製它。

Bottleneck 層。儘管每個圖層僅生成k個輸出要素圖,但通常具有更多的輸入。在[37,11]中已經指出,可以在每個3×3卷積之前引入1×1卷積作爲Bottleneck 層,以減少輸入特徵圖的數量,從而提高計算效率。我們發現此設計對DenseNet特別有效,並且我們將具有此類Bottleneck 層的網絡稱爲Hl的BN-ReLU-Conv(1×1)-BN-ReLU Conv(3×3)版本,稱爲DenseNet -B在我們的實驗中,我們讓每個1×1卷積產生4k個特徵圖。

壓縮。爲了進一步提高模型的緊湊性,我們可以減少過渡層的特徵圖數量。如果密集塊包含m個特徵圖,則讓以下過渡層生成bθmc輸出特徵圖,其中0 <θ≤1稱爲壓縮因子。當θ= 1時,跨過渡層的特徵圖數量保持不變。我們將θ<1的DenseNet稱爲DenseNet-C,並在實驗中將θ設置爲0.5。當同時使用Bottleneck <過渡層和θ<1時,我們將模型稱爲DenseNet-BC。

實施細節。在除ImageNet之外的所有數據集上,我們的實驗中使用的DenseNet具有三個密集塊,每個密集塊具有相等的層數。在進入第一個密集塊之前,對輸入圖像執行16個卷積(或DenseNet-BC增長率的兩倍)的卷積。對於內核大小爲3×3的卷積層,輸入的每一側都用一個像素補零,以保持特徵圖的大小固定。我們使用1×1卷積,然後使用2×2平均池作爲兩個連續密集塊之間的過渡層。在最後一個密集塊的末尾,執行全局平均池化,然後附加softmax分類器。三個密集塊中的特徵圖大小分別爲32×32、16×16和8×8。我們使用配置爲{L = 40,k = 12},{L = 100,k = 12}和{L = 100,k = 24}的基本DenseNet結構進行實驗。對於DenseNet-BC,評估配置爲{L = 100,k = 12},{L = 250,k = 24}和{L = 190,k = 40}的網絡。

在ImageNet上的實驗中,我們使用DenseNet-BC結構在224×224個輸入圖像上具有4個密集塊。初始卷積層包括2k卷積,大小爲7×7,步幅爲2;其他所有圖層的要素貼圖數量也取自設置k。表1顯示了我們在ImageNet上使用的確切網絡配置。

4.Experiments

我們以經驗的方式展示了DenseNet在多個基準數據集上的有效性,並與最新的體系結構(尤其是ResNet及其變體)進行了比較。
在這裏插入圖片描述

4.1. Datasets**

CIFAR。兩個CIFAR數據集[15]由32×32像素的彩色自然圖像組成。 CIFAR-10(C10)包含10個類別的圖像和100個類別的CIFAR-100(C100)的圖像。訓練集和測試集分別包含50,000張和10,000張圖像,我們保留5,000張訓練圖像作爲驗證集。我們採用了標準的數據擴充方案(鏡像/移位),該方案廣泛用於這兩個數據集[11、13、17、22、28、20、32、34]。我們在數據集名稱(例如C10 +)末尾用“ +”號表示此數據擴充方案。對於預處理,我們使用通道平均值和標準偏差對數據進行歸一化。對於最終運行,我們使用所有50,000張訓練圖像,並在訓練結束時報告最終測試錯誤。

SVHN。街景門牌號碼(SVHN)數據集[24]包含32×32彩色數字圖像。訓練集中有73,257張圖像,測試集中有26,032張圖像,而其他訓練有531,131張圖像。按照常規做法[7、13、20、22、30],我們使用所有訓練數據而沒有任何數據擴充,並從訓練集中分割出包含6,000張圖像的驗證集。我們選擇訓練期間驗證誤差最小的模型,並報告測試誤差。我們遵循[42]並將像素值除以255,因此它們在[0,1]範圍內。

ImageNet。 ILSVRC 2012分類數據集[2]包含來自1,000個類別的120萬張用於訓練的圖像和50,000張用於驗證的圖像。我們採用與[8、11、12]中相同的數據增強方案來訓練圖像,並在測試時應用大小爲224×224的單作物或10作物。在[11,12,13]之後,我們報告了驗證集上的分類錯誤。

4.2. Training

在這裏插入圖片描述
所有網絡均使用隨機梯度下降(SGD)進行訓練。在CIFAR和SVHN上,我們分別使用批量大小64訓練300和40個紀元。初始學習率設置爲0.1,然後按訓練時期總數的50%和75%除以10。在ImageNet上,我們訓練90個時期的模型,批處理大小爲256。學習率最初設置爲0.1,然後在時期30和60降低10倍。請注意,天真的DenseNet實現可能會導致內存效率低下。爲了減少GPU上的內存消耗,請參考我們有關DenseNets的內存高效實現的技術報告[26]。

遵循[8],我們使用10 -4的 weight decay權重衰減和0.9的momentum[35],而沒有衰減。我們採用[10]引入的權重初始化。對於沒有數據增強的三個數據集,即C10,C100和SVHN,我們在每個卷積層(第一個卷積層除外)之後添加一個丟失層[33],並將丟失率設置爲0.2。對於每個任務和模型設置,僅對測試錯誤進行一次評估。

6.Conclusion

我們提出了一種新的卷積網絡體系結構,我們稱之爲密集卷積網絡(DenseNet)。它在任何兩個具有相同要素地圖大小的圖層之間引入直接連接。我們證明了DenseNets自然可以擴展到數百個層,而沒有任何優化困難。在我們的實驗中,DenseNets傾向於隨着參數數量的增加而不斷提高精度,而沒有任何性能下降或過度擬合的跡象。在多種設置下,它可以在多個競爭激烈的數據集上獲得最先進的結果;此外,DenseNets需要更少的參數和更少的計算來實現最先進的性能。因爲我們採用了針對殘差網絡優化的超參數設置在我們的研究中,我們相信可以通過更詳細地調整超參數和學習率計劃來獲得DenseNets準確性的進一步提高。

遵循簡單的連接規則,DenseNets自然地集成了身份映射,深度監控和多樣化深度的屬性。它們允許在整個網絡中重複使用功能,因此可以學習更緊湊的模型,並且根據我們的實驗,可以更精確地學習模型。由於其緊湊的內部表示形式和減少的特徵冗餘,DenseNets可能是用於基於卷積特徵(例如[4、5])的各種計算機視覺任務的良好特徵提取器。我們計劃在以後的工作中使用DenseNets研究這種功能轉移。

致謝。 NSF III-1618134,III-1526012,IIS-1149882,海軍研究補助金辦公室N00014-17-1-2175和比爾和梅琳達·蓋茨基金會在某種程度上爲作者提供了支持。 GH得到中國博士後理事會國際博士後交流獎學金計劃(No.20150015)的支持。 ZL得到了中國贈款國家基礎研究計劃2011CBA00300、2011CBA00301,NSFC 61361136003的支持。我們也感謝Daniel Sedra,Geoff Pleiss和Yu Sun進行了許多有見地的討論。

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