정보의 축약을 통해 중요한 특징에 더 집중하는 self-attention mechanism이 녹아들어가 있다. 기존의 CNN 보다 더 ‘명시적’ 이라는 것이 주요 차이점이다.
Channel 간의 관계에 집중
Squeeze-and-Excitation (SE) block을 통해서 구현
장점
Main Structure
$X = Input\ data ,\ (H', W', C') = Input\ shape, \ F_{tr} = module\ of\ the\ model \\
U = feature \ map,\ (H, W, C) = shape\ of\ feature\ map \\
F_{sq} = Squeeze\ block,\ F_{ex} = Excitation\ block,\ F_{scale}=scaler$
self-gating mechanism: 자신으로부터 뽑은 요약 벡터를 다시 자신의 채널을 얼마나 증감 시킬지 정하는데 사용하는 메커니즘.
지금까지 많은 연구들은 모델과 연산/자원 비용을 줄이는 것에 초점이 맞춰져 있었다.
Squeeze: Global Information Embedding
기존의 feature map은 작은 영역(local receptive filed)만 보기 때문에 전 문맥을 직접적으로 사용하기 어렵다.
→ 공간차원을 축소하여 채널 당 하나의 값으로 요약하여 전역 문맥을 요약한다.
이때 **Global Average Pooling(GAP)**를 이용한다.
$$ z_c = \mathrm{F_{sq}}(u_c) = \frac{1}{H W}\sum_{i=1}^{H}\sum_{j=1}^{W} u_c(i,j) $$
Example)
어떤 data가 $(H, W, C) = (2, 2, 2)$ 라면…
C = 1, $(H, W) = \begin{bmatrix} 1 & 3 \\ 5 & 7 \end{bmatrix}$ → ‘GAP’ → $(1+3+5+7)/4 = 4$ (Scalar Value)
C = 2, $(H, W) = \begin{bmatrix} 2 & 4 \\ 6 & 8 \end{bmatrix}$ → ‘GAP’ → $(2+4+6+8)/4 = 5$ (Scalar Value)
⇒ $최종\ shape = (1,1,2)$
Excitation Adaptive Recalibration
앞서 Squeeze로 얻은 $z_c$(채널 요약)을 Input으로 받아 Channel 간 비선형 의존성을 학습하고 그 결과를 (0, 1) 범위의 게이트로 변환하여 원래의 feature map을 Channel별로 재보정한다.
두 개의 FC Layer와 두 개의 activation function으로 이루어져 있다.
비선형 함수: 단순 선형 합(MLP)로는 비선형 관계 확보 불가
sigmoid: 여러 채널이 동시에 중요할 수 있음. Softmax를 안쓰는 이유
bottleneck: parameter, FLOPs 줄이고 Overfitting 억제 효과
차원 축소 → 비선형 → 다시 확장 → 채널별 게이트 → 재보정
$$ s = \sigma\!\big(W_2\,\mathrm{ReLU}(W_1 z)\big),\qquad\tilde{u}_c = s_c \cdot u_c $$
위의 Main Structure에서 알 수 있듯이 모델의 한 모듈이 끝날 때마다 SE-block이 삽입되어 있다.
Channel 수를 보면 256 → 16 → 256, 512 → 32 → 512,… 등 Bottleneck 구조를 확인할 수 있고 X16의 비율로 증감한다. 해당 수치는 Reduction ratio라는 hyperparmeter로 실험 결과는 아래와 같다.
Exciation은 Layer의 깊이에 따라 하는 역할이 다르다.
결국, $z$는 입력별 요약이고 $s$도 입력 조건화된 가중치이므로 채널 축으로 self-attention한 것으로도 볼 수 있다.