(ML) Residual Attention Network

YEN HUNG CHENG
5 min readFeb 17, 2023

--

Residual Attention Network

以下為 Residual Attention Network 由多個 Attention Module 所組成

source
  • p 表示在分解為 trunk branch 和 mask branch 之前的預處理 Residual Units 數量
  • t 表示 trunk branch 中的 Residual Units 的數量
  • r 表示 mask branch 中相鄰池化層之間的 Residual Units 數量
  • 在實驗中,p = 1,t = 2,r = 1。
source

Attention Module

Attention Module 又分成兩個分支

  1. Soft Mask Branch
  2. 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 來學習參數)

source

通過 residual connection 之後,為了將前面的特徵能夠順利連接起來,必須透過 Interpolation 將 feature map 放大回跳接前的尺寸

不同時段 Feature 注意的位置

下方左圖所示 Attention 的工作方法,有兩條分支,主分支 trunk branch 依舊提取特徵,旁分支 Soft Mask Branch 學習一種注意力權重,告訴網絡哪裡是值得注意的地方。

source

色彩越鮮豔的地方代表 feature 提取的位置,在 Low-level 時,通常會提取較大物件的 feature,所以會發現 feature 會 attention 在天空的部分,但如果我們使用 Soft-attention mask 之後,我們會發現 feature 會 attention 的位置會更加準確在氣球和城市上,到後面的 High-level 可以發現 attention 的 feature 會在氣球上

Experiment

source

使用 Residual Attention Module 的結構進行堆疊,可使網絡模型能夠很容易的達到很深的層次,Attention-56 輕易超越深層的網路,像是圖中的 ResNet-152 ,參數也變得更少,error 也越低。

--

--