이 논문은 Vision Transformer를 CNN과 같은 관점에서 본다 — 이미지의 계층적 표현과 지역(local) 연산이라는 두 가지 귀납적 편향을 Transformer 구조에 도입함으로써, 분류뿐 아니라 물체 감지·분할까지 아우르는 범용 비전 백본의 가능성을 증명한다.
arXiv →컴퓨터 비전은 오랫동안 CNN이 지배해 왔다. AlexNet 이후 VGG, ResNet, EfficientNet으로 이어지는 발전은 모두 합성곱 연산을 중심으로 이루어졌다. 반면 NLP에서는 Transformer가 표준이 되었고, 2020년 ViT(Vision Transformer)가 이미지 패치를 토큰으로 삼아 순수 Transformer를 비전에 적용하는 데 성공했다. 하지만 ViT를 범용 비전 백본으로 쓰기에는 두 가지 근본적인 한계가 있었다.
16×16 패치 토큰이 처음부터 끝까지 유지되므로, 작은 물체는 잡기 어렵다.
"Challenges in adapting Transformer from language to vision arise from differences between the two domains, such as large variations in the scale of visual entities and the high resolution of pixels in images compared to words in text."언어에서 비전으로 Transformer를 적용하는 데 있어 어려움은 두 도메인 간의 차이에서 비롯됩니다 — 시각적 개체의 크기가 크게 달라지고, 텍스트의 단어에 비해 이미지의 픽셀 해상도가 훨씬 높다는 점입니다.
슬라이딩 윈도우 셀프 어텐션(sliding window self-attention) 방식도 연구됐지만, 서로 다른 쿼리 픽셀이 서로 다른 키 집합을 가져 하드웨어 메모리 접근이 비효율적이었다. 결과적으로 실제 추론 지연(latency)이 CNN 대비 훨씬 컸다.
보충 CNN이 가진 두 가지 귀납적 편향(inductive bias) — 지역성(locality)(가까운 픽셀끼리 상관성이 높다)과 평행 이동 불변성(translation invariance)(물체가 어디 있어도 같은 필터로 인식) — 이 비전 과제에서 왜 중요한지 수십 년의 신경과학·시각 연구가 뒷받침한다. ViT는 이 편향을 의도적으로 버렸고, 그 대가로 훨씬 많은 데이터(JFT-300M)가 필요했다.
결국 이 논문이 해결해야 할 문제는 명확했다: "계층적 특징 맵을 만들면서, 이미지 크기에 선형적인 복잡도를 유지하고, 범용 비전 백본으로 쓸 수 있는 Transformer를 어떻게 설계할 것인가?"
Swin Transformer는 두 가지 설계 결정을 중심으로 구성된다: (1) 윈도우 내 지역 어텐션으로 복잡도를 선형화하고, (2) Shifted Window 전략으로 윈도우 간 연결을 확보한다.
레이어 l에서는 규칙적 윈도우 분할, 레이어 l+1에서는 윈도우를 이동시켜 이전 윈도우 경계를 가로지르는 어텐션이 형성됩니다.
Swin Transformer는 4개의 Stage로 구성된다. 각 Stage는 Patch Merging(다운샘플링) + Swin Transformer Block(변환)으로 이루어진다. 여기서는 Swin-T(Tiny) 변형을 기준으로 설명한다.
각 Stage는 W-MSA 블록과 SW-MSA 블록이 교대로 쌍을 이루며 반복된다.
224×224 RGB 이미지가 Swin-T를 통과할 때 각 단계에서 텐서의 형태가 어떻게 바뀌는지 확인하세요.
수식 1 — MSA vs W-MSA 복잡도 비교
| 변수 | 의미 | 비고 |
|---|---|---|
h, w | 특징 맵의 높이·너비 (패치 단위) | 예: Stage 1에서 h=w=56 |
C | 채널(임베딩) 차원 | Swin-T: C=96 |
M | 윈도우 크기 (M×M 패치) | 기본값 M=7 |
hw | 전체 패치 수 (= 이미지 크기에 비례) | 이차항 유무가 핵심 |
직관적 해설
두 수식의 차이는 마지막 항뿐이다. MSA는 2(hw)²C — 이미지 크기 hw의 제곱에 비례한다. 224×224 이미지(hw=3136 at 1/4 scale)에서는 (3136)²≈ 10M 쌍을 계산한다. W-MSA는 2M²hwC — M=7로 고정되므로 hw에 선형이다. 이미지가 4배 커져도 연산은 4배만 늘어난다.
직관: 전역 어텐션은 "반의 모든 사람과 악수"이고, 윈도우 어텐션은 "내 테이블 사람들하고만 악수"이다. Shifted Window는 레이어마다 테이블 배치를 바꿔 간접적으로 모든 사람과 연결된다.
수학적 유도
Self-attention의 주요 연산 비용: (1) Q,K,V 투영 3×hwC×C = 3hwC², 출력 투영 hwC×C = hwC² → 합계 4hwC². (2) QKᵀ 계산: 각 쌍에 대해 d차원 dot-product → 전역에서 (hw)² 쌍 × C = 2(hw)²C (행렬 곱은 대칭이므로 2 대신 2, 실제론 (hw)²/2 × 2 = (hw)²C지만 논문은 2(hw)²C로 표기). W-MSA: (hw/M²)개 윈도우에서 각각 M²개 패치 → M² 쌍 = (hw/M²)×(M²)² × C = 2M²hwC.
수식 2 — Swin Transformer Block 연산 순서
| 변수 | 의미 | 비고 |
|---|---|---|
z^l | 레이어 l의 출력 (MLP 이후) | 잔차 포함 |
ẑ^l | MSA 서브레이어의 출력 (MLP 이전) | 잔차 포함 |
LN | Layer Normalization | Pre-Norm 방식 |
W-MSA / SW-MSA | 규칙/이동 윈도우 멀티헤드 셀프 어텐션 | 레이어 l/l+1에 교대 적용 |
직관적 해설
수학적 유도
수식 3 — 상대 위치 편향을 포함한 어텐션
| 변수 | 의미 | 비고 |
|---|---|---|
Q, K, V | Query, Key, Value 행렬 ∈ ℝ^{M²×d} | M²=49 (M=7일 때) |
d | 각 헤드의 쿼리/키 차원 | d=32 고정 |
B | 상대 위치 편향 ∈ ℝ^{M²×M²} | B̂ ∈ ℝ^{(2M-1)×(2M-1)}에서 참조 |
직관적 해설
수학적 유도
수식 슬라이더 — 윈도우 크기 M에 따른 W-MSA 복잡도 변화
보충 M을 변경하면 W-MSA의 어텐션 연산량이 어떻게 달라지는지 직접 확인해 보세요. h=w=56 (Stage 1, 224×224 입력), C=96 고정.
| 모델 | C | 레이어 수 (Stage 1~4) | 파라미터 | FLOPs | 처리량 (img/s) | ImageNet top-1 |
|---|---|---|---|---|---|---|
| Swin-T | 96 | {2, 2, 6, 2} | 29M | 4.5G | 755.2 | 81.3% |
| Swin-S | 96 | {2, 2, 18, 2} | 50M | 8.7G | 436.9 | 83.0% |
| Swin-B | 128 | {2, 2, 18, 2} | 88M | 15.4G | 278.1 | 83.5% |
| Best Swin-L | 192 | {2, 2, 18, 2} | 197M | 103.9G | 42.1 | 87.3% (22K pretrain) |
윈도우 크기 M=7, 쿼리 차원 d=32, MLP 확장 비율 α=4 (모든 변형 공통). Swin-T, Swin-S는 ResNet-50, ResNet-101에 유사한 복잡도.
| 항목 | 설정값 |
|---|---|
| 옵티마이저 | AdamW (β₁=0.9, β₂=0.999) |
| 학습률 | 초기 0.001, Cosine Decay |
| 웜업 | 20 에포크 선형 워밍업 |
| 에포크 | 300 |
| 배치 크기 | 1024 |
| Weight Decay | 0.05 |
| 데이터 증강 | RandAugment, CutMix, Mixup, Random Erasing |
| 정규화 | Stochastic Depth (비율 0.2) |
| 하드웨어 | 8× V100 GPU |
보충 반복 증강(Repeated Augmentation)과 EMA는 DeiT와 달리 제외했다. ViT와 달리 Swin은 이 기법 없이도 안정적으로 학습된다 — 이는 귀납적 편향(지역성, 계층성)이 학습 안정성에 기여함을 시사한다.
| 방법 | 이미지 크기 | #Param | FLOPs | 처리량(img/s) | Top-1 |
|---|---|---|---|---|---|
| Baseline ViT-B/16 | 384² | 86M | 55.4G | 85.9 | 77.9% |
| Baseline DeiT-S | 224² | 22M | 4.6G | 940.4 | 79.8% |
| Baseline DeiT-B | 224² | 86M | 17.5G | 292.3 | 81.8% |
| Baseline RegNetY-16G | 224² | 84M | 16.0G | 334.7 | 82.9% |
| Ours Swin-T | 224² | 29M | 4.5G | 755.2 | 81.3% |
| Ours Swin-S | 224² | 50M | 8.7G | 436.9 | 83.0% |
| Ours Swin-B | 224² | 88M | 15.4G | 278.1 | 83.5% |
Swin-T는 DeiT-S 대비 +1.5% 향상, Swin-S는 DeiT-B 대비 +1.2%, 더 높은 처리량으로. 처리량은 V100 GPU에서 측정.
| 설정 | ImageNet Top-1 | COCO Box AP | COCO Mask AP | ADE20K mIoU |
|---|---|---|---|---|
| 이동 없음 (w/o shifting) | 80.2% | 47.7 | 41.5 | 43.3 |
| 기본값 Shifted Windows | 81.3% | 50.5 | 43.7 | 46.1 |
| 위치 인코딩 없음 | 80.1% | 49.2 | 42.6 | 43.8 |
| 절대 위치 임베딩 (abs. pos.) | 80.5% | 49.0 | 42.4 | 43.2 |
| 절대 + 상대 위치 (abs.+rel.) | 81.3% | 50.2 | 43.4 | 44.0 |
| 기본값 상대 위치 편향 (rel. pos.) | 81.3% | 50.5 | 43.7 | 46.1 |
평가 에블레이션에서 주목할 점: 절대 위치 임베딩은 ImageNet 분류에서 +0.4%를 주지만 물체 감지와 분할에서 오히려 성능이 떨어진다(-0.2 box AP, -0.6 mIoU). 이는 ViT의 선택(절대 위치 임베딩)이 분류에는 충분하나 범용 비전에는 최선이 아님을 보여준다.
Swin-T는 동일 프레임워크 내에서 ResNet-50 대비 일관되게 +3.4~+4.2 box AP 향상을 보입니다. 같은 검출 프레임워크, 동일한 설정, 백본만 교체.
Cyclic Shift 방식(755 img/s)은 이동 없는 윈도우(770)에 가까운 속도를 유지하면서, 나이브 슬라이딩 윈도우(183)보다 4× 빠릅니다.
| 얻은 것 | 포기한 것 |
|---|---|
| 이미지 크기에 선형적 복잡도 (O(M²hw)) | 단일 레이어 전역 수용장 |
| 계층적 특징 맵 → FPN/UperNet 즉시 호환 | 단순한 아키텍처 (ViT 대비 복잡한 Cyclic Shift + Masking) |
| 하드웨어 효율적 메모리 접근 (동일 키 집합) | 고정 윈도우 크기 M — 동적 적응 어려움 |
| 이미지 분류 + 감지 + 분할 모두 SOTA | 커널 최적화 미완성 → 실제 지연 과소평가 가능성 |
Swin Transformer는 발표 당시 이미지 분류, 물체 감지, 의미론적 분할에서 동시에 SOTA를 달성한 최초의 순수 Transformer 기반 범용 비전 백본이다. 이후 비전 분야 연구의 흐름을 크게 바꾸었다.
누구에게 도움이 되는가?
객체 감지, 인스턴스 분할, 의미론적 분할, 동영상 이해, 의료 이미지 분석, 위성/항공 이미지 처리 등 고해상도 입력을 다루는 모든 비전 과제에서 강력한 백본으로 활용 가능하다. Mask R-CNN, Cascade Mask R-CNN, UperNet 등 기존 프레임워크와 즉시 호환되어, 기존 파이프라인에 ResNet/ResNeXt를 Swin으로 단순 교체하는 것만으로 성능 향상을 얻을 수 있다.
저자가 제안한 후속 과제
언어와 시각을 통합한 범용 모델 — "It is our belief that a unified architecture across computer vision and natural language processing could benefit both fields." 실제로 이 방향은 이후 Florence, DALL-E, LLaVA 등 멀티모달 모델로 이어졌다.
Swin-Mixer (Appendix A3.3)
계층적 설계와 Shifted Window를 MLP-Mixer 아키텍처에도 적용한 실험을 논문 부록에서 보고한다. MLP-Mixer 대비 81.3% vs 76.4%로 크게 향상되어, Swin의 설계 원리가 Transformer뿐 아니라 다른 아키텍처에도 일반화됨을 시사한다.
슬라이딩 윈도우 어텐션은 이론적으로 윈도우 간 연결을 자연스럽게 제공하지만, 서로 다른 쿼리 픽셀이 서로 다른 키 집합을 사용하므로 하드웨어 메모리 접근이 비효율적이다 — 실제 지연 시간이 매우 크다(183 img/s). Shifted Window는 규칙 윈도우(W-MSA)와 이동 윈도우(SW-MSA)를 교대로 쌓아 간접적으로 전역 연결을 만든다. 같은 윈도우 내 패치들이 같은 키 집합을 공유하므로 하드웨어가 효율적으로 처리한다(755 img/s). Table 5가 이 차이를 정량적으로 보여준다.
절대 위치 임베딩은 각 위치에 고정된 벡터를 더하는 방식으로, 사전학습 시 보지 못한 해상도에 대해 보간(interpolation)이 필요하다. 상대 위치 편향은 두 패치 간의 상대 거리에 의존하므로, 다른 이미지 크기로 전이할 때 더 잘 일반화된다. 에블레이션(Table 4)에서 절대 위치 임베딩을 추가하면 ImageNet 분류 +0.4%지만 COCO 감지와 ADE20K 분할에서 오히려 하락함이 확인된다 — 범용 백본에는 상대 위치 편향이 더 적합하다.
평가 이는 분류와 밀집 예측 과제의 귀납적 편향 차이를 보여주는 흥미로운 사례다. 분류는 위치에 무관한(translation invariant) 표현이 유리할 수 있지만, 감지·분할은 상대적 공간 관계가 더 중요하다.
2×2 이웃 패치의 특징 벡터를 연결(concatenate)하면 4C 차원이 되고, 선형 레이어로 2C로 투영한다. 공간 해상도는 1/2로 줄고 채널은 2배 증가한다. CNN의 풀링/스트라이드 합성곱과 동일한 역할이다. Max Pooling이나 Average Pooling 대신 선형 투영을 쓰는 이유는 정보 손실을 최소화하고 학습 가능한 방식으로 다운샘플링하기 위해서다. 평가 논문은 명시하지 않지만, 이 설계는 PatchMerge가 연결(concat) 후 차원을 줄이므로 모든 서브패치의 정보를 학습적으로 통합할 수 있다는 장점이 있다.
Swin-T(29M 파라미터, 4.5G FLOPs)와 ResNet-50(25M, 4.1G FLOPs)은 비슷한 규모로 설계되었다. 저자는 Swin-T를 DeiT-S와도 유사한 복잡도로 맞추어 공정한 비교를 의도했다. 하지만 Swin-T는 같은 FLOPs에서 ResNet-50보다 상당히 높은 성능(81.3% vs. ~76%)을 내므로, 효율성이 실질적으로 향상됐음을 보여준다.
논문 발표 이후 Swin Transformer는 다양한 도메인에서 성공적으로 적용되었다: Video Swin Transformer(동영상 이해), SwinIR(이미지 복원), SwinTransformer for Medical Image Segmentation, 위성 이미지 분석 등. 계층적 구조와 지역 어텐션은 이미지뿐 아니라 공간 구조가 있는 모든 데이터에 적합하다. 단, 순차 데이터(텍스트, 오디오)에는 Shifted Window 전략이 자연스럽게 적용되지 않는다.
논문에서 직접 밝힌 공개 링크: https://github.com/microsoft/Swin-Transformer. PyTorch 구현과 ImageNet 사전학습 가중치, mmdetection/mmsegmentation 설정 파일이 포함되어 있다.
평가 논문은 명시하지 않지만, 이후 발표된 Swin-V2는 여러 한계를 개선한다: (1) 학습 해상도 전이를 위한 log-spaced 연속 위치 편향, (2) 큰 모델 학습 불안정성을 해결하는 cosine attention, (3) 30억 파라미터까지 스케일링 가능한 설계. 이는 본 논문에서 남긴 고정 M, 사전학습 스케일 한계를 직접 해결한 것이다.
논문 Appendix A3.1에서 다양한 입력 해상도로 Swin Transformer를 평가했다. 더 큰 이미지 입력은 정확도를 높이지만 처리량이 감소한다.
| 입력 크기 | 처리량 (img/s) | FLOPs | ImageNet Top-1 |
|---|---|---|---|
| 224² | 278.1 | 15.4G | 83.5% |
| 256² | 219.5 | - | 83.7% |
| 320² | 82.1 → 132.0 | - | 84.0% |
| 384² | 84.7 | 47.0G | 84.5% |
[부록 추가] Appendix에서 제공하는 추가 설정값:
| 항목 | 값 |
|---|---|
| 기반 프레임워크 | UperNet (mmsegmentation) |
| 옵티마이저 | AdamW, 초기 lr=6×10⁻⁵, weight decay=0.01 |
| 스케줄러 | 선형 학습률 감쇠, 1500 iteration 웜업 |
| 반복 횟수 | 160K iterations |
| 배치 크기 | GPU당 2장, 총 8GPU |
| 입력 크기 | Swin-T/S: 512×512, Swin-B/L(22K): 640×640 |
| Stochastic Depth | 비율 0.2 (모든 Swin 변형) |
| 데이터 증강 | 수평 뒤집기, [0.5, 2.0] 비율 리스케일링, 광도 왜곡 |
| 추론 | 멀티스케일 테스트 [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]× |
[부록 추가] 계층적 설계와 Shifted Window를 순수 MLP 아키텍처에 적용한 Swin-Mixer 실험. 이는 본 논문의 설계 원리가 Transformer 특화가 아님을 증명한다.
| 방법 | 이미지 크기 | #Param | FLOPs | 처리량 | Top-1 |
|---|---|---|---|---|---|
| Baseline MLP-Mixer-B/16 | 224² | 59M | 12.7G | - | 76.4% |
| Baseline ResMLP-S24 | 224² | 30M | 6.0G | 715 | 79.4% |
| Ours Swin-Mixer-B/D24 | 224² | 61M | 10.4G | 409 | 81.3% |
Swin-Mixer가 MLP-Mixer 대비 81.3% vs 76.4%로 크게 향상. "These results indicate the proposed hierarchical design and the shifted window approach are generalizable."
[부록 추가] 논문은 ResNe(X)t 백본에 SGD 대신 AdamW를 사용하는 것이 공정한 비교를 위해 더 좋다고 밝힌다. AdamW를 쓰면 ResNe(X)t도 성능이 오르기 때문에 비교 기준이 올라가지만, Swin은 여전히 이를 넘어선다.
평가 이 설정은 공정한 비교를 위한 세심한 배려다. 단순히 SGD 사용 ResNe(X)t와 비교했다면 성능 차이가 더 크게 보였을 것이다. 저자는 보수적 기준으로 비교하여 결과의 신뢰도를 높였다.
독자가 원본 논문의 어느 부분을 펴야 할지 바로 알 수 있도록, 논문의 주요 Figure를 원본 그대로 보존합니다.