카테고리 없음

[2025-1] 임재열 - Swin Transformer

limlimlim1109 2025. 1. 18. 10:57

Swin Transformer는 2021년 Ze Liu 등이 제안한 모델입니다.

 

[Swin Transformer]

https://arxiv.org/abs/2103.14030

 

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

This paper presents a new vision Transformer, called Swin Transformer, that capably serves as a general-purpose backbone for computer vision. Challenges in adapting Transformer from language to vision arise from differences between the two domains, such as

arxiv.org

<Swin Transformer>

* Abstract

1. 이 논문은 Swin Transformer라는 새로운 비전 트랜스포머를 제안하며, 컴퓨터 비전을 위한 범용 backbone으로서의 역할을 수행할 수 있음을 보여줍니다.

 

2. Shifted Windowing 방식은 서로 겹치지 않는 로컬 윈도우 내에서 Self-Attention 계산을 제한하여 효율성을 높이는 동시에, 윈도우 간 연결을 가능하게 합니다. 이 계층적 아키텍처는 다양한 스케일에서 모델링할 수 있는 유연성을 가지며, 이미지 크기에 대해 선형적인 계산 복잡도를 가집니다.

 

3. Swin Transformer는 COCO에서 이전 State-of-the-Art를 +2.7 Box AP와 +2.6 Mask AP로, ADE20K에서는 +3.2 mIoU로 크게 능가하며, 트랜스포머 기반 모델이 vision backbone으로서 가진 잠재력을 입증합니다.

* Introduction

1. 하지만 언어 도메인에서의 뛰어난 성능을 비전 도메인으로 전이하는 과정에서 몇 가지 중요한 도전 과제가 발생합니다. 그 중 하나는 스케일 문제입니다. 트랜스포머의 언어 모델에서는 단어 토큰이 처리의 기본 단위로 사용되지만, 비전에서는 시각적 요소의 크기가 매우 다양하며, 이는 객체 탐지와 같은 작업에서 큰 과제로 부각됩니다. 기존의 트랜스포머 기반 모델에서는 모든 토큰이 고정된 크기로 처리되며, 이는 비전 작업에 적합하지 않습니다.

 

2. 또 다른 차이는 픽셀의 높은 해상도입니다. 텍스트에서 단어의 밀도와 비교할 때 이미지 픽셀은 훨씬 높은 해상도를 가지며, semantic segmentation과 같은 작업에서는 픽셀 수준의 예측이 필요합니다. 그러나 트랜스포머는 self-attention의 계산 복잡도가 이미지 크기의 제곱에 비례하므로, 고해상도 이미지에 대한 처리에 비효율적입니다.

 

3. 이를 해결하기 위해, 우리는 Swin Transformer라는 범용 트랜스포머 backbone을 제안합니다.

    * 작은 크기의 패치에서 시작하여 더 깊은 트랜스포머 계층으로 진행하면서 인접 패치를 병합하여 점진적으로 계층적 표현을 구성

    * 이미지 분할을 위해 서로 겹치지 않는 로컬 윈도우 내에서 self attention을 계산함으로써 선형 계산 복잡도 달성

    * self attention 계층 사이에서 윈도우 분할을 shift하는 방식으로 이전 계층의 윈도우를 연결하여 모델링 능력을 크게 향상

* Method

Swin Transformer - Figure 3

1. Overall Architecture

  - Swin-T(Tiny version)

 

  1. 입력 RGB 이미지를 ViT와 유사하게 패치 분할 모듈을 사용하여 겹치지 않는 패치로 분할

    → 각 패치는 token으로 처리

    → feature는 raw pixel RGB 값의 concatenation

    → patch size: 4 x 4

    → feature dimension of each patch: 4 x 4 x 3 = 48

 

[Stage 1]

  2. raw-valued feature에 linear embedding 레이어 적용

    → 차원 C로 임베딩

 

  3. Swin Transformer block 적용

    → token 수 유지: H/4 x W/4

  

[Stage 2]

  4. 계층적 표현을 생성하기 위해 네트워크가 깊어짐에 따라 token 수 감소

    → 패치 병합 레이어 적용

    → 2 x 2 인접 패치 그룹의 feature를 concatenation: token 수 4배 감소

    → 4C 차원에 linear 레이어 적용, 출력 차원 2C 설정

  

  5. Swin Transformer block 적용

    → 해상도 유지: H/8 x W/8

 

[Stage 3, 4: Stage 2 반복]

  6. Stage 3: 해상도 H/16 x W/16

  

  7. Stage 4: 해상도 H/32 x W/32

 

  - Swin Transformer block

     표준 트랜스포머 블록에서 multi-head self attention(MSA) 모듈을 Shifted Window 기반 MSA 모듈로 대체

     MSA 모듈 뒤에 2층 MLP 모듈 (MLP 모듈 사이에 GELU 활성화 함수)

     각 MSA 모듈과 MLP 모듈 앞에는 LayerNorm layer 적용, 모듈 뒤에는 Residual connection 적용

 

