IT Study/인공지능 관련

🤖 비전 트랜스포머(Vision Transformer)

cs_bot 2025. 3. 30. 23:17

1. 비전 트랜스포머(ViT)의 개요

  • 비전 트랜스포머(Vision Transformer, 이하 ViT)는 2020년 Google Research에서 제안된 이미지 분류 모델임
  • 기존 CNN 기반 이미지 분류 구조를 Transformer 구조로 대체함
  • 자연어 처리에서 우수한 성능을 보인 Transformer 구조를 이미지 처리에 그대로 적용한 것이 핵심임
  • ResNet 등의 CNN 기반 모델 대비 더 적은 inductive bias를 가짐
  • 대용량 데이터와 긴 학습 시간이 요구되나, 사전 학습(pretraining)을 거치면 우수한 성능을 보임

2. 기존 CNN과 ViT의 구조적 차이점

(1) CNN의 구조적 특징

  • 지역 수용 영역(Receptive Field)을 기반으로 함
  • Conv layer → Pooling → Fully Connected Layer로 이어지는 피라미드 구조 사용
  • 지역 정보는 잘 포착되나, 전역 정보(Global Context) 확보는 한계가 있음
  • Translation Invariance 등 도메인 특화 inductive bias를 강하게 내재함

(2) Transformer의 구조적 특징

  • 입력 전체에 대해 self-attention을 수행함으로써 전역적 관계 파악에 유리함
  • 위치 정보는 별도의 Positional Encoding으로 주입함
  • Multi-Head Attention과 Feedforward Network를 교차적으로 반복함
  • Layer Normalization, Residual Connection 구조 활용

(3) CNN vs ViT 비교 정리

항목 CNN ViT
인덕티브 바이어스 강함 약함
입력 구조 2D 이미지 직접 입력 패치 분할 후 flatten하여 입력
학습 데이터 요구량 적음 많음
성능 향상 방식 구조 설계 최적화 데이터와 연산량 증가

3. ViT의 기본 구조와 처리 절차

(1) 이미지 패치 분할

  • 입력 이미지 크기: $( H \times W \times C $)
  • 고정 크기의 패치(Patch)로 분할: $( P \times P $)
  • 각 패치를 벡터로 변환하여 Flatten한 후 Linear Projection 수행
  • 전체 이미지가 $( N = \frac{HW}{P^2} $)개의 시퀀스로 변환됨

(2) Positional Encoding 추가

  • Transformer는 순서 정보가 없기 때문에 각 패치에 위치 정보를 부여해야 함
  • 학습 가능한 positional embedding 또는 고정된 사인/코사인 방식 사용 가능

(3) 클래스 토큰(class token) 삽입

  • [CLS] 토큰을 시퀀스 맨 앞에 추가
  • 최종적으로 [CLS] 토큰의 출력만을 이용해 분류 수행

(4) Transformer Encoder 적용

  • Multi-Head Self Attention → MLP Block 반복
  • 일반적으로 12~24개의 Encoder Layer 사용
  • 각 Layer는 Residual Connection과 Layer Norm 포함

(5) 최종 분류

  • [CLS] 토큰 출력값을 Fully Connected Layer에 입력하여 class prediction 수행

4. ViT의 수학적 처리 과정

이미지 패치화 및 인코딩

$$
X \in \mathbb{R}^{H \times W \times C} \Rightarrow \text{patches } x_p \in \mathbb{R}^{N \times (P^2 \cdot C)}
$$
$$
Z_0 = [x_{\text{class}}; x_p^1E; x_p^2E; \ldots; x_p^NE] + E_{\text{pos}}
$$
(E는 Linear Projection 행렬, $( E_{\text{pos}} $)는 Positional Encoding)

Transformer Encoder 반복

$$
Z_l' = \text{MSA}(\text{LN}(Z_{l-1})) + Z_{l-1}
$$
$$
Z_l = \text{MLP}(\text{LN}(Z_l')) + Z_l'
$$

최종 출력 및 분류

$$
y = \text{softmax}(W \cdot Z_L^{\text{[CLS]}})
$$


5. ViT의 장단점

(1) 장점

  • 전역 정보 처리 능력이 우수함
  • 대규모 데이터셋에서 기존 CNN 대비 우수한 성능 달성함
  • 구조적 단순함으로 인해 다양한 비전 태스크로 확장 가능함
  • 사전학습(pretraining) 및 전이학습(finetuning)에 유리함

(2) 단점

  • 작은 데이터셋에서는 CNN보다 성능이 떨어지는 경향 있음
  • 학습에 필요한 연산량과 메모리 요구량이 큼
  • positional encoding이 정교하지 않으면 성능 저하 가능
  • low-level feature 추출 능력은 CNN보다 떨어질 수 있음

6. ViT의 확장 및 응용

(1) DeiT (Data-efficient Image Transformer)

  • Knowledge Distillation을 통해 적은 데이터로도 ViT 학습 가능하도록 함

(2) Swin Transformer

  • 패치 내부에서 이동식 창 기반의 지역 attention을 수행함으로써 연산량 절감함
  • 계층적 구조(Hierarchical)를 통해 다중 해상도 정보 처리 가능함

(3) Hybrid 모델

  • 초기 feature 추출은 CNN으로 처리하고 후반은 Transformer 구조를 이용함
  • low-level과 high-level feature의 결합 구조로 성능 향상 도모

(4) 응용 분야

  • 이미지 분류, 객체 탐지, 이미지 분할, 비디오 처리, 의료 영상 등 다방면 활용 가능함
  • CLIP, DINO 등 다양한 self-supervised 및 multi-modal 모델의 backbone으로 활용됨

7. 요약 및 시사점

  • CNN 중심의 비전 모델 설계에서 Transformer 기반 설계로의 패러다임 전환 신호임
  • 구조적 유연성과 범용성을 확보함으로써 다양한 도메인에서 통합 모델 개발 가능함
  • GPU 연산 자원의 활용 증가에 따른 구조 선택 전략 및 자원 최적화 필요성 대두됨
  • 향후 인공지능 모델은 modality 통합(텍스트+이미지+음성)을 지향하게 되며, ViT는 그 중심축으로 기능할 수 있음