(ML) Residual Attention Network
Residual Attention Network
以下為 Residual Attention Network 由多個 Attention Module 所組成
- p 表示在分解為 trunk branch 和 mask branch 之前的預處理 Residual Units 數量
- t 表示 trunk branch 中的 Residual Units 的數量
- r 表示 mask branch 中相鄰池化層之間的 Residual Units 數量
- 在實驗中,p = 1,t = 2,r = 1。
Attention Module
Attention Module 又分成兩個分支
- Soft Mask Branch
- Trunk Branch
下左圖為 Attention Module 的架構,右圖為工作原理
Trunk branch 進行特徵提取
Soft Mask Branch 主要生成 attention 的訊息,即 weights
Soft Mask Branch 採用的是 bottom-up top-down feedforward structure
假定一個模塊 H 的輸入是 x,trunk branch 的輸出是 T(x),mask branch的輸出是 M(x),則模塊 H 的輸出是
其中i是像素點的位置,c是對應的通道位置
但不能簡單地堆疊 Attention Module,因為 Attention Module 中的 Soft Mask Branch 最後會通過 sigmoind,所以輸出會是在 [0, 1] 之間,假設輸出 0.9 x 0.9 x 0.9 會越來越小,還有 Mask 可能會破壞 Trunk 的特性,像是 Residual Unit 的恆等映射
於是提出了 Attention residual learning 來緩解這個問題
與殘差學習的想法類似,如果 soft mask 被構造為恆等映射,那麼性能肯定不會比沒有注意力來得更糟,因此將 H 的輸出改為:
其中,M(x )在 [0, 1] 之間,若 M(x) 和 0 接近,那麼 H(x) 近似於 F(x),我們把這個學習稱之為 Attention Residual Learning
Soft Mask Branch
Soft-Mask Branch 使用了 bottom-up top-down 架構(Encoder-Decoder 架構)
bottom-up:convolutional、downsampling、encoder
top-down:deconvolutional、upsampling、decoder
Bottom-up 提取高層特徵並增大模型的感受野
Top-down 是通過相同數量的 up sample 將 feature map 的尺寸放大到與原始輸入一樣大(這裡的 upsample 通過 deconvolution 來實現,可以利用bilinear interpolation 也可以利用 deconvolution 來學習參數)
通過 residual connection 之後,為了將前面的特徵能夠順利連接起來,必須透過 Interpolation 將 feature map 放大回跳接前的尺寸
不同時段 Feature 注意的位置
下方左圖所示 Attention 的工作方法,有兩條分支,主分支 trunk branch 依舊提取特徵,旁分支 Soft Mask Branch 學習一種注意力權重,告訴網絡哪裡是值得注意的地方。
色彩越鮮豔的地方代表 feature 提取的位置,在 Low-level 時,通常會提取較大物件的 feature,所以會發現 feature 會 attention 在天空的部分,但如果我們使用 Soft-attention mask 之後,我們會發現 feature 會 attention 的位置會更加準確在氣球和城市上,到後面的 High-level 可以發現 attention 的 feature 會在氣球上
Experiment
使用 Residual Attention Module 的結構進行堆疊,可使網絡模型能夠很容易的達到很深的層次,Attention-56 輕易超越深層的網路,像是圖中的 ResNet-152 ,參數也變得更少,error 也越低。