아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.
읽은 논문들 정리
[목차]1. Computer Vision 분야 논문2. Natural Language Processing 분야 논문3. 유명한 딥러닝 논문들 지속적으로 업데이트 중1. Computer Vision1. AlexNet [2012년]대규모 CNN을 GPU로 학습해 ImageNet 성능을 크게 끌어올
april2901.tistory.com
이번 논문은 Swin Transformer구조에 대한 논문이다.
전체 논문은 여기를 눌러 볼 수 있다.
1. Introduction
컴퓨터 비전 분야는 AlexNet을 시작으로 CNN(Convolutional Neural Networks)에 의해 지배되어있었다.
NLP에서는 Transformer가 표준 아키텍처로 자리 잡았고, 이를 비전분야에 적용한 것이 ViT이다.
하지만 몇가지 문제가 있다.
- 객체 스케일의 다양성 (Scale): 텍스트의 토큰(단어)과 달리, 이미지 속의 시각적 요소들은 그 크기가 다양하다. 단일 크기의 패치만 사용하는 ViT 모델은 이러한 변화에 대응하기 어렵다.
- 고해상도 픽셀 데이터 (Resolution): 이미지 내의 픽셀 수는 텍스트의 단어 수보다 훨씬 많다. 이미지 크기의 제곱에 비례하는 셀프 어텐션의 연산 복잡도는 고해상도 처리를 불가능하게 만든다.
이러한 문제를 해결하기 위해 저자들은 Swin Transformer를 제안했다.
- 계층적 특징 맵 (Hierarchical Feature Maps): 작은 크기의 패치에서 시작하여 깊은 층으로 갈수록 인접한 패치들을 병합(Merging)하는 방법이다.
- 이동 윈도우 기반 셀프 어텐션 (Shifted Windows): 셀프 어텐션 계산을 Local Windows 내부로 제한하여 연산 복잡도를 이미지 크기에 대해 Linear하게 낮췄다.
- 동시에 연속된 레이어 사이에서 윈도우를 Shift시켜 윈도우 간 공통부분을 제공함으로써 모델링 능력을 향상시켰다.
2. Related Work
논문에서는 아래처럼 네가지의 카테고리로 나눠 관련 연구를 언급했다.
깔끔하게 정리가 되어있어 이와 관련된 논문을 찾아보는 것도 좋을 것 같다.
- CNN and variants
- Self-attention based backbone architectures
- Self-attention/Transformers to complement CNNs
- Transformer based vision backbones
3. Method
3.1. Overall Architecture
Swin Transformer는 크게 4개의 단계로 구성된다.
각 스테이지에서는 해상도가 낮아지고 채널이 늘어나는 과정이 진행된다.
아래 그림은 그 과정을 나타낸 것이다.