2. Shifted Window based Self-Attention

  - Self-attention in non-overlapped windows

    → Global self attention이 아니라, local window 내에서 self attention을 계산하는 방법 제안

    → Window는 이미지 전체를 겹치지 않는 방식으로 균일하게 분할

    → M x M 패치 가정 시, h x w 패치를 가진 이미지에서 Global MSA과 Winodw MSA 계산 복잡도

      * Global MSA: 제곱 복잡도

      * Window MSA: 선형 복잡도

Swin Transformer - Expression 1

  - Shifted window partitioning in successive blocks

     Window MSA의 window 간 연결 부족을 해결 하기 위해, Shifted Window partitioning 방식 제안

Swin Transformer - Figure 2

     W-MSA: regular window partitioning strategy (8 x 8 feature map to 2 x 2 windows)

     SW-MSA: 첫 번째 모듈에서 (\floor{M/2}, \floor{M/2}) 만큼 shift한 윈도우로 분할 (M: window size)

     연속적인 Swin Transformer 블록에서 W-MSA와 SW-MSA 번갈아 사용

Swin Transformer - Expression 3

  - Efficient batch computation for shifted configuration

     SW-MSA 문제점: 일부 window의 크기가 M x M 크기보다 작아질 수 있음

    → 단순한 해결책으로 padding 후 masking이 존재, but 계산량과 메모리 사용량 크게 증가

     상단 왼쪽 방향으로 cyclic-shifting을 수행한 뒤, masking mechanism 사용

        * batched window 개수가 정규 분할과 동일하게 유지되어 계산 효율성 확보 가능

Swin Transformer - Figure 4

  - Relative Position Bias

     자기 어텐션을 계산할 때 상대적 위치 바이어스 B∈R^{(M^2)×(M^2)} 를 포함

     각 축의 상대적 위치는 [−M+1, M−1] 범위에 존재

     따라서 더 작은 크기의 bias 행렬 B∈R^{(2M-1)×(2M-1)}로 매개변수를 설정하여 B의 값을 B^에서 가져와 사용

     window 크기 (M, M) 가 feature map 크기 (h, w)로 나누어 떨어지지 않을 경우, feature map맵의 오른쪽 아래에 padding

     Relative Position bias 추가 시 이를 사용하지 않거나 absolute position embedding을 사용하는 경우보다 성능 크게 향상 (Table 4)

     pre-training에서 학습된 relative position bias는 bi-cubic interpolation을 통해 다른 winow 크기로 fine-tuning할 때 사용 가능

3. Architecture Variants

  - Swin-B: 기본 모델

  - 모델 크기와 계산 복잡도가 각각 0.25배: Swin-T, 0.5배: Swin-S, 2배: Swin-L

  - 기본 window 크기 M = 7, 각 헤드의 차원 d = 32, 각 MLP의 expansion layer 비율 \alpha = 4

  - C: 첫 번째 단계에서 hidden layer의 채널 수

Swin Transformer - 3.3. Architecture Variants

* Experiments

1. Image Classification on ImageNet-1K

  - ImageNet-1K dataset: 1.28M training images, 50K validation images from 1000 classes

  - 기본 ImageNet-1K model, ImageNet-22K로 pre-trained 후 ImageNet-1K로 fine-tuning한 model

Swin Transformer - Table 2

2. Object Detection on COCO

  - COCO 2017 dataset: 118K training images, 5K validation images, 20K test-dev images

Swin Transformer - Table 3

3. Semantic Segmentation on ADE20K

  - ADE20K dataset: 150 categories, 20K training images, 2K validation images, 3K test images

Swin Transformer - Table 4

4. Ablation Study

Swin Transformer - Table 5

 

  - Shifted Window 효과

    * ImageNet-1K: top-1 accuracy +1.1% 향상

    * COCO: Box AP +2.8, Mask AP +2.2 향상

    * ADE20K: mIoU +2.8 향상

 

  - Relative Position Bias 효과

    * ImageNet-1K: top-1 accuracy +1.2%/+0.8% 향상

    * COCO: Box AP +1.3/+1.5, Mask AP +1.1/+1.3 향상

    * ADE20K: mIoU +2.3/+2.9 향상

 

  - Self-Attention 방식 비교

    * Shifted Window 효율성 > Sliding Window 효율성
    * Swin-T에서 4.1배, Swin-B에서 3.6배 빠르며 정확도는 비슷하거나 더 우수