《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對圖像進行濾波,濾波器應該是個幾乘幾的矩陣?
有沒有一鍵式的、傻瓜式的深度學習工具?如果有,是哪個?

TAG:人工智能 | 图像识别 |