2018 https://arxiv.org/pdf/1608.06993.pdf
參考博客:
https://towardsdatascience.com/review-densenet-image-classification-b6631a8ef803
跳躍拼接
核心:特征復(fù)用。
DenseNet的跳躍連接和殘差連接看起來很相似,一個(gè)相加另一個(gè)拼接,但是結(jié)果差別還是很大的,resnet是淺層特征通過支路和深層特征逐個(gè)單元相加融合,而Dense連接直接將淺層和深層的特征拼在一起形成一個(gè)層數(shù)更多的特征矩陣。在之前的resnet和highway network的對(duì)比中我們發(fā)現(xiàn)保持支路暢通無阻似乎很關(guān)鍵,DenseNet比起ResNet來也不用相加,干脆就直接拿來用了。

Dense連接

[圖片上傳失敗...(image-c2ada-1618654382170)]
生長率Growth rate:k是每次拼接增加的特征圖層數(shù),我們可以把特征圖矩陣看成神經(jīng)網(wǎng)絡(luò)的一個(gè)全局狀態(tài),每一層都會(huì)將自己輸出的k張?zhí)卣鲌D添加到這個(gè)狀態(tài)當(dāng)中。
雖然每一層的層數(shù)不多,到了第L層就累計(jì)了一共K_0+k*(L-1)張?zhí)卣鲌D。在每一層的特征提取前進(jìn)行通道壓縮可以減少計(jì)算量,采取這個(gè)操作的網(wǎng)絡(luò)稱為DenseNet-B。另外還可以在Transition Layer同樣使用1*1卷積核,進(jìn)行進(jìn)一步壓縮, 用 來控制壓縮的程度.
的網(wǎng)絡(luò)稱為 DenseNet-C,原文使用
.
[站外圖片上傳中...(image-9fcfc-1618654382170)]
[站外圖片上傳中...(image-efbd43-1618654382170)]
雖然這些殘差模塊中的連線很多看起來很夸張,但是它們代表的操作只是一個(gè)空間上的拼接,所以Densenet相比傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)可訓(xùn)練參數(shù)量更少,只是比較占內(nèi)存。
DenseNet 整體網(wǎng)絡(luò)
[站外圖片上傳中...(image-5c5df9-1618654382170)]


features = [init_features]
for name, layer in self.items():
new_features = layer(features)
features.append(new_features)
return torch.cat(features, 1)
為什么效果好?
每一層通過短接接收到了額外的監(jiān)督信息,是一種隱式的deep Supervision,深度監(jiān)督簡單理解就是中間層可以得到直接的監(jiān)督信息去提取特征。
特征復(fù)用,使淺層的信息(更接近原圖)能直接被深層使用,dense 連接的結(jié)構(gòu)其實(shí)同時(shí)繼承了resnet的恒等映射和inception系列分支卷積再拼接的特點(diǎn),最終使得在幾百層的范圍內(nèi),DenseNet能持續(xù)獲得更好的表現(xiàn),沒有發(fā)生表現(xiàn)退化或者過擬合的現(xiàn)象。