Vision Transformer — 이미지를 위한 트랜스포머
Vision Transformer(ViT)는 NLP에서 성공한 Transformer 아키텍처를 이미지 분류에 적용한 모델입니다. 이미지를 패치(Patch) 단위로 분할하여 시퀀스로 변환한 뒤, Self-Attention으로 전역적 관계를 학습합니다.핵심 아이디어
CNN은 로컬 영역(커널)을 순차적으로 확장하여 전역 정보를 파악합니다. 반면 ViT는 첫 번째 레이어부터 이미지 전체의 패치 간 관계를 직접 학습합니다. “An Image is Worth 16x16 Words”라는 논문 제목처럼, 16x16 픽셀 패치를 하나의 토큰으로 취급합니다.동작 방식
패치 임베딩 (Patch Embedding)
224x224 이미지를 16x16 패치로 분할하면 14x14 = 196개의 패치가 생성됩니다. 각 패치는 선형 변환(Linear Projection)으로 D차원 벡터로 변환됩니다.CLS 토큰과 위치 임베딩
구현
timm으로 ViT 사용
Attention Map 시각화
관련 모델 비교
| 모델 | 핵심 개선 | 장점 |
|---|---|---|
| ViT-B/16 | 순수 Transformer | 대규모 데이터에서 최고 성능 |
| DeiT | Knowledge Distillation | ImageNet만으로 효과적 학습 |
| Swin Transformer | 윈도우 기반 어텐션, 계층 구조 | 효율적, 탐지/세그멘테이션에도 활용 |
| BEiT | Masked Image Modeling | 자기지도 사전학습 |
| MAE | Masked Autoencoder | 높은 마스킹 비율로 효율적 사전학습 |
Swin Transformer
Swin Transformer는 ViT의 계산 비용 문제를 해결합니다. 이미지 전체 대신 로컬 윈도우 내에서 Self-Attention을 수행하고, Shifted Window로 윈도우 간 정보를 교환합니다.CNN vs ViT 선택 기준
| 기준 | CNN 추천 | ViT 추천 |
|---|---|---|
| 데이터 규모 | 수천 장 이하 | 수만 장 이상 |
| GPU 자원 | 제한적 | 충분 |
| 추론 속도 | 중요 | 덜 중요 |
| 태스크 | 분류, 탐지 | 분류, 멀티모달 |
| 해석 가능성 | Grad-CAM | Attention Map |
ViT가 CNN을 완전히 대체하나요?
ViT가 CNN을 완전히 대체하나요?
아닙니다. 소규모 데이터에서는 여전히 CNN이 유리하며, 엣지 배포에서는 CNN이 더 효율적입니다. 실무에서는 ConvNeXt처럼 Transformer의 장점을 흡수한 CNN이 좋은 절충안이 됩니다.
패치 크기(16 vs 32)의 영향은?
패치 크기(16 vs 32)의 영향은?
패치 크기가 작을수록 더 세밀한 특징을 포착하지만 시퀀스 길이가 길어져 계산 비용이 증가합니다. 16x16이 표준이며, 속도가 중요하면 32x32를 사용할 수 있습니다.
참고 논문
| 논문 | 학회/연도 | 링크 |
|---|---|---|
| An Image is Worth 16x16 Words (ViT) | ICLR 2021 | arXiv:2010.11929 |
| Training data-efficient image transformers (DeiT) | ICML 2021 | arXiv:2012.12877 |
| Swin Transformer | ICCV 2021 | arXiv:2103.14030 |
| Masked Autoencoders (MAE) | CVPR 2022 | arXiv:2111.06377 |

