NIPS 2018 Compact Generalized Non-local Network
論文在:Compact Generalized Non-local Network
pytorch code: KaiyuYue/cgnl-network.pytorch
第一:背景
不論各種任務(圖像分類,視頻分類,物體檢測,分割等),如何獲取更強的底層表達是一個關鍵。神經網路大多數結構都是不斷重複相同的單元模塊,所以我將大多數工作分為:構建模塊間的關係(各種連接等,一般解釋都是scale,感受野等),還有一塊就是設計一些新的模塊從而增強表達(一般比如attention等)。
今天主要討論第二點,就是如何設計一個模塊增強現有的模塊表達能力。這方面有很多優秀的工作,如SEnet,抽取卷積的一些統計量(S)在作用回去(E);如non-local模塊,先模擬得到一個attention map, 在做特徵選擇; 如bilinear , 直接沿著特徵空間方向(channel方向)進行高階拓展; 從演算法角度來看,就是將CHW喂進這些模塊,輸出還是CHW。這些模塊成功之處就是高效的實現CHW不同角度的信息流動(我們可以稱為correlation)
那我們有木有更好的框架,能把這些模塊都歸納在一起呢?或者說他們都是某種情況下的特列?
第二:CGNL
建模: 實際要解決上面那個問題也比較簡單,所有的信息都在CHW上,我們演算法直接把CHW拉成一個向量,所以我們只要在這個向量中發生作用就行。
以non-local來說, 他沒有考慮到C維上的關係, 這個卻在SE中顯示的很重要。所以我們這個模塊也叫CGNL。實際這個表達和NL已經沒有關係了。
解模: 實現中有一個需要說一下, 那就是為啥有compact?因為計算量太大了,用了一些現成的演算法進行加速。具體這些演算法可以看我們的paper和code。
實驗和代碼等待大家去看吧,歡迎吐槽。
第三:總結
1, 簡單拓展了目前的一些模塊。
2,實現上,實現了存在一些技巧。
第四:不足或者不妥之處或未來工作:
1,可解釋: 這種操作本質上沒有一個很好的物理意義解釋
2,演算法: CHW維數太高,我們急需一個好的展開高階演算法。(降維,shuffle, group都不能解決本質問題)
3,優化:訓練上,發現必須得ft。說明這個模塊或者這種高階對優化演算法還不夠友好。
上一篇ECCV主要做一些where的嘗試,這篇主要在嘗試what的問題,實際還有很多問題沒有解決,期待你一塊來解決(比如優化的問題,可解釋問題,不平衡問題,小樣本問題等)。
大家有問題可以m_sunming@163.com , 常年收簡歷(實習,校招和社招)。
推薦閱讀: