Dual Attention Network for Scene Segmentation

王柏鈞
機器學習圖鑑
Published in
Feb 4, 2023

--

[簡摘]自注意力機制用於影像分割

使用了位置注意力和通道注意力機制
  • 高階特徵中,每個特徵通道可以視為類別的響應,並且彼此相關。對此,在本文設計了通道注意力模組。
  • 而特徵向量上的每個位置(舉例來說,BCWH:(0,:,0,0)的一個向量),其實表示了個別類別在此位置的注意力強度。對此,在本文設計了一個空間注意力模組。

position attention

A分別經過3個卷積變成BCD,reshape B和C(C*N矩陣)(N=H*W)並相乘後經過softmax得到空間注意力矩陣,方陣S。S表示了各個class在每一個pixel上得到的注意力強度。

B, C = conv(A), conv(A) # B,C,W
B, C = reshape(B, (C,N)), reshape(C, (C,N)) # N=W*H
S = softmax(B.T@C) # (N,N)
E = α*D*S + A # (C,N) reshape -> (C,H,W)
# α, learnable constant, ref:https://arxiv.org/pdf/1805.08318.pdf

B和C的shape是(C,N),相乘的矩陣的每一行,代表在這個位置上各個類別的特徵強度。假設C=4,在S矩陣(0,0)的點,代表類別0於原特徵向量A(4,0,0)位置的特徵強度,位置(1,0)~(3,0)則分別表示類別1~3在該位置的強度。而S矩陣中(1,:),則代表原特徵向量A (4,0,1)位置的特徵強度,以此類推。而S還會透過softmax讓特徵強度在每個位置被百分化,這就是空間自注意力矩陣。

最後得結果具論文指出,由於空間注意力矩陣有對全局上下文的資訊萃取,所以能提升 intra-class(同類別間) compact and semantic consistency(一致性)

channel attention

高階特徵中,每個特徵通道可以視為類別的響應,並且彼此相關。特徵向量A直接與自己作乘積並得到經過softmax注意力矩陣X,矩陣每一個點表示了兩個類別之間的關係(近似於相關係數),將A與X相乘,得到結果R,並經過一個參數beta縮放後與原來的A相加,得到E

X = reshape(A, (C,N)).T * reshape(A, (C,N)) # C,C
X = softmax(X) # C,C
R = X * reshape(A, (C,N)) # C,N
E = β*R + A # C,N reshape -> C,H,W

在這邊的自注意力矩陣X是C*C,可以很簡單的判斷是用來表示特徵向量A對每個通道的關注程度。將此關係apply在reshape後的特徵向量A上,得到的R矩陣(C,N)就是自關注的結果了。

本文指出他們設計的channel attention可以提高特徵的判別性(feature discriminability),簡單的理解就是各類別特徵之間的距離。其實就跟triplet loss或其他contrastive learning方法中,盡可能縮小組間距離,提高組外距離是相似的含意。也就是如果想要避免混淆並提高準確率,可以透過提高特徵判別性feature discriminability來實現。

ref

--

--