0. 寫作目的
好記性不如爛筆頭。
1. 主要思路
目前的self-attention需要生成 N * N 的affinity 矩陣(其中N = H * W), 作者提出存在一種更有效的方法?
因此作者提出了 Criss-Cross attention,使用“十字架” 的結構來代替 所有的位置(感覺使用“十字架”的paper很多,比如GCN使用十字街的conv,SPNet使用“十字架”的Pooling)。然後使用兩次 criss-cross attention,這樣可以綜合全部的空間信息。
2. 模型具體細節
reduction 先將使用3*3conv將channel降低爲輸入channel 的1/4.
然後加入在兩層 Criss-cross Attention Module之後,然後使用3*3conv進行refine一下得到H‘’, 然後與X 進行concat,
然後使用3*3conv + BN + dropuout + 1*1Conv輸出結果(這裏輸出的是下采樣的結果)。
作者這裏也使用了輔助loss, 在layer3 加入了輔助loss,權重爲0.4。
criss-cross attention module細節:
其中,Q, K 1*1得到的channel 爲輸出channel的1/8,V 的channel與輸入channel相同。
3. 實驗結果
注:文中圖片來自於paper。
There may be some mistakes in this blog. So, any suggestions and comments are welcome!
[Reference]
1. paper: https://arxiv.org/pdf/1811.11721.pdf
2. code: https://github.com/speedinghzl/CCNet