비전 트랜스포머(ViT)는 이미지를 입력으로 받아 Transformer 인코더만으로 특징을 추출하는 모델입니다. ViT는 먼저 입력 이미지를 고정 크기의 패치(patch)들로 분할합니다. 예를 들어 224 ×224 RGB 이미지를 16 ×16 크기의 패치로 나누면 패치 1개는 16 ×16 ×3 픽셀이고, 전체 패치는 14 ×14=196개가 생성됩니다. 각 패치는 2차원 픽셀을 1차원으로 평탄화한 후 선형 변환을 거쳐 패치 임베딩 벡터로 변환됩니다
1. ViT 모델 구조 개요
이미지를 일정 크기의 패치들로 분할한 뒤(아래 패치 예시) 각 패치를 벡터로 임베딩하고, 위치 인코딩을 더하여 Transformer 인코더(위 부분)에 입력한다. 인코더는 여러 층의멀티헤드 자가주목과 MLP로 이루어진다. 최종적으로 맨 앞의 [CLS] 토큰에 대응하는 출력 벡터를 별도의 MLP 분류기에 입력하여 이미지의 클래스를 예측한다.
ViT의 Transformer 인코더 구성은 NLP의 BERT와 유사한 인코더 전용 아키텍처입니다. 각 인코더 블록은 Layer Normalization (정규화)과 잔차 연결이 포함된 표준 Transformer 구조로, 멀티헤드 자가 주의(Multi-head Self-Attention) 기법을 통해 입력 시퀀스(패치들) 간의 상관관계를 학습합니다. 하나의 인코더 블록에서는 다중 헤드로 구성된 Self-Attention을 통해 전역적인 특징을 통합한 후, 두 계층으로 구성된 MLP(활성함수 GELU 사용)를 통해 각 위치의 표현을 비선형 변환합니다. 이러한 Self-Attention과 MLP 모듈이 교대로 쌓이면서 패치 임베딩 들은 점차 풍부한 표현으로 변환됩니다. 원본 ViT-B/16 등의 모델에서는 이러한 인코더 블록이 12층 이상 반복되며, 최종적으로 맨 앞에 넣었던 [CLS] 토큰의 출력 벡터가 전체 이미지의 표현으로 간주됩니다. 이 벡터를 분류 헤드(일반적으로 단순한 1-2 계층 MLP)로 전달하여 최종 이미지 분류 결과를 얻습니다.
요약하면, ViT는 이미지를 패치 단위 토큰 시퀀스로 처리하여 “16 ×16 픽셀은 하나의 단어”처럼 간주하고 Transformer를 적용한 것이라고 볼 수 있습니다.
2. ViT와 CNN의 차이
항목 | Vision Transformer (ViT) | Convolutional Neural Network (CNN) |
특징 추출 방식 | 이미지를 패치로 분할 후, self-attention을 통해 전역적인 관계 학습 | **국소 필터(커널)**를 통해 로컬 특징 감지, 계층적으로 전역 특성 학습 |
전역 문맥 파악 | 한 층의 self-attention으로 전체 패치 간 상호작용 가능 | 여러 계층을 거쳐야 전체 receptive field 확보 가능 |
공간 위치 처리 | 포지셔널 인코딩 필요 (Transformer는 순서 정보 없음) | 합성곱 연산이 이미지 구조를 암시적으로 유지, 위치 불변성 내재 |
연산 구조 및 복잡도 |
Self-Attention은 O(N²) 복잡도 → 연산량·메모리 높음 | 합성곱은 O(N) 복잡도 → 효율적이고 최적화된 연산 구조 |
귀납적 바이어스 |
약한 inductive bias → 유연성 높지만 데이터 요구 많음 | 강한 inductive bias (지역성, 이동 불변성) → 적은 데이터로도 일반화 가능 |
데이터 효율성 | 소규모 데이터셋에서는 과적합 위험 큼, 일반적으로 사전학습 필수 | 구조적 규제 효과로 소량 데이터에서도 학습 안정적 |
확장성 | 구조 제약 적음 → 초대형 모델로의 확장 용이, 성능 지속 향상 가능 | 지나치게 크면 학습 불안정 또는 성능 정체, 확장에 한계 있음 |
요약하면 ViT는 “데이터로부터 배움을 극대화하도록 설계된 범용 모델”이고, CNN은 “이미지에 특화된 규칙을 활용하는 모델”이라고 볼 수 있습니다.
3. ViT의 장단점
구분 | 장점 | 단점 |
성능 | 대규모 데이터로 학습 시 최고 수준의 이미지 분류 성능- 모델 크기 확장 시 성능 지속 상승 | 데이터가 부족하거나 학습이 미흡하면 CNN보다 성능 낮음- 소규모 데이터셋에선 일반화 어려움 |
데이터 효율성 |
사전학습 및 fine-tuning 조합 시 강력한 성능- 지식 증류 및 데이터 증강으로 성능 보완 가능 | 구조적 inductive bias 부족 → 학습에 많은 데이터 필요- 수천만~수억 장 학습 필요 가능성 |
해석력 | Self-Attention 시각화를 통해 주목 영역 파악 가능- Attention Map으로 부분적 해석 가능 | Attention 가중치가 직관적 해석 근거는 아님- 여전히 “블랙박스” 모델에 가까움 |
연산 자원 |
병렬화 친화적 구조- 한번 사전학습하면 다양한 다운스트림에 활용 용이 | 파라미터 수 많고 메모리 사용량 큼- 학습 및 추론에 고사양 GPU/TPU 요구 |
4. ViT의 학습 방식과 성능 비교
• 사전학습 + 파인튜닝 구조:
ViT는 일반적으로 대규모 데이터로 사전학습(pre-training) 후, **작은 데이터셋에 파인튜닝(fine-tuning)**하는 방식으로 사용됩니다.
• 데이터와 모델 크기에 따라 성능 향상:
ViT는 데이터와 모델 크기가 커질수록 성능이 꾸준히 상승하며, 최근엔 SOTA를 경신하는 초대형 모델도 등장했습니다 (예: ViT-G/14).
• DeiT의 등장으로 경량 학습 가능:
DeiT는 지식 증류와 데이터 증강을 통해 소규모 데이터로도 ViT 학습 가능함을 증명했습니다.
• 자기지도 사전학습 기법 (BEiT, MAE):
레이블 없이도 마스킹 기반 학습으로 강력한 표현력을 갖춘 모델을 만들 수 있습니다. 이는 NLP의 BERT 방식과 유사하며 “비전 분야의 BERT 모멘트”라 불리기도 합니다.
• 다양한 비전 과제에 확장:
ViT는 분류를 넘어 객체 검출, 분할, 자율주행, 멀티모달 학습(CLIP) 등 다양한 분야에 활용되며 기존 CNN을 대체하고 있습니다.
5. ViT기반 응용 모델
모델 | 핵심 아이디어 및 특징 |
DeiT | - 소규모 데이터셋에서도 ViT를 효과적으로 학습할 수 있도록 설계- **지식 증류(knowledge distillation)**와 강력한 데이터 증강 기법을 사용- 별도의 Distillation Token을 추가하여 교사 모델(CNN)의 inductive bias를 전달 |
Swin Transformer |
- ViT에 **국소적 self-attention (윈도우 기반)**을 도입하여 연산 효율 향상- 윈도우를 슬라이딩(Shift) 시켜 전역 정보도 학습 가능- 계층적 구조로 CNN처럼 다중 스케일 특성을 학습하며, 객체 검출·분할에도 적합 |
BEiT | - **BERT 방식의 자기지도 학습(Masked Image Modeling)**을 ViT에 적용- 이미지를 discrete token으로 변환한 후 일부 패치를 가려 예측- 사전학습된 표현을 활용해 감독학습 없이도 높은 성능 달성 가능 |
댓글