Swin Transformer : Hierarchical Vision Transformer using Shifted Windows 논문 리뷰


서론

이 장은 ViT를 다양한 Task(Obejct Detection, Segmenation)에 적용한 모델인 Microsoft의 Swin Transformer에 대해 설명한다.

목차

  1. Dataset
  2. ViT 한계
  3. Herarchical Feature Map
  4. Local window
  5. Model Architecture
  6. Swin Transformer Block
    1. Encoder
    2. Decoder
  7. Patch Merging
    1. Relative Position bias
    2. Inductive bias
  8. Swin Transformer 연구
    1. Image Classification
    2. Object Detection
    3. Semantic Segmentation
    4. Relative Position Bias & Shifted Window 여부
  9. Conclusion

Dataset

  • Pretrained on ImageNet-22K datasets
  • Classification on ImageNet-1k datasets
  • Object Detection on COCO2017 datasets
  • Sematic Segmentation on ADE20K datasets
  • Image Resolution(Default) 224 x 224 x 3 → Window size 7x7
  • Image Resolution 384x384 → Window size 12x12
  • Use AdamW optimizer

ViT 한계

  1. 이미지를 고정된 patch로 분할하지만 이미지속 물체는 고정되어 있지 않다.
    • CNN에서 receptive field(Kernel)의 다양성이 떨어져 정확도가 낮아지는 것과 동일한 현상이 발생하여 어떤 물체는 잘 잡아 내지만 어떤 크기의 물체는 잘 잡아내지 못하는 문제가 발생
  2. 이미지의 크기가 증가할 수록 Patch의 갯수도 증가 → computational cost 상승
    • 이 갯수가 이미지 크기의 비례해서 선형적으로 증가하지 않고 제곱에 비례해서 증가함
      • \(Ω(MSA) = 4hwC2 + 2(hw)^2C\) (\(h\)와 \(w\)는 이미지의 크기)

위 1번과 2번의 문제를 해결하기 위해

Herarchical Feature Map

  • 각 레이어 마다 patch의 크기를 다르게하여 하여 다양한 receptive field를 만듬 → Patch Merging 사용

Local window

  • 기존 ViT는 이미지 전체에 대해서 global self-attention을 수행 → Computing Cost가 비쌈
  • 이를 해결하기 위해 이미지의 영역을 나누고 각 영역에 대해서만 self-attention을 locally하게 수행 → Swin Transformer Block 사용
    • 이미지 크기에 따른 연산 수가 제곱에 비례해 증가하지 않고 선형적으로 증가하는 효과를 얻음
      • \(Ω(W−MSA)=4hwC^2+2M^2hwC\)

Model Architecture

기존 vit와는 달리

고정된 patch size를 사용하는 것이 아니다,

classification에서 기존 [class] token을 사용하지 않고 Token들의 평균값을 사용한다.

Swin Transformer Block

Encoder

  • 이미지 전체에 대해서 Self-Attention을 수행하지 않고 각각의 Window마다 Locally하게(따로따로) Multi-head Self-Attention을 진행 (Window Multi-head Self Attention → W-MSA)
    • 이미지의 해상도가 커져도 computational cost가 제곱관계로 증가하지 않는다는 장점
    • 하지만 단순 로컬 윈도우 방식은 단점이 있다. 바로 윈도우간의 정보교류가 전혀 이루어지지 못함
    • 만약 어떤 물체가 Attention Window와 Attention Window사이의 경계에 있다면 잘 학습되지 못함

Decoder

Window간 경계 문제를 해결하기 위해 Shifted Window Multi-head Self-Attention block을 배치

(Shifted Window Multi-head Self Attention → SW-MSA) -

  1. 예를들어 아래 이미지 처럼 Window가 구성되어 있다면 이를 대각선 방향으로 한칸 shift시킴→ (Cyclic Shift)
  2. 이미지를 Shift시키면서 Window밖으로 빠져나온 이미지들을 Window의 빈 공간에 채워 넣음
  3. 이렇게 채워진 Patch들을 다시 Attention Window로 묶는다
  4. Multi-head Self-Attention 연산을 수행해 각 Window간 정보 교류가 활발해짐
  5. 마스크 연산을 한 후에는 다시 원래 값으로 되돌린다. (reverse cyclic shift)
  1. 하지만 실제로 인접하지 않는 사진끼리 같이 Window로 묶이게 됨
  2. 예들들어 Attention Window 4는 실제로 인접한 이미지들 끼리 잘 묶인 반면, Attention Window 2와 같은 부분에 대해서는 첫번째행과 두번째 행의 이미지가 인접하지 않음
  3. 이대로 학습할 경우 모델은 인접하지 않은 이미지가 인접하다고 판단하고 잘못학습
    1. 이를 해결하기 위해 Masking 방법으로 해결
  4. Attention Window 4는 Masking을 적용하지 않고 Attention Window 2와 같은 경우에 대해서만 적용
  5. Masking 방식은 Attention Window 2의 첫번째행과 두번째행에 대한 Query와 Key를 내적할 때 Attention을 수행하는 부분에서 아주 큰 음수 값을 더해줌
  6. 그렇게 되면 인접하지 않은 부분에 대한 내적은 0에 가깝거나 음수를 갖게됨

Patch Merging