먼저 patch partition과정에서 $H \times W \times 3$의 이미지를 $4\times 4$크기의 패치로 나눈다.
3개의 채널이 있으므로 각 패치는 $4\times 4times 3$, 즉 48의 크기를 가질 것이다.
이를 linear embedding에서 측정 채널 수 $C$의 길이를 갖도록 변환한다. 이 Swin-T모델에서는 $C=96$을 사용한다.
Patch merging과정에서는 근처의 패치 4개를 모아 하나의 패치로 만드는 과정을 수행한다.
근처의 패치라는 것은 위치상 $2 \times 2$안에 들어있는 패치끼리 모은다는 뜻이다.
이 과정을 수행하면 채널 수는 4C가 되고, 패치의 개수는 $\frac{H}{8} \times \frac{W}{8}$이 된다.
여기서 채널의 수를 반으로 줄이는 linear연산을 한번 더 하면 patch merging이 완료된다.
Swin Transformer block에서는 기존의 multi head self attention(MSA)을 수행하지 않고,
shifted window기반으로 바꿨다.
즉 트랜스포머 구조는 안바꾸고 attention 계산 방식만 바꾼 것이다.
어텐션 이후에는 GELU활성화 함수가 포함된 2층 구조의 MLP가 있어 비선형성이 추가된다.
MSA, MLP이전에 LN을 적용해 안정성을 높인다.
Residual connection도 있다.
위 그림의 우측(b)을 참고하면 된다.
3.2. Shifted Window based Self-Attention
기존 어텐션은 모든 토큰(단어)에 대해 연산을 해서 비용이 크기 때문에 윈도우라는 작은 단위로 나눠 그 안에서 어텐션을 수행하는 방법을 고안했다.
윈도우끼리 겹치는 부분이 없게끔 나눈다.
각 윈도우가 $M \times M$ 개의 패치를 포함한다고 할 때(기본값 $M=7$), 셀프 어텐션은 각 윈도우 내부에서만 수행된다.
기존 MSA는 이미지 크기($hw$)의 제곱에 비례하는 $O((hw)^2)$ 복잡도를 가졌지만, W-MSA의 경우 $O(M^2 \times hw)$인데 $M$이 고정되어 있으므로 이미지 크기에 비례하는 선형 복잡도 $O(hw)$1를 가진다.
그러나 이 방법은 한계가 있다.
윈도우 간에는 정보가 교환되지 않아 모델링 능력이 제한된다.
Shifted Window Partitioning
윈도우 간 연결성을 확보하기 위해 연속된 두 블록 사이에서 윈도우 분할 위치를 이동시키는 방법이다.
레이어 $l$에서 규칙적인 윈도우 분할을 사용했다면, 다음 레이어 $l+1$에서는 윈도우를 가로와 세로 방향으로 $(\lfloor\frac{M}{2}\rfloor, \lfloor\frac{M}{2}\rfloor)$ 픽셀만큼 밀어서 분할한다.
이렇게 하면, 새로 형성된 윈도우들은 이전 레이어의 윈도우 경계선들을 가로지르게 되어, 결과적으로 윈도우 간 정보를 섞어주는 효과를 낸다.
Cyclic Shift
윈도우를 이동시키면 이미지 가장자리에 $M \times M$보다 작은 불규칙한 크기의 윈도우들이 생겨나며, 윈도우의 총 개수도 늘어난다.
이를 해결하기 위한 Cyclic Shift 라는 기법이 도입되었다.
이동으로 인해 잘려 나간 왼쪽과 상단의 작은 영역들을 오른쪽과 하단의 빈 공간으로 밀어 넣어 다시 $M \times M$ 크기의 윈도우들을 만든다.
Masked Attention
이렇게 합쳐진 윈도우 안에는 실제로는 멀리 떨어져 있던 패치들이 섞여 있다.
따라서 셀프 어텐션 계산 시 이들 사이에는 연산이 일어나지 않도록 마스킹(Masking) 처리를 한다.
합쳐진 패치의 모든 어텐션을 무시하는게 아니고, 그 안에서 같은 부분끼리는 어텐션을 한다.
즉 cyclic shift그림에서 좌하단 패치는 회색부분끼리, C부분끼리는 어텐션이 진행되고 둘 사이의 어텐션만 안되는 것이다.
결과적으로, 이 트릭을 통해 윈도우 개수를 일정하게 유지하면서도 일반적인 하드웨어에서 매우 빠르게 연산(Low latency)할 수 있게 된다.
Relative Position Bias
어텐션 계산 시 패치 간의 상대적 거리를 고려하기 위해 각 헤드에 상대적 위치 편향 $B$를 더해준다.
$\text{Attention}(Q, K, V) = \text{SoftMax}(QK^T/\sqrt{d} + B)V$
이 방식은 절대적 위치 임베딩(Absolute position embedding)을 사용하는 것보다 성능이 월등히 뛰어나다.
$B$의 설명을 위해 예를 들어 window size가 7이라고 해보자.
그 안의 어떤 두 패치 사이의 상대 거리가 x축, y축 방향으로 각각 -6~+6까지 가능하고, 따라서 -6~+6까지 총 13 x 13의 크기를 가진 $B$가 생성된다.
이 방법은 이전 ViT같은 모델에서 각 패치에 자신의 위치정보를 넣었던 것보다 더 효율적이다.
왜냐하면 ViT같은 경우 필요한 위치 정보량은 전체 패치 개수와 똑같지만,
이 Relative position bias는 이미지가 커져도 169개(window size=7가정)의 변수만 있으면 되기 때문이다.

3.3. Architecture Variants
여러개의 모델을 만들었는데 같은 구조에 크기만 다른 모델이다.
Swin-T,S,B,L의 4가지 종류가 있고, 각각 tiny, small, base, large의 약자이다.

윈도우 사이즈는 기본적으로 7이다.
4. Experiments
ImageNet-1K 이미지분류, COCO 객체 탐지, ADE20K 시멘틱 세그멘테이션의 3가지 주요한 비전 작업에 대해 성능을 평가했다.
시멘틱 세그멘테이션은 모든 픽셀에 대해 이 픽셀이 어떤 클래스에 속하는지 분류하는 작업이다.
4.1. Image Classification on ImageNet-1K
이미지 분류에서 기존 트랜스포머 기반 모델과 CNN기반 모델을 모두 이겼다.
- Swin-T는 비슷한 복잡도를 가진 DeiT-S 보다 1.5%높은 정확도를 기록했다.
- 대규모 데이터셋 ImageNet-22K로 사전 학습 시켰을 때, 성능이 크게 향상되었고, Swin-L은 87.3%의 top-1정확도를 달성했다.
- 아래의 표를 보면, Swin-B는 ViT-B와 비슷한 추론 속도이면서도 더 좋은 성능을 낸 것을 볼 수 있다.

