본문 바로가기
On Going/Deep Learning

[ViT] Vision Transformer 리뷰

by 에아오요이가야 2025. 3. 24.

비전 트랜스포머(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으로 변환한 후 일부 패치를 가려 예측- 사전학습된 표현을 활용해 감독학습 없이도 높은 성능 달성 가능

댓글