Stage1을 제외한 모든 Stage에서 사용

  1. Stage1에서 하나의 이미지를 크기가 작은 16개의 patch로 나누고 4개씩 묶어 Attention을 Locally수행했다 가정(아래 그림 중 가장 오른쪽에 해당)
  2. Stage1에서의 출력(Patch Merging의 이전 Layer) → Patch Merging의 input으로 들어감
  3. 같은 Attention에 속해있는 4개의 patch가 Concat을 통해 4C의 Dimension을 갖는 하나의 긴 벡터로 나열
    1. Attention Window 1(노란색으로 칠해진)의 각 C를 Dim으로 가지는 4개의 Patch가 concat으로 첫번째 1열의 벡터(노란색)로 나열됨
    2. Attention Window 1(파란색으로 칠해진)의 각 C를 Dim으로 가지는 4개의 Patch가 concat으로 두번째 2열의 벡터(파란색)로 나열됨
  4. Linear Projection을 통해 4C dim → 2C dim으로 줄여줌
  5. 2C Dim으로 줄여진 벡터를 다시 Attention Window로 묶음

결과적으로 4개의 작은 Patch로 구성되었던 Attention Window가 Patch Merging을 통해 1개의 좀 더 큰Patch로 구성된 Attention Window가 되었음 → 다양한 크기의 Patch를 가지고 Multi-head Attention수행

Relative Position bias

bias를 통해 이미지 픽셀에 대한 상대적인 위치 정보를 줌으로써 지역 정보에 대한 inductive bias부여

ViT의 absolute position에 비해 성능 향상

아래 수식처럼 softmax를 취하기 전 B값을 더해줌

  • Relative Position 범위 [-M+1, M-1]
    • if M=3 → [-2, 2]
  • Bias Index Matrix\((\hat{B})\)\(\in \mathbb{R}^{(2M-1)\times(2M-1)}\)
  • \(B = \hat{B}\)
\[Attention(Q, K, V) = Softmax(QK^T/\sqrt{d}+B)V\]

아래 그림은 Axis=0, 1에 대한 Bias index Matrix

노란색으로 칠해진 부분에 대한 상대적인 거리를 Matrix로 표현한다.

좌측에 세로로 나열된 숫자가 이미지 픽셀의 기준이 된다.

e.g.) Window size(M) = 3 인 경우에 대한 Bias index Matrix를 봐보자

  • x axis 예시(위에는 +1, 아래는 -1)
    • 1을 기준으로 2는 같은 x축위에 있음으로 0
    • 1을 기준으로 4는 한 칸 밑에 있음으로 -1
    • 4를 기준으로 8은 한 칸 밑에 있음으로 -1
    • 8을 기준으로 5는 한 칸 위에 있음으로 +1
    • 9를 기준으로 1은 두 칸 위에 있음으로 +2
  • y axis 예시(오른쪽 -1, 왼쪽 +1)
    • 2를 기준으로 1은 한 칸 왼쪽에 있음으로 +1
    • 2를 기준으로 5는 같은 y축에 있음으로 0
    • 9를 기준으로 7은 두 칸 왼쪽에 있음으로 +2
    • 7을 기준으로 6은 두 칸 오른쪽에 있음으로 -2

그리고 아래 코드로 최종 Matrix가 결정된다. (if M = 3) 그리고 최종 이러한 값들이 더해진다.

# step 1
x_axis_matrix = x_axis_matrix + window_size - 1
y_axis_matrix = y_axis_matrix + window_size - 1

# step 2
x_axis_matrix = x_axis_matrix*(2*window_size - 1)
relative_position_M = x_axis_matrix + y_axis_matrix

Inductive bias

  • 모델이 지금까지 만나보지 못했던 상황에서 정확한 예측을 하기 위해 사용되는 추가적인 가정
    • 즉, 일반화의 성능을 높이기 위해서 만약의 상황에 대한 추가적인 가정
  • ViT의 경우 많은 양의 데이터로, DeiT의 경우 Knowledge distillation(TS)로 해결

Swin Transformer 연구

Image Classification

  • Compare to DeiT, Swin →정확도, 속도 모두 압도
    Swin Transformers noticeably surpass the counterpart DeiT architectures with similar complexities
  • 완벽히 CNN의 SOTA 을 압도하지 못했지만 성능과 학습속도의 Trade-off가 더 작다
    Compared with the state-of-the-art ConvNets, i.e. RegNet [48] and EfficientNet [58], the Swin Transformer achieves a slightly better speed-accuracy trade-off.

Object Detection

  • Compare to ResNe(X)t - BackBone(Mask RCNN)
    Swin-T architecture brings consistent +3.4∼4.2 box AP gains over ResNe(X)t-50
  • Compare to DeiT
    The results of Swin-T are +2.5 box AP and +2.3 mask AP higher than DeiT-S with similar model size (86M vs. 80M) and significantly higher inference speed
  • Detectron RS, Copy-paste

Semantic Segmentation

  • Compare to SERT

Relative Position Bias & Shifted Window 여부

  • Detection과 Segmentation 성능향상에 도움

Conclusion

  • Swin Transformer achieves the state-of-the-art performance on COCO object detection and ADE20K semantic segmentation
  • The potential of Transformer-based models as various vision task backbones.

[참조]

https://www.youtube.com/watch?v=gFEQz8qJ6zY

https://www.youtube.com/watch?v=L3sH9tjkvKI

https://www.youtube.com/watch?v=2lZvuU_IIMA

https://arxiv.org/pdf/2103.14030.pdf

https://visionhong.tistory.com/31