4.2. Object Detection on COCO
이 실험은 Swin Transformer의 계층적 피처 맵이 얼마나 효과적인지 가장 잘 보여주는 대목입니다.
- Cascade Mask R-CNN, ATSS 등 다양한 탐지 알고리즘에서 백본만 Swin으로 교체했을 때 성능이 일관되게 향상
- CNN 대비 압도적 성능: 비슷한 파라미터와 연산량을 가진 ResNet-50 대비 약 +3.4~4.2 box AP라는 큰 폭의 성능 향상
- HTC++ 프레임워크와 결합된 Swin-L 모델은 COCO test-dev에서 58.7 box AP를 기록하며 당시 최고 성능을 경신
4.3. 시맨틱 세그멘테이션 (ADE20K)
고해상도 이미지의 픽셀 단위 예측에서도 Swin의 선형 복잡도와 shifted window가 좋았다.
- DeiT 대비 성능: Swin-S는 비슷한 연산 비용의 DeiT-S보다 +5.3 mIoU나 높은 성능(49.3 vs 44.0)을 보였다.
- Swin-L 모델은 ADE20K 밸리데이션 셋에서 53.5 mIoU를 기록하며 이전 최고 모델(SETR) 대비 +3.2 mIoU의 성능 향상
4.4. Ablation Study
아래의 두 표는 설명했던 방법들이 얼마나 효과가 있는지를 나타낸다.
- Shifted Windows : shifted하지 않을 때보다 모든 분야의 성능이 크게 향상(분류 +1.1%, 탐지 +2.8, 세그멘테이션 +2.8)
- 상대적 위치 편향($B$) : 위치 정보가 없거나 절대 위치(Absolute)를 썼을 때보다 더 좋은 결과.
- 연산 효율: Cyclic Shift를 이용한 마스킹 구현이 단순 패딩(Padding) 방식보다 실제 하드웨어 지연 시간 측면에서 훨씬 빠르다.

- no pos.: 위치 정보가 아예 없을 때
- abs. pos.: ViT처럼 절대 좌표를 더해줄 때
- rel. pos.: 상대적 위치 편향(Relative Position Bias)을 사용할 때

sliding window: 기존의 슬라이딩 윈도우 방식은 커널 최적화를 하더라도 메모리 접근 효율이 낮아 매우 느리다다.
shifted window (padding): 변두리의 패치를 처리하기 위해 부족한 부분을 0으로 채우는(Padding) 방식. 윈도우 개수가 늘어나 연산량이 증가한다.
shifted window (cyclic): 논문에서 제안한 Cyclic Shift 방식. 윈도우 개수를 일정하게 유지하여 패딩 방식보다 훨씬 빠르다.
<요약>
이미지를 계층적 구조로 모델링하고 Shifted Window라는 혁신적인 셀프 어텐션 기법을 도입하여, 연산 복잡도를 획기적으로 낮추면서도 여러 비전 작업에서 세계 최고 성능을 달성한 범용 백본 논문
핵심 포인트
1. 기존 ViT의 문제
기존 ViT는 이미지 크기의 제곱에 비례하는 연산 복잡도($O(N^2)$) 때문에 고해상도 이미지 처리가 매우 비효율적이었으며, 모든 레이어에서 단일 해상도 패치만 사용하여 다양한 크기의 물체를 탐지해야 하는 작업에는 부적합했다.
2. 해결 아이디어 : Hierarchical Feature Maps
이미지를 4x4 크기의 작은 패치에서 시작하여 깊은 층으로 갈수록 인접 패치를 병합(Patch Merging)하는 방식을 채택했다.
이를 통해 CNN처럼 단계적으로 해상도를 줄이고 채널을 늘리는 구조를 만들어, 다양한 스케일의 객체를 효과적으로 포착할 수 있게 되었다.
3. 핵심 기술 : Shifted Window MSA
전체 이미지가 아닌 고정된 크기의 지역 윈도우 내에서만 어텐션을 계산하여 연산량을 이미지 크기에 비례하는 선형 복잡도($O(N)$)로 낮췄다.
또한, 연속된 레이어에서 윈도우 경계를 이동(Shift)시켜 윈도우 간의 정보 교환을 가능하게 함으로써 모델링 능력을 극대화했다.
4. 구현 : Cyclic Shift & Relative Position Bias
윈도우 이동으로 생기는 불규칙한 조각들을 효율적으로 처리하기 위해 Cyclic Shift과 Masking 트릭을 사용해 연산 속도를 높였다.
여기에 패치 간의 절대 좌표 대신 Relative Position Bias을 더해 이미지의 공간적 관계를 더욱 정교하게 학습하도록 설계했다.
5. 당시 최고 성능
ImageNet-1K 분류에서 87.3%의 높은 정확도를 기록했을 뿐만 아니라, 특히 객체 탐지(COCO)와 시맨틱 세그멘테이션(ADE20K)에서 기존 CNN 및 Transformer 모델들을 압도적인 차이로 제치며 세계 최고 성능을 달성했다.
'AI > 컴퓨터비전(CV)' 카테고리의 다른 글
| [CV 논문] Fast R-CNN (0) | 2026.01.10 |
|---|---|
| [CV 논문] Rich feature hierarchies for accurate object detection and semantic segmentation (1) | 2026.01.09 |
| [CV 논문] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (1) | 2026.01.07 |
| [CV 논문] Squeeze-and-Excitation Networks (1) | 2026.01.03 |
| [CV 논문] Deep Residual Learning for Image Recognition (4) | 2025.12.31 |