《Deep Layer Aggregation》論文筆記
一個CNN是由多個conv block組成,最簡單的conv block由conv層+非線性層組成。其他的conv block有如下幾種(不完全枚舉):
上圖中方框里的標註,第一個表示輸出通道,中間表示卷積核尺寸,最後表示輸入通道。(a)和(b)來自何愷明的ResNet,(c)來自CVPR2017的文章《Aggregated residual transformations
for deep neural networks》。
連續的幾個conv block可以組成一個subnetwork。要怎麼來劃分subnetwork?普遍的做法是按解析度來劃分,如ResNet101的res1~res5 block。
這些conv block一個接著一個,只在最後得到prob map。那麼前面的block或者subnetwork的輸出特徵呢?如果能利用上,那豈不是錦上添花?當然,在這篇論文之前就已經有各類研究在做各個層的融合了,但都是「shallow aggregation」,如下圖(b)。
(b)比較常見的,逐級上采還原,如U-Net。但是,(b)這種結構,梯度反向傳播經過一個聚合點便能傳回到第一個subnetwork,所以稱為「shallow aggregation」。
論文提出「deep layer aggregation」(DLA),有兩種:(c)iterative deep aggregation(IDA)和(d)hierarchical deep aggregation(HDA)。
IDA如(c)所示,逐級融合各個subnetwork的特徵的方向和(b)是相反的,先從靠近輸入的subnetwork引出特徵,再逐步聚合深層的特徵。這樣,梯度反向傳導時再也不能僅經過一個聚合點了。上圖(b)相當於對淺層加了監督,不利於優化,DLA就避免了此問題。
IDA是針對subnetwork的,而HDA則是針對conv block。(d)每個block只接收上一個block傳過來的feature,為HDA的基本結構;(e)block有融合前面block的feature,為HDA的變體;(f)也是一種變體,但減少了聚合點。
上文提到了很多次聚合點,在論文里它是怎樣的一種結構?如下:
(b)普通的三輸入的聚合點;(c)引入了殘差結構,為了更好的進行梯度傳導。
作者在分類和分割兩類任務做了驗證實驗。從結果上來看,效果還是比較好的。
推薦閱讀:
※圖像的信噪比是個什麼概念?怎麼算的?
※對圖像進行顏色識別時,如何解決攝像頭偏色的問題?
※圖普科技是一家怎樣的公司?
※matlab對圖像進行濾波,濾波器應該是個幾乘幾的矩陣?
※有沒有一鍵式的、傻瓜式的深度學習工具?如果有,是哪個?