密集卷積網(wǎng)絡(luò)(Densenet)論文閱讀筆記
- 作者Zhuang Liu(個(gè)人主頁:https://liuzhuang13.github.io/)
- 論文的下載地址: https://arxiv.org/pdf/1608.06993.pdf
- 源碼地址:https://github.com/liuzhuang13/DenseNet
- caffe模型:https://github.com/liuzhuang13/DenseNetCaffe
- 論文翻譯:http://blog.csdn.net/yaoqi_isee/article/details/75949372
論文思路和方法
最近的一些卷積神經(jīng)網(wǎng)絡(luò)都證實(shí)了在網(wǎng)絡(luò)當(dāng)中加入short connection能夠讓網(wǎng)絡(luò)更深、更準(zhǔn)確、更高效诀紊,
另一方面鳄炉,最近的一些resnet的變種往往可以用更淺層的模型達(dá)到和深層的模型差不多的性能斥难,這些充分說明了現(xiàn)有的卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到的很多特征都是冗余的座享。
作者的想法是充分利用skip connection,設(shè)計(jì)一個(gè)dense convolutional network苞也,讓每一個(gè)層都接受它前面所有層的輸出螺男,這樣的話棒厘,對(duì)于普通的神經(jīng)網(wǎng)絡(luò),L層一共有L個(gè)connection.但是對(duì)于densely convolutional network下隧,L層一共有L(L-1) / 2個(gè)connection奢人。
亮點(diǎn)和創(chuàng)新點(diǎn)
Densenet的四大優(yōu)點(diǎn):
- 緩解梯度消失問題
- 增強(qiáng)特征傳播
- 促進(jìn)特征再用
- 大大減少了參數(shù)的數(shù)量
網(wǎng)絡(luò)架構(gòu)分析
為了確保網(wǎng)絡(luò)中各層之間的最大信息流,在Dense block中,作者直接將所有層(具有匹配的特征映射大邢骸)連接起來何乎。為了保留前向傳播的特性,每個(gè)層從前面的所有層獲得附加輸入土辩,并將其自身的特征映射傳遞到所有后續(xù)層支救。Dense Block結(jié)構(gòu)示意圖如下:
以上介紹的是densenet結(jié)構(gòu)中的一個(gè)DenseBlock例子. dnesenet的總體結(jié)構(gòu)圖如下:
上圖中的dense block 結(jié)構(gòu)即是[5層的DenseBlock結(jié)構(gòu)示意圖]對(duì)應(yīng)的內(nèi)容. 由上圖可知,此圖結(jié)構(gòu)中包含三個(gè)DenseBlock.
要詳細(xì)了解densenet網(wǎng)絡(luò)內(nèi)部的技術(shù)細(xì)節(jié),小編推薦一篇博客文章,里面詳細(xì)講解了densenet的技術(shù)細(xì)節(jié).
DenseBlock細(xì)節(jié)
DenseBlock 輸出: xl=Hl([x0,x1, ..., xl-1]).
其中,xl代表DenseBlock中第l層輸出拷淘,x0 ~x l-1代表前面所有層的輸出.因此各墨,第l層的輸入主要由x0 ~x l-1層的輸出組成.其中,第l層的輸入特征通道數(shù)量為:k0+k*(l-1),k代表growth rate启涯,其代表前l(fā)-1層引出k個(gè)特征通道進(jìn)入l層.
Hl()函數(shù)主要由以下層級(jí)組成:BN+ReLU+Conv(1*1)+BN+ReLU+Conv(3*3).其中贬堵,Conv(1*1)層級(jí)的引入作者稱之為Bottleneck Layers, 其作用是為了減少輸入的通道數(shù)量.一般Conv(1*1)卷積后的大小為4k(k為growth rate).
所以恃轩,DenseBlock結(jié)構(gòu)中主要有兩個(gè)超參數(shù),growth rate和Bottleneck扁瓢,將這兩個(gè)參數(shù)理解清楚基本掌握了DenseBlock結(jié)構(gòu).
Transition Layers
作者在每?jī)蓚€(gè)DenseBlock結(jié)構(gòu)之間引入了Transition Layers概念.為了進(jìn)一步減少參數(shù)量详恼,作者引入了一個(gè)Compression概念补君,用參數(shù)theta表示.Transition Layers主要由1*1卷積和3*3pooling層組成.Compression主要用1*1卷積降低DenseBlock的輸出通道.因此引几,Compression可以進(jìn)一步減少參數(shù)總量,達(dá)到密集網(wǎng)絡(luò)的效果.