[論文理解] How much position information do convolutional neural network encode?


How much position information do convolutional neural network encode?

Intro

文章是ICML2020的一個工作,探究了CNN到底有沒有編碼位置信息,這些位置信息在哪些神經元中被編碼、這些位置信息又是如何被暴露給神經網絡學習的。文章通過大量實驗表明,CNN不僅可以編碼位置信息,而且越深的層所包含的位置信息越多(而往往越深的層解釋性越差,淺層學習到的形狀、邊緣等比較容易解釋),而位置信息是通過zero-padding透露的,顯然,圖像邊緣的zero-padding暗示了圖像的邊界,這就讓具有平移不變性的神經網絡不僅能利用不變性對一張圖中不同位置的物體進行分類,還能利用zero-padding帶來的位置信息,編碼物體所在圖像中的位置,而這一點在顯著性目標檢測和語義分割等任務中是非常有用的。

Position information in CNNs

首先通過下面一張圖說明問題是怎么來的:

上圖是三組顯顯著性區域的heatmap可視化結果,在每一組實驗中,如果給定左邊的圖,顯著性區域是偏中間的,而把圖片右邊crop掉(每組的右邊的圖),發現顯著性區域有了變換,shift到了對應crop圖的中心。

顯著性區域一般都是在圖像中間的,所以可以簡單得出一個結論,CNN學習到了哪里是輸入圖像的中間,所以將顯著性區域的預測結果向中間shift。

那么問題來了,CNN是如何學習到位置信息的呢?

Position Encoding Module

為了探究CNN對位置信息的編碼,文章將backbone提取的特征輸入到一個結構中,利用這個結構來預測位置信息。

以VGG為例,作者分別提取VGG的五層特征,插值到同一size后concat起來,然后接幾層卷積結構,映射到一張能表示位置信息的gt,gt一會說。整個網絡結構稱為PosENet,其中backbone可以為任意特征提取的網絡,甚至可以沒有。大致的結構如圖所示:

對於gt,是作者生成的gradient-like mask。注意這個like,就是梯度形狀的圖片,這里不是指back propagation回傳的梯度,就理解為圖像梯度就行。

具體定義了水平方向梯度形狀、豎直方向梯度形狀、高斯形狀、水平方向兩條杠形狀的和豎直方向兩條杠形狀的。

具體的直接看下圖:

這些圖像作為gt是因為他們是和輸入圖像同size的,所以每個map值都對應了一個位置,為了方便可視化才這樣的。因此,這些圖可以作為隨機label,如果CNN並沒有編碼位置信息,那么想要映射到這樣的圖是不可能的,因為輸入的圖片和label是完全不相關的(除非輸入的圖像包含了位置信息)。這里雖然和后面padding的實驗無關,但是可以想象,如果沒有zero-padding,就沒有邊界暗示,相當於不知道坐標原點,因此想要映射到這樣圖是不可能的。

此外,作為輸入的圖像不僅有一般數據集中的自然圖像,還有純黑圖像、純白圖像、噪聲圖像等等。

對此,作者做了如圖所示的實驗:

其中最左邊一列是輸入,第二列是GT,第三列是直接沒有backbone接position encoding module,第四列用VGG backbone,第五列resnet backbone。其中backbone的參數都凍結,position encoding module都不padding。

第三列表明沒有backbone的pretrain權重,網絡無法通過輸入直接映射到gt(這是顯然,之后作者還做了給padding的,給了padding就可以接近gt了),第四、五列說明了pretrain的網絡輸出的特征中編碼了位置信息,這幫助了后面接的position encoding module預測到gt。

隨后作者探究了position encoding module層數對結果影響的實驗,結論是:層數越多結果越好,因為感受野更大了,利用到了更多位置信息編碼后的神經元。

接着探究了position encoding module的kernel size對結果影響,結論是:kernel size越大結果越好,原因同上,感受野更大了。

Where is the position information stored?

還有一個問題當看到那個網絡結構的時候我就在想,作者有沒有探究到底是哪些層的feature包含位置信息,如果都包含,哪些包含的更多呢?看到后面看到作者也對此做了實驗。

實驗過程就是對VGG網絡,如果只拿第一層特征映射到gt會怎樣,只拿第二層會怎樣,以此類推,然后評估mae和斯皮爾曼相關系數即可。

結論是,越深層的特征,其包含的位置信息更多,為了防止是神經元數量對結果造成的影響,作者把f4和f5的神經元數量設置成一樣的,然后實驗結果仍然是越深的位置信息越多。(由於網路越深,感受野越大,再次印證上面兩個實驗的結論)。

Where does position information come from

最后一個問題就是這些位置信息是從哪里學習到的呢?很容易就能想到是zero-padding為圖像提供了一層暗示,暗示了圖像的邊界。

於是可以做個簡單的實驗驗證。

每張圖對應描述如圖所示,可以看出來隨着pad數增加,可視化結果越接近gt。

在更多的實驗中,作者驗證了顯著性檢測和語義分割使用zero-padding和不適用zero-padding,結果表明用了zero-padding的在結果上更加優秀。

在不需要圖像位置的任務中作者並沒有做相關實驗,位置信息對於一個輸入只喊目標的分類問題也許沒有太大的幫助,知識添加了額外的無關信息,相當於添加噪聲,因此我感覺,如果是需要用到位置信息的任務,最好使用zero-padding,這顯然會使結果更好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM