ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks
paper:http://xxx.itp.ac.cn/pdf/1908.03930.pdf
code:mirrors / DingXiaoH / acnet · GitCode
摘要:
提出了非對稱卷積塊(ACB),一種架構中立的結構作為CNN構建塊,它使用一維非對稱卷積來增強平方卷積核。對于現成的體系結構,我們用ACB替換標準的方形核卷積層,以構造一個非對稱卷積網絡(ACNet),可以對其進行訓練以達到更高的精度。
在本文中,我們提出了非對稱卷積塊(ACB),這是一種創新的構造塊,用方形核取代標準卷積層
優點:1)沒有引入超參數,因此無需仔細調整即可與不同的體系結構組合;2) 在PyTorch和Tensorflow等主流CNN框架上實現起來很簡單;3) 與原始架構相比,不需要額外的推理時間和計算負擔。
1 非對稱卷積
1.1構想
在現代CNN體系結構中,批量規范化被廣泛采用,以減少過度擬合并加快訓練過程。通常情況下,批量標準化層之后通常會進行線性縮放變換,以增強表示能力。
1.2利用卷積的可加性
?試圖以一種方式使用非對稱卷積,即它們可以等效地融合到標準的平方核層中,這樣就不會引入額外的推理時間計算負擔。我們注意到卷積的一個有用性質:如果幾個大小兼容的2D核以相同的步幅在相同的輸入上運行,以產生相同分辨率的輸出,并將它們的輸出相加,我們可以將這些核在相應的位置相加,以獲得將產生相同輸出的等效核。
?I為矩陣;K(1)和K(2)是兩個尺寸兼容的2D內核;⊕是在相應位置上按元素添加內核參數。注意,I可能需要適當地修剪或填充,這意味著我們可以將較小的內核“補丁”到較大的內核上。
?通過研究滑動窗口形式的卷積計算,可以很容易地驗證這一點。對于具有F(j)核的特定濾波器,在輸出通道o:,:,j中心點y
?1.3ACB用于免費推理時間的改進
在本文中,我們主要關注在現代CNN體系結構中大量使用的3×3協同進化。給定一個體系結構,我們通過簡單地將每個3×3層(以及下面的批處理規范化層,如果有的話)替換為一個ACB來構建一個ACNet,該ACB由三個分別具有3×3、1×3和3×1內核大小的并行層組成。與標準CNN中的常見做法類似,這三個層中的每一層都會進行批量標準化,這被稱為一個分支,三個分支的輸出匯總為ACB的輸出。請注意,我們可以使用與原始模型相同的配置來訓練ACNet,而無需調整任何額外的超參數。我們可以獲得一個更強大的網絡,與正常訓練的網絡相比,它不需要額外的計算。這種轉換通過兩個步驟實現,即BN融合和分支融合。
?BN聚變:卷積的均勻性允許以下批量標準化和線性縮放變換以附加偏差等效地融合到卷積層中。
分支融合:我們通過將不對稱核添加到方形核的相應位置,將三個BN融合分支合并到一個標準卷積層中。在實踐中,這種轉換是通過構建原始結構的網絡并使用融合權重進行初始化來實現的,因此,我們可以以與原始結構相同的計算預算生成與ACNet相同的輸出。
?最后得到:
?值得注意的是,盡管ACB可以等價地轉換為標準層,但這種等價性僅在推理時成立,因為訓練動態不同,因此會產生不同的性能。訓練過程的不等價性是由于核權重的隨機初始化,以及它們參與的不同計算流產生的梯度。
總結
以上是生活随笔為你收集整理的ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何获取googletest测试套件
- 下一篇: 今日早报 每日精选12条新闻简讯 每天一