歡迎光臨
每天分享高質量文章

CMU & Facebook論文解讀 | 非區域性神經網絡(附代碼實現)

在碎片化閱讀充斥眼球的時代,越來越少的人會去關註每篇論文背後的探索和思考。

在這個欄目里,你會快速 get 每篇精選論文的亮點和痛點,時刻緊跟 AI 前沿成果。


點擊本文底部的「閱讀原文」即刻加入社區,查看更多最新論文推薦。

這是 PaperDaily 的第 41 篇文章

本期推薦的論文筆記來自 PaperWeekly 社區用戶 @Yadan本文受 NL-Means 在圖像去噪應用中的啟發,採用非區域性均值方法來處理區域性特征與全圖特征點的關係。這種非區域性神經網絡可以很方便地嵌入現有視覺模型中,提高圖像及視頻分類精度。

如果你對本文工作感興趣,點擊底部的閱讀原文即可查看原論文。

關於作者:羅雅丹,昆士蘭大學博士生,研究方向為計算機視覺。


■ 論文 | Non-local Neural Networks

■ 鏈接 | https://www.paperweekly.site/papers/1191

■ 原始碼 | https://github.com/AlexHex7/Non-local_pytorch

■ 原始碼 | https://github.com/titu1994/keras-non-local-nets

論文動機


“Non-local”直譯為“非區域性”。個人的理解是指特征提取時,當前輸入資料的特征計算要考慮其它輸入資料的信息。舉例來說,非區域性操作的關註點就是在於如何建立起圖像上兩個有一定距離的像素之間的聯繫,如何建立視頻里兩幀的聯繫,如何建立一段話中不同詞的聯繫。 


一個典型的 CNN 網絡是由一系列捲積操作累積起來的。對於使用在圖像上的 CNN,每個捲積操作只能捕捉到輸入資料的區域性信息。整個網絡通過區域性操作的逐步累積來獲得範圍較廣的信息提取。而 RNN 則是通過迴圈的方式處理序列輸入(如視頻每一幀圖像的時間序列或者圖片上一列像素的空間序列),從而融合非區域性的信息。 


這篇文章提出三點 CNN 和 RNN 在融合非區域性信息上的三個劣勢:1. 計算不高效;2. 優化更難;3. 非區域性特征的信息傳遞不夠靈活,功能不夠強大。當然,這也是因為 CNN 和 RNN 的初衷並不是專門來融合非區域性信息的。 


在這篇文章中,作者提出了一種非區域性模塊(non-local block,簡稱 NL block)的網絡結構,來幫助深度網絡更好地融合非區域性的信息。這對於一些問題是非常重要的。


方法


從使用在圖像去噪問題中的 non-local means [1] 方法出發,作者對 NL block 的抽象描述為:

以圖像為背景來說的話,i,j 是像素坐標,x,y 是輸入和輸出信息。j 的取值範圍是任意的坐標。C(x) 是一個歸一化常數。f(.) 是用來構建 i,j 點處信息關聯的二輸入函式。g(.) 是計算 j 點信息對 i 點影響的單輸入函式。 


這樣的非區域性操作其實很常見,從廣義的角度來講可以從多個已有的研究方向來理解這個操作。


首先這是從圖像去噪中借鑒來的模型。除此之外,如果 f(.) 函式輸出的是一個概率值,即 0~1 之間的數值,那麼這就是前段時間有所討論的 self-attention [2]。因為 (i,j) 二元坐標對取遍了所有情況,這個定義又很像 dense CRF [3],或者可以認為這也是一種圖模型。 


回到這篇文章中。作者對 f(.) 有很多不同選擇的定義方式。通過實驗選定了名為 Embedded Gaussain+Dot product 的方案。對 g(.) 的定義是一個簡單的線性函式。NL block 的輸出並沒有替代輸入,而是和原輸入相加,形成一個殘差結構(residual),得到 Zi。


其中 W 均為待學習的引數,可以將其視為 1×1 捲積的引數。若,那麼就是二階的 softmax,即 CRF。 

f(.) 中所做的點積不同於 style transfer 中的協方差或者 bilinear 操作。後兩者是把不同通道的特征圖兩兩內積,空間信息完全拋棄,得到的結果是通道數 x 通道數大小的協方差矩陣。f(.) 的操作是每個點的特征向量(通道個數的維度)進行內積,空間信息保留了下來,輸出還是 HxW 大小。 


整個 NL block 也可以從結構圖來理解:

圖中 T,H,W 代表輸入特征的維度。其中 T 是對於視頻資料的幀數,對於分割或檢測任務,T=1


這裡面作者還提到了一些小 trick 可以進一步壓縮計算量。比如 1×1 的捲積壓縮輸出通道數,形成一個瓶頸結構(bottleneck)。或者在 f(.) 對應的 1×1 捲積之後使用 pooling 來減小 H,W,即採樣一部分的 j ,而不是所有的 j 進行信息融合。 


可以看到,NL block 可以用作網絡設計中的一個補充結構插入到 CNN 中任意的一層之後。因為使用的是 1×1 捲積,因此對輸入特征沒有尺寸限制。同時整個操作計算量相對較小,額外引數量也很少。

實驗


作者在視頻分類、物體檢測、物體實體分割這些很需要非區域性信息關聯的任務上進行了實驗。

其中在 Kinetics 資料集上進行了 ablation study,來仔細研究 NL block 各個細節的有效性。結果表格不再贅述,得到的結論總結如下: 


NL block 中 f(.) 不同的定義方式各有千秋,但是為了更好化可視化使用 embedded Gaussian+dot product,即上文提到的公式所示的方法。 


NL block 放入網絡主幹的位置:放在淺層好,高層提升作用下降。


NL block 變深的作用:對於主幹網絡較淺的網絡,加深 NL block 能夠提升性能。對於較大較深的網絡,無論是增加 NL block 還是繼續加深主幹網絡的深度都很難再提升性能。


對視頻任務,NL block 同時作用於時空比單獨作用於時間域或空間域要好。與 C3D 比較:比 C3D 又快又好。


在 COCO 資料庫上的實驗結果如下所示。鑒於 NL block 結構的易用性,在平時設計網絡時可以考慮添加這樣的模塊。

參考文獻

[1] A. Buades, B. Coll, and J.-M. Morel. A non-local algorithm for image denoising. In Computer Vision and Pattern Recognition (CVPR), 2005. 

[2] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin. Attention is all you need. In Neural Information Processing Systems (NIPS), 2017. 

[3] P. Krahenbuhl and V. Koltun. Efficient inference in fully connected crfs with gaussian edge potentials. In Neural Information Processing Systems (NIPS), 2011.


本文由 AI 學術社區 PaperWeekly 精選推薦,社區目前已改寫自然語言處理、計算機視覺、人工智慧、機器學習、資料挖掘和信息檢索等研究方向,點擊「閱讀原文」即刻加入社區!

  我是彩蛋 


解鎖新功能:熱門職位推薦!

PaperWeekly小程式升級啦

今日arXiv√猜你喜歡√熱門職位

找全職找實習都不是問題

 

 解鎖方式 

1. 識別下方二維碼打開小程式

2. 用PaperWeekly社區賬號進行登陸

3. 登陸後即可解鎖所有功能

 職位發佈 

請添加小助手微信(pwbot01)進行咨詢

 

長按識別二維碼,使用小程式

*點擊閱讀原文即可註冊

           

關於PaperWeekly


PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。


▽ 點擊 | 閱讀原文 | 查看原論文

赞(0)

分享創造快樂