2018 https://arxiv.org/pdf/1608.06993.pdf
參考博客:
https://towardsdatascience.com/review-densenet-image-classification-b6631a8ef803
跳躍拼接
核心:特征復(fù)用。
DenseNet的跳躍連接和殘差連接看起來很相似,一個相加另一個拼接领迈,但是結(jié)果差別還是很大的纵苛,resnet是淺層特征通過支路和深層特征逐個單元相加融合,而Dense連接直接將淺層和深層的特征拼在一起形成一個層數(shù)更多的特征矩陣。在之前的resnet和highway network的對比中我們發(fā)現(xiàn)保持支路暢通無阻似乎很關(guān)鍵,DenseNet比起ResNet來也不用相加,干脆就直接拿來用了枉阵。
Dense連接
[圖片上傳失敗...(image-c2ada-1618654382170)]
生長率Growth rate:k是每次拼接增加的特征圖層數(shù),我們可以把特征圖矩陣看成神經(jīng)網(wǎng)絡(luò)的一個全局狀態(tài)预茄,每一層都會將自己輸出的k張?zhí)卣鲌D添加到這個狀態(tài)當(dāng)中兴溜。
雖然每一層的層數(shù)不多,到了第L層就累計了一共K_0+k*(L-1)張?zhí)卣鲌D耻陕。在每一層的特征提取前進(jìn)行通道壓縮可以減少計算量拙徽,采取這個操作的網(wǎng)絡(luò)稱為DenseNet-B。另外還可以在Transition Layer同樣使用1*1卷積核诗宣,進(jìn)行進(jìn)一步壓縮膘怕, 用 來控制壓縮的程度.
的網(wǎng)絡(luò)稱為 DenseNet-C,原文使用
.
[站外圖片上傳中...(image-9fcfc-1618654382170)]
[站外圖片上傳中...(image-efbd43-1618654382170)]
雖然這些殘差模塊中的連線很多看起來很夸張召庞,但是它們代表的操作只是一個空間上的拼接岛心,所以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í)同時繼承了resnet的恒等映射和inception系列分支卷積再拼接的特點(diǎn)为朋,最終使得在幾百層的范圍內(nèi)慌核,DenseNet能持續(xù)獲得更好的表現(xiàn),沒有發(fā)生表現(xiàn)退化或者過擬合的現(xiàn)象央拖。