[논문 리뷰] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows - 2021 ICCV

2026. 6. 14. 23:25·AI Research Paper Review/Vision

배경과 문제의식

2012년 AlexNet 이후 딥러닝 비전은 CNN이 지배해왔다. 한편 NLP에서는 2017년 Transformer가 등장해 장거리 의존성 포착이라는 강점으로 빠르게 표준이 됐다. 이 성공에 자극받아 2020년 ViT(Vision Transformer)가 등장하는데, 이미지를 16×16 패치로 잘라 토큰처럼 취급하고 Transformer를 그대로 적용하는 방식이었다.

문제는 ViT가 분류(Classification)에는 강하지만 구조적으로 두 가지 결함을 안고 있었다는 점이다.

 

첫째, 이차 복잡도다.
Self-attention은 모든 패치 쌍의 관계를 계산하므로 복잡도가 O((HW)²C)로 이미지 크기의 제곱에 비례한다. 고해상도 이미지에서는 비실용적인 연산량이 된다.

 

둘째, 단일 해상도 Feature Map이다.
ViT는 모든 레이어에서 동일한 해상도 (16 x 16)를 유지한다. 그런데 객체 탐지나 의미론적 분할처럼 Dense prediction이 필요한 태스크는 다양한 스케일의 feature를 요구한다. FPN(Feature Pyramid Network)이나 U-Net 같은 기존 프레임워크와 호환이 안 된다는 뜻이다.


Swin Transformer는 이 두 문제를 정면으로 겨냥해 설계됐다.

 

핵심 아이디어

윈도우 기반 Self-Attention (W-MSA)

전체 이미지에서 attention을 계산하는 대신, 이미지를 M×M 크기의 비겹침 윈도우로 분할하고 각 윈도우 내부에서만 attention을 계산한다. 윈도우 하나에 M²개의 패치가 있으므로 복잡도는 Ω(W-MSA) = 4hwC² + 2M²hwC가 되어, M이 고정이면 이미지 크기 hw에 선형 비례한다.

Shifted Window Partitioning (SW-MSA)

W-MSA의 치명적 약점은 윈도우 간 정보 교류가 전혀 없다는 것이다. 이를 해결하기 위해 연속된 레이어에서 윈도우 경계를 (⌊M/2⌋, ⌊M/2⌋)만큼 이동시킨다. 레이어 l에서는 일반 윈도우 배치(W-MSA)를 쓰고, 레이어 l+1에서는 이동된 윈도우 배치(SW-MSA)를 쓰는 방식으로 교대 반복한다. 이렇게 하면 l 레이어에서 서로 다른 윈도우에 속했던 패치들이 l+1 레이어에서 같은 윈도우에 묶이면서 cross-window 연결이 생긴다.

구현 효율을 위해 Cyclic Shift를 사용한다. 윈도우를 이동하면 경계에 불규칙한 크기의 윈도우가 생기는데(나이브하게 처리하면 2×2 → 3×3으로 윈도우 수가 2.25배), 이를 피하고자 피처맵 전체를 위쪽·왼쪽 방향으로 순환 이동한 뒤 동일한 크기로 윈도우 분할을 적용한다. 한 윈도우 안에 원래 인접하지 않던 패치들이 섞이므로, Masked Attention으로 비인접 패치 간 attention을 차단한다.

Relative Position Bias

attention 계산에 학습 가능한 상대 위치 편향 B를 추가한다.

Attention(Q, K, V) = SoftMax(QKᵀ/√d + B) V

절대 위치 임베딩보다 탐지·분할 성능이 높고, B는 fine-tuning 시 이중선형 보간으로 다른 윈도우 크기에 전이할 수 있다.

아키텍처 구조

 

입력 이미지를 4×4 패치로 분할해 48차원 특징으로 만든 뒤 Linear Embedding으로 C차원으로 투영한다. 이후 4개의 Stage를 거치며 점진적으로 해상도를 줄이고 채널을 늘린다.

 

Stage 1은 H/4 × W/4 × C, Stage 2는 H/8 × W/8 × 2C, Stage 3은 H/16 × W/16 × 4C, Stage 4는 H/32 × W/32 × 8C의 feature map을 출력한다. 각 Stage 사이에 Patch Merging이 있는데, 2×2 이웃 패치를 연결(concat)한 뒤 Linear 레이어를 통과시켜 해상도는 절반으로, 채널은 두 배로 만든다. ResNet의 strided convolution과 같은 역할이다.

 

각 Stage 내부의 Swin Transformer Block은 LayerNorm → (W/SW)-MSA → residual 연결 → LayerNorm → 2-layer MLP(활성함수 GELU) → residual 연결 구조다. 블록이 짝수 번째면 W-MSA, 홀수 번째면 SW-MSA를 사용하는 방식으로 교대된다.

Swin-T 기준으로는 Stage별 블록 수가 2, 2, 6, 2이며 윈도우 크기는 기본 M=7이다.

 

직관적 이해

