帶你讀論文系列之計算機視覺–DenseNet
情若能自控,我定會按捺住我那顆吃貨的心。
閑談
今天聽了師兄申請博士的經驗。第一是感覺曆程很心累,壓力也很大;二是成功後很喜悅;三是成果很重要,其次是關系,努力和運氣。漫長的時間等待與艱辛的的經曆。對于現在的我來說,更多的是腳踏實地打好基礎,不應該過于急于求成,慢慢來會更快。在一次次的選擇後,我需要做到的就是減少自己的後悔。也許每一次的選擇并不完美,也有利弊的取舍,收拾好心情又要重新出發。明天太陽🌞升起,又是美好的一天⛽️。
引言
論文:Densely Connected Convolutional Networks
代碼
本文是重新思考認識short path和feature reuse的意義,引入稠密連接配接思想。
DenseNet在ResNet的基礎上(回顧ResNet🐂,ResNet 經典!!!),進一步擴充網絡連接配接,對于網絡的任意一層,該層前面所有層的feature map都是這層的輸入,該層的feature map是後面所有層的輸入。
摘要:
- 殘差連接配接使CNN更深、更強、更高效;
- 本文提出DenseNet,特點是前層作為後面所有層的連接配接;
- 通常L層有L個連接配接,DenseNet有L*(L+1)/2 ;
- 靠前的層作為靠後所有層的輸入;
- DenseNet優點減輕梯度消失,增強特征傳播,加強特征複用,減少權重參數;
- 在4個資料集上進行驗證,表現SOTA。
如果将接近輸入和輸出的層之間短接,卷積神經網絡可以更深、精度更高且高效。最後提出了密集卷積網絡(DenseNet),它的每一層在前向回報模式中都和後面的層有連接配接,與L層傳統卷積神經網絡有L個連接配接不同,DenseNet中每個層都和其之後的層有連接配接,是以L層的DenseNet有 L(L+1)/2 個連接配接關系。
在四個目辨別别的基準測試集(CIFAR-10、CIFAR-100、SVHN 和 ImageNet)上評估了我們的結構,可以發現DenseNet在減少計算量的同時取得了更好的表現。
論文詳情
稠密連接配接(Dense connectivity)
說明了生成的DenseNet的布局。在每一個block中,每一層的輸出均會直接連接配接到後面所有層的輸入。為了確定網絡中各層之間的最大資訊流,我們将所有層(具有比對的特征圖大小)直接互相連接配接。為了保持前饋性質,每一層從所有前面的層獲得額外的輸入,并将它自己的特征圖傳遞給所有後續層。
ResNets和Highway Networks通過身份連接配接将信号從一層旁路到下一層。随機深度通過在訓練期間随機删除層來縮短ResNet,以允許更好的資訊和梯度流。
為了確定網絡中各層之間的最大資訊流,我們将所有層(具有比對的特征圖大小)直接互相連接配接。為了保持前饋性質,每一層從所有前面的層獲得額外的輸入,并将它自己的特征圖傳遞給所有後續層。
最重要的是,與ResNet不同的是,我們在将特征傳遞到一個層之前,從不通過求和的方式将它們結合起來;相反,我們通過串聯的方式來結合特征。
- 稠密連接配接可用更少參數獲得更多特征圖;
- 傳統NN的層可看成一個狀态,NN對狀态進行修改或保留;
- ResNet通過恒等映射保留資訊;
- ResNet中很多特征圖作用很小;
- ResNet的狀态(特征圖)就像RNN網絡一樣;
- DenseNet不進行特征相加以及資訊保留;
- DenseNet網絡很窄。
Highway Network 與ResNet的成功均得益于By passing paths。
- 除了加深網絡,還有一種加寬的方法來提升網絡;
- 如GoogLenet ,加寬的ResNet。
在深度足夠的情況下,ResNet可以提高其性能。FractalNet也在幾個資料集上使用廣泛的網絡結構取得了有競争力的結果。
- DenseNet不同于其他網絡去增加寬度和深度;
- DenseNet利用特征複用,得到易訓練且高效的網絡。
DenseNet不是從極深或極廣的架構中擷取表征能力,而是通過特征重用來發揮網絡的潛力,産生易于訓練且參數效率高的濃縮模型。将不同層學到的特征圖串聯起來,增加了後續層輸入的變化,提高了效率。這構成了DenseNet 和ResNet的一個主要差別。Inception networks也是将不同層的特征連接配接起來,與之相比,DenseNet更簡單、更有效。
還有其他值得注意的網絡結構創新,它們産生了有競争力的結果。網絡中的網絡(NIN)結構将微型多層感覺器納入卷積層的過濾器,以提取更複雜的特征。在
Deeply Supervised Net-work(DSN)中,内部各層直接受到輔助分類器的監督,這可以加強早期各層所接收的梯度。梯形網絡在自動編碼器中引入了橫向連接配接,在半監督學習任務中産生了令人印象深刻的精确度。深度融合網(DFN)被提出,通過結合不同基礎網絡的中間層來改善資訊流。
- shortcut connection的更容易優化;
- 缺點是求和的形式會阻礙(impede)資訊的流通;
- CNN需要下采樣但Denseblock中分辨率是不會變的
- 在block之間進行特征圖分辨率下降
- 利用transition layer來執行
- BN+11conv+22 池化
-
若每層計算後得到k個特征圖,那麼第l 層會有k0+k*(l-1)個特征
圖,是以k不能太大;
- DenseNet的每層就非常的窄,非常的薄,例如k=12;
- 這裡的k就是超參數Growth Rat;
- k越小,結果越好;
- 從state的角度講解DenseNet;
這篇文章又一個比較清晰的bottleneck解釋。
每個3×3卷積之前引入1×1卷積作為bottleneck,以減少輸入特征圖的數量,進而提高計算效率。
為了進一步提高模型的緊湊性,我們可以減少過渡層的特征圖的數量。如果一個密集塊包含m個特征圖,我們讓下面的過渡層生成bθmc輸出特征圖,其中0<θ≤1稱為壓縮因子。當θ=1時,跨過渡層的特征圖數量保持不變。我們将θ<1的DenseNet稱為DenseNet-C,我們在實驗中設定θ=0.5。當同時使用θ<1的Bottleneck和過渡層時,我們将我們的模型稱為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上的實驗中,我們在224×224 輸入圖像上使用具有4個密集塊的DenseNet-BC結構。初始卷積層包括2k個大小為7×7、步幅為2的卷積;所有其他層中特征圖的數量也來自設定k。我們在ImageNet上使用的确切網絡配置如下圖所示:
DenseNet-121是指網絡總共有121層:(6+12+24+16)*2 + 3(transition layer) + 1(7x7 Conv) + 1(Classification layer) = 121。
過渡層;
1×1卷積,然後是2×2平均池化。
實驗
L表示網絡深度,k為growth rate。藍色字型表示最優結果,+表示對原資料集進行data augmentation。DenseNet相比ResNet取得更低的錯誤率,且參數更少。
讨論DenseNet的優點
結論:加B,加C更省參數。
同樣精度時,densenet-bc僅用1/3參數。
同樣精度,相差十幾倍的參數量。
将輸入進行連接配接的直接結果是,DenseNets每一層學到的特征圖都可以被以後的任一層利用。該方式有助于網絡特征的重複利用,也是以得到了更簡化的模型。DenseNet-BC僅僅用了大概ResNets 1/3的參數量就獲得了相近的準确率
三個dense block的熱度圖如下圖所示:
在一個訓練有素的密集網絡中,卷積層的平均絕對濾波權重。像素(s)的顔色編碼了連接配接卷積層和`密集區的權重的平均水準(按輸入特征圖的數量歸一化)。由黑色矩形突出的三列對應于兩個過渡層和分類層。第一行是連接配接到密集塊輸入層的權重。
可以得出以下結論
- 在同一個block中,所有層都将它的權重傳遞給其他層作為輸入。這表明早期層提取的特征可以被同一個dense block下深層所利用;
- 過渡層的權重也可以傳遞給之前dense block的所有層,也就是說DenseNet的資訊可以以很少的間接方式從第一層流向最後一層;
- 第二個和第三個dense block内的所有層配置設定最少的權重給過渡層的輸出,表明過渡層輸出很多備援特征。這和DenseNet-BC強大的結果有關系;
- 盡管最後的分類器也使用通過整個dense block的權重,但似乎更關注最後的特征圖,表明網絡的最後也會産生一些高層次的特征。
總結
我們提出了一種新的卷積網絡架構,我們稱之為密集卷積網絡(DenseNet )。它引入了具有相同特征圖大小的任意兩層之間的直接連接配接。我們展示了DenseNet。自然地擴充到數百層,同時沒有表現出優化困難。
随着參數數量的增加,DenseNets傾向于在準确度上持續提高,而沒有任何性能下降或過度拟合的迹象。在多個設定下,它在幾個競争激烈的資料集上取得了最先進的結果。此外,DenseNets需要更少的參數和更少的計算來實作最先進的性能。因為在我們的研究中我們采用了針對殘差網絡優化的超參數設定,我們相信可以通過更詳細地調整超參數和學習率計劃來進一步提高
DenseNets的準确性。
在遵循簡單的連接配接規則的同時,DenseNets自然地內建了身份映射、深度監督和多樣化深度的特性。它們允許在整個網絡中重複使用特征,是以可以學習更緊湊,更準确的模型。由于其緊湊的内部表示和減少的特征備援,DenseNets 可能是各種基于卷積特征的計算機視覺任務的良好特征提取器。在未來的工作中用DenseNets 研究這種特征轉移。