ELSA: Enhanced Local Self-Attention for Vision Transformer
https://arxiv.org/pdf/2112.12786v1.pdf
Self-attention은 long-range dependency를 모델링하기에 강력하지만 local한 feature를 학습하는데 약점을 보인다. local self-attention(LSA)의 성능은 convolution과 유사하고 dynamic filter보다 부족하다. 우리는 LSA와 LSA의 대체재들에 대해 channel setting과 spatial processing 부분에서 분석해보았다. 우리는 generation과 spatial attention의 적용부분이 중요하다는 것을 찾았고, relative position 임베딩과 neighboring filter application이 중요한 팩터이다. 이러한 발견들을 통해, 우리는 Hadamard attention과 ghost head를 사용한 enhanced local self-attention(ELSA)를 제안한다. Hadamard attention은 Hadamard product*를 가져와 근접한 곳에서 효율적으로 어텐션을 하면서도 high-order mapping을 유지한다. ghost head는 attention map을 정적인 매트릭스와 결합하여 채널의 capacity를 늘렸다. 아키텍쳐 변화나하이퍼파라미터 튜닝없이 LSA를 ELSA로 변경했을 때 SwinTransformer가 top-1 accuracy가 +1.4 올랐다. VOLO**의 경우 사이즈에 상관없이 좋은 성능을 보였다. ELSA는 다양한 다운스트림 태스크에서도 좋은 성능을 보였다.
*Hadamard product(아다마르 곱) : 크기가 같은 행렬끼리 같은 원소끼리의 곱 https://ko.wikipedia.org/wiki/아다마르_곱
**VOLO : ViT 종류 중 하나 https://arxiv.org/pdf/2106.13112.pdf
vision transformer는 아주 좋은 성능을 보여줬다. Multi-head self-attention(MHSA)가 중요한 역할을 했는데, spatial한 정보를 모으고 더 큰 flexibility와 capacity를 주었다. MHSA는 첫 몇개의 레이어에서 local information에 집중하는 경향이 있었다. 초기레이어들에게 local detail들을 학습할 수 있도록 inductive bias를 주는 연구들이 진행되었다. 그 대표인 Swin Transformer(Swin)는 MHSA에 locality를 부여하고 visual task에 큰 영향을 주었다.
그러나 swin에 이상한 현상이 있었는데, Swin의 LSA를 depth-wise convolution(DwConv)*나 dynamic filter**로 바꾸니 성능이 유사하다는 점이었다. Swin-T의 LSA를 DwConv와 decoupled dynamic filter(DDF)로 바꿔보니 LSA는 DwConv와 비슷한 성능을 보였고 DDF보다 성능이 낮으면서도 더 많은 FLOPs를 필요로 했다. LSA의 성능은 왜 보통 수준일까?

우리는 이러한 질문에 답변을 하기 위해, LSA, DwConv, dynamic filter를 channel setting과 spatial processing에 대해 리뷰해보고자 한다.
Channel Setting
DwConv와 LSA의 차이점은 channel setting이다. DwConv는 다른 채널에 다른 필터를 적용했다. LSA는 multi-head 전략을 사용하여 채널내의 같은 그룹은 같은 필터(a.k.a attention map)을 공유한다. 이 논문에서 우리는 DwConv를 multi-head 접근의 특이한 케이스라고 생각하였다. DwConv에서 head를 LSA만큼으로 늘리면 LSA를 능가할 수 있을거라 생각했지만, 실험결과 비슷하거나 나은 성능을 보였다. LSA의 head를 늘리는 것도 실험결과 성능을 늘리지 못했고 새로운 channel 전략이 필요했다.

Spatial processing
spatial한 정보를 얻기 위해 filter를 어떤 방식으로 적용하는지가 다르다. DwConv는 모든 피쳐 픽셀에서 sliding window 방식으로 static filter를 공유한다. Dynamic filter는 bypath 네트워크를 사용하여 spatial-specific filters를 생성하고 이러한 필터를 각 픽셀의 인접한 영역으로 적용하였다. LSA는 일종의 spatial-specific한 필터인 attention map을 생성한다. LSA는 이러한 어텐션 맵을 local window에 적용한다. 우리는 이 세가지의 spatial processing을 하나의 패러다임으로 결합하여 조사해보았다. 우리는 relative positional embedding과 neighboring filter application이 퍼포먼스에 영향을 미치는 두개의 팩터로 보았다. 그러나 인접한 경우에 query와 key를 dot product 연산하는 것은 계산효율적이지 않았고, 더 효율적인 방식이 필요했다.
Conv / DwConv
Conv와 DwConv는 filter를 generate하진 않는다. 그들은 static한 convolutional filter를 슬라이딩 윈도우 방식으로 공유한다. 이러한 spatial processing은 아래와 같이 쓸 수 있다.