W-MSA는 CNN의 local receptive field와 본질적으로 같은 아이디어다. CNN이 커널 크기만큼의 주변 픽셀만 보듯, Swin은 M×M 윈도우 내 패치들만 서로 본다. '전역 attention을 일부 포기하고 지역성을 도입해 효율을 얻는다'는 트레이드오프다. 레이어가 깊어질수록 정보가 간접적으로 전파되어 넓은 수용 영역이 형성된다.

 

Shifted Window는 체스판 위에 격자를 올려놓고 교대로 이동하는 것으로 이해하면 된다. 이미지(체스판)는 고정되어 있고 윈도우 경계(격자선)만 (M/2, M/2)칸 이동한다. M/2만큼 이동하는 이유는, 이 양이 이전 레이어의 경계 위치를 정확히 새 윈도우의 중앙으로 끌어들이는 유일한 값이기 때문이다. M칸 이동하면 원래 배치와 동일해서 새 연결이 하나도 생기지 않고, M/2 이동이 가장 '다른' 분할을 만든다.

 

Cyclic Shift는 위 아이디어를 실용적으로 구현하기 위한 트릭이다. 두루마리를 돌리듯 피처맵 전체를 순환 이동하면 경계 처리 문제 없이 윈도우 수가 그대로 유지된다. 중요한 것은 마스킹이 계산을 건너뛰는 게 아니라 attention score에 -∞를 더해 softmax 이후 0이 되게 한다는 점이다. QKᵀ 연산 자체는 전부 수행된다.

 

Hierarchical 구조는 ResNet처럼 stage를 거칠수록 해상도가 절반씩 줄어드는 설계다. 덕분에 FPN(Feature Pyramid Network)을 그대로 붙일 수 있고, ViT가 단일 해상도 때문에 겪던 Dense task 한계를 근본적으로 해소한다.

 

한계

고정 윈도우 크기

M은 사전에 정해진 하이퍼파라미터(기본 M=7)다. 매우 크거나 매우 작은 객체가 공존하는 장면에서 하나의 M이 모든 스케일에 최적일 수 없다. 입력에 따라 윈도우 크기를 적응적으로 바꾸는 메커니즘이 없다.

 

진정한 전역 Attention의 부재

윈도우 크기가 이미지보다 작은 한, 두 패치가 직접 attention하려면 여러 레이어를 거쳐야 한다. 장거리 의존성이 강하게 필요한 태스크에서는 ViT 대비 불리할 수 있다.

 

Cyclic Shift의 구현 복잡성

순환 이동 + 마스킹 조합은 직관적이지 않다. Zero Padding 방식보다 구현과 디버깅이 어렵고, 마스킹 로직이 틀리면 조용히 성능 저하가 발생할 수 있다.

 

Position Bias의 Window 크기 종속성

학습된 상대 위치 편향 B는 윈도우 크기 M에 종속된다. 다른 해상도나 다른 M으로 fine-tuning 할 때 이중선형 보간이 필요하며, 이 과정에서 성능 손실이 발생할 수 있다.

 

사전학습 데이터 의존성

논문에서 최상위 성능(87.3% top-1)은 ImageNet-22K 사전학습 이후 fine-tuning한 결과다. ImageNet-1K만으로는 ViT 계열 대비 이점이 상대적으로 작아진다.

'AI Research Paper Review > Vision' 카테고리의 다른 글

[논문 리뷰] CLIP : Learning transferable visual models from natural language supervision - 2021 ICML  (0) 2026.06.15
[논문 리뷰] You Only Look Once: Unified, Real-Time Object Detection(YOLO) - 2016 CVPR  (0) 2026.06.14
[논문 리뷰] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (ViT) - 2021 ICLR  (0) 2026.06.14
Going Deeper with Convolutions (Szegedy et al.) - [2015 CVPR]  (4) 2025.08.21
VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION (Karen Simonyan & Andrew Zisserman) - [2015 ICLR]  (0) 2025.08.21
'AI Research Paper Review/Vision' 카테고리의 다른 글
  • [논문 리뷰] CLIP : Learning transferable visual models from natural language supervision - 2021 ICML
  • [논문 리뷰] You Only Look Once: Unified, Real-Time Object Detection(YOLO) - 2016 CVPR
  • [논문 리뷰] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (ViT) - 2021 ICLR
  • Going Deeper with Convolutions (Szegedy et al.) - [2015 CVPR]
CKtrace
CKtrace
개인 공부 내용 기록을 위한 블로그입니다.
  • CKtrace
    CKtrace's Devlog
    CKtrace
  • 전체
    오늘
    어제
    • My Traces (80)
      • AI Research Paper Review (1)
        • Basic & Milestones of DL (3)
        • Vision (7)
        • Pre-Transformer (7)
        • Post-Transformer (14)
      • Tech Experiments & Study (7)
        • Advanced (2)
        • Basic (5)
      • .etc (41)
        • Python (6)
        • Statistics (19)
        • DB (16)
        • AI (5)
  • My Links

    • GitHub
  • Categories

    langgraph
    CAG
    langchain
    llm
    Vector search
    머신러닝
    Vision
    BM25
    Database
    딥러닝
    NLP
    tag
    기초 통계학
    인공지능
  • hELLO· Designed By정상우.v4.10.4
CKtrace
[논문 리뷰] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows - 2021 ICCV
상단으로

티스토리툴바