Paper Review/Detection & Segmentation

[OUTTA Alpha팀 논문 리뷰 요약] Part 7-3. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

YeonJuJeon 2025. 1. 19. 18:28

논문 링크: 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

 

OUTTA 논문 리뷰 링크: [2025-1] 임재열 - Swin Transformer

 

[2025-1] 임재열 - Swin Transformer

Swin Transformer는 2021년 Ze Liu 등이 제안한 모델입니다. [Swin Transformer]https://arxiv.org/abs/2103.14030 Swin Transformer: Hierarchical Vision Transformer using Shifted WindowsThis paper presents a new vision Transformer, called Swin Trans

blog.outta.ai


1. Abstract

  • 새로운 비전 트랜스포머(“Swin Transformer”)를 제안
    → 컴퓨터 비전을 위한 범용(backbone) 모델로 사용 가능함을 보임
  • Shifted Windowing 방식을 통해:
    • 겹치지 않는 로컬 윈도우 내에서 Self-Attention을 제한 → 효율적 계산
    • 윈도우 간 연결을 가능하게 하여 모델링 능력 극대화
    • 계층적 아키텍처를 통해 다양한 스케일 모델링 + 이미지 크기에 대해 선형적 계산 복잡도 달성
  • COCO: 기존 SOTA 대비 +2.7 Box AP, +2.6 Mask AP 향상
    ADE20K: +3.2 mIoU로 큰 폭 개선
    → 트랜스포머 기반 모델이 비전 백본으로서 갖는 잠재력 입증

2. Introduction

  1. 언어(텍스트) vs. 비전(이미지)에서의 도전 과제
    • 트랜스포머는 언어 모델에서 “단어 토큰”을 기본 단위로 처리하지만,
    • 비전에서는 시각적 요소 크기가 매우 다양하여 객체 탐지 등에서 어려움 발생
    • 모든 토큰을 고정 크기로 처리하는 기존 방식은 비전에 적합하지 않음
  2. 픽셀 해상도 문제
    • 이미지의 픽셀 밀도는 텍스트 단어 밀도보다 훨씬 높음
    • Semantic segmentation처럼 픽셀 단위 예측이 필요한 경우,
    • 트랜스포머의 self-attention 복잡도가 이미지 크기의 제곱에 비례 → 고해상도 이미지 처리 시 비효율적
  3. Swin Transformer 제안
    • 작은 패치에서 시작 → 계층이 깊어질수록 인접 패치 병합 → 점진적 계층적 표현 구성
    • 서로 겹치지 않는 로컬 윈도우에서 self-attention 계산 → 선형 계산 복잡도 달성
    • Shifted Window partitioning으로 연속적 윈도우 간 연결성을 확보 → 모델링 능력 향상

3. Method

3.1 Overall Architecture

  • Swin-T(Tiny 버전)
    1. 입력 이미지를 패치로 분할(ViT 유사)
      • 패치 크기: 4×4
      • 각 패치: token으로 처리 (4×4×3 = 48차원 raw RGB값)
    2. Stage 1:
      • Linear embedding 레이어로 차원 C로 임베딩
      • Swin Transformer block 적용 → 해상도: (H/4 × W/4) 유지
    3. Stage 2:
      • 패치 병합 레이어로 토큰 수 4배 감소(2×2 인접 패치 병합)
      • 출력 차원 2C로 설정 후 Swin Transformer block → 해상도: (H/8 × W/8) 유지
    4. Stage 3, 4:
      • 같은 방식 반복, 최종 해상도 (H/32 × W/32)
  • Swin Transformer Block:
    • 표준 트랜스포머 블록의 Multi-Head Self-Attention(MSA)Shifted Window 기반 MSA로 대체
    • MSA 뒤에 2층 MLP(GELU 활성화), 각 모듈 앞에 LayerNorm, 뒤에 Residual connection

3.2 Shifted Window based Self-Attention

  1. Non-overlapped Window 내 Self-Attention
    • 전역(Global) 대신 로컬 윈도우 단위로 self-attention 계산
    • 윈도우 크기 M×M 가정 시, 전역 대비 선형적 계산 복잡도 달성
  2. Shifted Window Partitioning
    • 매 블록마다 윈도우를 ($\lfloor M/2 \rfloor$, $\lfloor M/2 \rfloor$)만큼 shift하여 분할
    • 윈도우 간 연결(정보 교류) 부족 문제 해결
  3. Efficient Batch Computation
    •  
    • Shift 과정에서 일부 윈도우가 M×M보다 작아질 수 있음 → 패딩 후 마스킹 기법 사용
    • Cyclic-shifting & 마스킹 메커니즘으로 계산 효율 유지
  4. Relative Position Bias
    • 위치 정보를 효율적으로 반영하기 위해 상대적 위치 바이어스(B) 사용
    • 윈도우 크기(M)가 변해도 bi-cubic interpolation 등을 통해 학습된 바이어스 재사용 가능
    • 이 바이어스 사용 시 성능 크게 향상

3.3 Architecture Variants

  • Swin-B(기본), Swin-T, Swin-S, Swin-L
    • 모델 크기와 계산 복잡도: 각각 0.25배(T), 0.5배(S), 2배(L)
    • 기본 window 크기 M=7, 각 head 차원 d=32, MLP expansion ratio $\alpha=4$
    • 첫 번째 stage의 채널 수=C

4. Experiments

  1. Image Classification on ImageNet-1K
    • 1.28M 학습 이미지, 50K 검증 이미지(1000 클래스)
    • 기본 모델 & ImageNet-22K 사전학습 후 ImageNet-1K 파인튜닝 모델로 실험
  2. Object Detection on COCO
    • COCO 2017: 118K train, 5K val, 20K test-dev
    • Swin Transformer 백본 + Detector(예: Mask R-CNN 등)로 성능 비교
  3. Semantic Segmentation on ADE20K
    • 150개 카테고리, 20K train, 2K val, 3K test 이미지
    • Swin Transformer 백본 + 세그멘테이션 헤드로 성능 측정
  4. Ablation Study
    • Shifted Window 효과
      → ImageNet-1K: Top-1 정확도 +1.1%
      → COCO: Box AP +2.8, Mask AP +2.2
      → ADE20K: mIoU +2.8
    • Relative Position Bias 효과
      → ImageNet-1K: Top-1 +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 vs. Sliding Window:
      • Swin-T 기준 4.1배 빠른 속도, Swin-B는 3.6배 빠름
      • 정확도도 비슷하거나 더 우수