Recent Posts
Recent Comments
Link
Today
Total
03-03 16:35
관리 메뉴

Hippo's data

[Paper review] VIT(Vision Transformer) 본문

Paper review

[Paper review] VIT(Vision Transformer)

Hippo's data 2026. 3. 3. 11:40
728x90

Paper: AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE (Alexey Dosovitskiy et al.)

 

GitHub - google-research/vision_transformer

Contribute to google-research/vision_transformer development by creating an account on GitHub.

github.com

 

 

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

While the Transformer architecture has become the de-facto standard for natural language processing tasks, its applications to computer vision remain limited. In vision, attention is either applied in conjunction with convolutional networks, or used to rep

arxiv.org

 

 

이미지패치단위로 분할하여 Transformer 적용

1. SUMMARIZE

항목 핵심 내용
Problem NLP는 Transformer가 표준이나, 비전은 여전히 CNN이 주류
• 기존 비전 모델은 이미지의 지역성(Locality)과 이동 불변성(Translation Invariance)이라는 Inductive Bias에 지나치게 의존
Method VIT(Vision Transformer)
1. Transformer Encoder input
• Image 패치화 (Patch)
Flatten + Linear Projection
• CLS 토큰 추가, Position Embedding

2. Transformer Encoder
MSA(Multi Head Self-Attention), MLP
• Layer Normalization (LN)
• Residual Connections

3. MLP Head
Results 대규모 데이터셋에서 SOTA 달성
• ImageNet(중간 규모)에서는 Inductive Bias 부족으로 성능이 낮으나, JFT-300M(초대규모) 사전 학습 시 데이터 양으로 이를 극복하며 최신 CNN 모델을 압도.
• 동일 성능 대비 CNN보다 계산 비용(Computational Cost)이 더 효율적
Contribution • 이미지를 픽셀 그리드가 아닌 패치 시퀀스로 정의하여, 비전 문제를 NLP 방식으로 해결하는 프레임워크 제시
• 복잡한 CNN 없이 "대량의 데이터 + 기본 Transformer" 조합

 

2. DETAIL

1. Introduction

NLP 분야 → Transformer 도입 성공

CV분야 → 여전히 CNN 아키텍처 지배적, CNN + Self Attention 연구 진행

→ Transformer 구조 CV분야에 직접 적용하는 방식 제안

2. RELATED WORK

CV 분야 Transformer 도입 접근방식

  • 이미지에 Self-Attention 직접 적용 → 각 모든 픽셀에 대해 어텐션 → $O(N^2)$
  • 다양한 근사(approximate) 방식 시도(국소적, 희소(sparse), 축별(axial) 어텐션)
  • VIT와 가장 유사한 선행연구
    • Paper: On the Relationship between Self-Attention and Convolutional Layers (2020, Cordonnier et al.)
    • 2 X 2 패치 → Self-Attention (CNN 국소적인 정보처리능력을 작은 패치단위 어텐션을 통해 대체)
    • 고정된 패치단위 연구 → 작은 해상도만 처리 가능 (2x2 패치)
    • VIT
      • 더 큰 크기 패치→ 더 큰 해상도 처리가능, 큰 데이터셋 학습 가능

3. METHOD

3.1 VISION TRANSFORMER (VIT)

$$
\begin{aligned}
\mathbf{z}_0 &= [\mathbf{x}_{\text{class}}; \mathbf{x}_p^1 \mathbf{E}; \cdots ; \mathbf{x}_p^N \mathbf{E}] + \mathbf{E}_{\text{pos}}, && \mathbf{E} \in \mathbb{R}^{(P^2 \cdot C) \times D}, \mathbf{E}_{\text{pos}} \in \mathbb{R}^{(N+1) \times D} & \text{(1)} \\
\mathbf{z}'_\ell &= \text{MSA}(\text{LN}(\mathbf{z}_{\ell-1})) + \mathbf{z}_{\ell-1}, && \ell = 1 \dots L & \text{(2)} \\
\mathbf{z}_\ell &= \text{MLP}(\text{LN}(\mathbf{z}'_\ell)) + \mathbf{z}'_\ell, && \ell = 1 \dots L & \text{(3)} \\
\mathbf{y} &= \text{LN}(\mathbf{z}_L^0) && & \text{(4)}
\end{aligned}
$$

📌VIT 과정
  1. Transformer Encoder input
  2. Transformer Encoder
  3. MLP Head

 

1. Transformer Encoder input

$$
\begin{aligned}
\mathbf{z}_0 &= [\mathbf{x}_{\text{class}}; \mathbf{x}_p^1 \mathbf{E}; \cdots ; \mathbf{x}_p^N \mathbf{E}] + \mathbf{E}_{\text{pos}}, && \mathbf{E} \in \mathbb{R}^{(P^2 \cdot C) \times D}, \mathbf{E}_{\text{pos}} \in \mathbb{R}^{(N+1) \times D} & \text{(1)}
\end{aligned}
$$

  • 이미지 패치
    • 원본이미지($x∈R^{H×W×C}$) → P X P 개의 패치로 분할($x_p​∈R^{N×(P^2⋅C)}$)
    • H: 높이 / W: 너비 / C: 채널 (RGB = 3채널)
    • 패치 총 개수 N = H×W / $P^2$
  • 평탄화(Flatten)
    • 1D 시퀀스
  • 선형투영(Linear Projection)
    • $E∈R^{(P^2⋅C)×D}$ → D차원 임베딩 벡터로 변환
  • CLS 토큰 추가
    • 패치 임베딩 제일 앞
    • 최종 이미지 분류에 사용됨
    • $\mathbf{x}_{\text{class}}$
  • 위치 임베딩(Position Embedding)
    • 각 패치들의 공간적 위치 정보를 유지하기 위함
    • $E_{pos}​∈R^{(N+1)×D}$

 

2. Transformer Encoder

  • Multi-Head Self-Attention (MSA)
    • $\begin{aligned} 
      \mathbf{z}'_{\ell} &= \text{MSA}(\text{LN}(\mathbf{z}_{\ell-1})) + \mathbf{z}_{\ell-1}, & \ell &= 1 \dots L & \text{(2)} 
      \end{aligned}$
  • MLP
    • $\begin{aligned}\mathbf{z}_\ell &= \text{MLP}(\text{LN}(\mathbf{z}'_\ell)) + \mathbf{z}'_\ell, && \ell = 1 \dots L & \text{(3)}\end{aligned}$
  • Layer Normalization (Norm)
    • MSA, MLP 전 적용(Pre-LN)
  • Residual Connections (+)
    • MSA, MLP 이후 적용
    • input값을 해당 출력에 직접 더해주는 방식
    • 모델이 깊어질때, 학습이 안정되도록
    • = skip connection
    • $\begin{aligned} 
      \mathbf{z}'_{\ell} &= \text{MSA}(\text{LN}(\mathbf{z}_{\ell-1})) + \mathbf{z}_{\ell-1}, & \ell &= 1 \dots L & \text{(2)} 
      \end{aligned}$
    • $\begin{aligned}\mathbf{z}_\ell &= \text{MLP}(\text{LN}(\mathbf{z}'_\ell)) + \mathbf{z}'_\ell, && \ell = 1 \dots L & \text{(3)}\end{aligned}$

3. MLP Head

  • MLP input: $\begin{aligned}\mathbf{y} &= \text{LN}(\mathbf{z}_L^0) && & \text{(4)} \end{aligned}$
    • $z^0_L$ : Transformer Encoder 마지막(L번째) CLS(0번째 인덱스) 토큰
  • Transformer Encoder 의 결과 y를 최종 MLP Head 입력
    • Pre-train: “one hidden layer” → 선형 계층 + 활성화 함수(GELU) + 선형 계층
      • $W_2​(σ(W_1​y+b_1​))+b_2​$
    • Fine-tuning: “single linear layer” → 선형계층
      • $W_1y + b_1$

Inductive bias

📌Inductive bias
  → 모델이 가지고 있는 기본 가정


예)

CNN → Locality
→ 이미지는 가까운 픽셀간 강한 연관성이 있다
RNN → Sequentiality, Temporal Dependence
→ 현재 정보는 과거의 정보에 영향을 받는다

→ CNN에 비해 VIT Inductive bias 약함

  • CNN
    • 지역성(Locality) → filter를 통한 Convolution 연산은 특정 픽셀 주위만 고려
    • 2차원 구조 보존 → filter는 2차원 이미지를 슬라이딩하며 공간적 구조 보존
  • VIT
    • MLP(Transformer 인코더 내부) → 각 토큰별로 비선형 연산 → 지역성(Locality)
    • Self-Attention →각 패치는 다른 모든 패치에 대해 어텐션 연산 적용 → 전역적(global)

→ 오히려 VIT의 낮은 Inductive bias → 대규모 데이터셋에 강점

 

Hybrid Architecture

→ 원본 이미지 패치가 아닌 CNN이 추출한 feature map(Convolution 연산)을 Transformer 입력으로 사용

  • CNN의 Inductive bias(지역성) + VIT의 Inductive bias(전역성) 결합
  • 적은 데이터 셋에서는 VIT보다 좋은 성능, 데이터가 많아질 때, VIT와 성능차이 줄어듦

3.2 FINE-TUNING AND HIGHER RESOLUTION

→ 대규모 데이터 셋에서 pre-train된 VIT모델 → downstream tasks 맞춰 Fine-tuning

  • Fine-tuning 방법 (classification task)
    • 기존 prediction head(MLP Head) 교체 (D × K feedforward layer)
      • D: 모델 hidden dimension
      • K: downstream task에서 Class 수
    • prediction head 가중치 0 초기화(zero-initialize)
  • pre-train보다 높은 해상도의 이미지로 Fine-tuning → 성능 향상에 도움됨
    • (낮은→ 높은) 해상도: 패치 크기는 일정, 패치 개수 증가

4. EXPERIMENTS

4.1 SETUP

  • Dataset:
    • Pre-train: ILSVRC-2012 ImageNet, ImageNet-21k, JFT-300M(1만 8천개 클래스, 1천4백만 이미지)
    • Transfer learning: ImageNet, CIFAR-10/100, Oxford-IIIT Pets, Oxford Flowers-102, VTAB (Visual Task Adaptation Benchmark) - (Natural, Specialized, Structured 세 종류 총 19task)
  • Model Variants:
    • VIT(Base, Large, Huge)
    • ResNet(BIT): Baseline - CNN, Group Normalization(기존 Batch Normalization)
    • Hybrid: CNN Featuremap → input
  • Training & Fine-tuning:
    • Pre-Train, Fine-tuning
  • Metrics:
    • Fine-tuning Accuracy
    • Few-Shot Accuracy

4.2 COMPARISON TO STATE OF THE ART

 

가장 큰 VIT 모델 ViT-H/14가 여러 Task에서 좋은 성능달성

→ BIT, Noisy Student보다 적은 계산 자원

→ 동일한 VIT 모델에서도, 사전학습 데이터셋이 클 수록, 더 좋은 성능

 

 

→ VTAB task 정확도

가장 큰 VIT 모델 ViT-H/14가 여러 Task에서 좋은 성능달성

 

4.3 PRE-TRAINING DATA REQUIREMENTS

데이터셋 규모에 따른 ViT 모델 성능

  • ViT → 대규모 데이터셋으로 사전 학습 → 최고 성능(CNN 능가)
    • CNN Inductive bias(지역성)작은 데이터셋에서 이점 / 큰 데이터셋에서는 VIT의 유연성이 강점

4.4 SCALING STUDY

모델별 계산비용, 전이학습 성능 비교

  • VIT - 파란색원이 ResNet(BIT) - 회색사각형보다 전반적으로 높은 성능
    • 동일한 계산비용으로 ResNet(BIT) 보다 VIT가 더 높은 성능을 보임 (계산 효율성)
  • 낮은 계산비용→ VIT보다 Hybrid가 높은 성능 / 높은 계산비용 → VIT가 높은 성능
    • 낮은 계산비용 단계CNN의 inductive bias 여전히 유용

4.5 INSPECTING VISION TRANSFORMER

ViT 모델이 이미지 데이터를 내부적으로 어떻게 처리하는지 (동작방식 이해)

CLS 토큰이 입력 이미지의 어떤 패치(patch)들에 가장 강하게 어텐션(attention)했는지

📌Attention Rollout
→ 모델이 입력데이터 어디를 보고 판단했는지 (XAI)
 트랜스포머 여러 레이어를 거치면서 정보 섞임 (2번째 어텐션 맵은, 1번째 레이어의 출력값에 대한 어텐션 스코어/ 최종 CLS 토큰에는 모든 레이어 어텐션 결과 누적됨)

계산방법:
→ Multi-Head Self-Attention 가중치 헤드 평균 → 각 레이어 걸쳐 재귀적으로 곱함

 

(좌)

$\begin{aligned} 
\mathbf{z}_0 &= [\mathbf{x}_{\text{class}}; \mathbf{x}_p^1 \mathbf{E}; \cdots ; \mathbf{x}_p^N \mathbf{E}] + \mathbf{E}_{pos}, & \mathbf{E} &\in \mathbb{R}^{(P^2 \cdot C) \times D}, \mathbf{E}_{pos} \in \mathbb{R}^{(N+1) \times D} & \text{(1)}
\end{aligned}$

 

E 행렬 → PCA → 시각화

  • E 행렬: 이미지 패치 평탄화(Flatten) → 선형투영(linear projection) → Transformer 입력차원에 맞춘 가중치
  • 특정한 패턴 보임 → 이미지의 저차원 표현 학습

(중앙)

→ 패치 1D 위치 임베딩간 코사인 유사도

  • 각각 자기 위치에 해당하는 부분의 유사도가 가장 큼, 패치 거리가 멀수록 유사도 작아짐
  • = 이미지 내의 거리 개념을 효과적으로 인코딩 = 1D 위치 임베딩이 패치들의 이미지 내 공간정보(2D)를 효과적으로 포착

(우)

레이어 깊이에 따른 평균 어텐션 거리

  • 초반 - 다양한 어텐션 거리 → 깊이가 증가할수록, 대부분 헤드 평균 어텐션 거리 증가
  • CNN vs VIT
    • CNN → inductive bias → 지역적인 정보 반영
    • VIT → 초기부터 다양한 관점에서 학습

4.6 SELF-SUPERVISION

→ 자기지도학습 효과 실험

BERT마스크드 언어 모델링 참고 → 이미지 패치 50% 마스크 처리 → 해당 패치 평균 색상 예측

결과:

  • 분류 다운스트림 태스크 파인튜닝 전, *가중치 *사전 학습(pre-training)지도학습, 자기지도학습
  • 성능 순) 무작위 가중치 < 자기지도학습 < 지도학습
    • 자기지도 학습이 어느정도 효과있음,
    • 지도학습보다 효과 약함

3. Implementation

https://github.com/NoCodeProgram/deepLearning/blob/main/transformer/vitTransfer.ipynb

 

deepLearning/transformer/vitTransfer.ipynb at main · NoCodeProgram/deepLearning

Contribute to NoCodeProgram/deepLearning development by creating an account on GitHub.

github.com

 

  • 데이터셋: CIFAR-10 (32x32 크기의 10개 클래스 이미지: 비행기, 자동차, 새, 고양이, 사슴, 개, 개구리, 말, 배, 트럭) (train:5만장 / test: 1만장)
  • 목표: 10 종류 이미지 classification
  • 모델: VIT
  • 파라미터
📌
optimizer: AdamW
learning rate: 1e-3
loss: CrossEntropyLoss
batch size: 128
epoch: 100

📌
img_size = 32 # 입력 이미지 크기 (CIFAR-10: 32x32)
patch_size = 4 # 패치 크기 (4x4)
in_channels = 3 # 입력 채널 (RGB)
embed_dim = 48 # 패치 임베딩 차원
num_heads = 4 # 멀티헤드 어텐션 헤드 수
dropout = 0.1 # 드롭아웃 비율
num_layers = 4 # Transformer 인코더 레이어 수
num_classes = 10 # 분류 클래스 수 (CIFAR-10)
mlp_ratio = 4.0 # FFN(FeedForward) 중간 레이어 차원 비율

 

  • 결과: Test Accuracy: 70.31% (100 에폭)

  • 예시 이미지 8개 각 분류 결과(확률)

 

  • 10000개 예제 이미지 모델 마지막 레이어 CLS 토큰 임베딩 분포
  • t-SNE로 2차원(embed_dim = 48차원 → 2차원)으로 분류결과 시각화

  • Vision Transformer(ViT) 모델의 각 레이어별 CLS 어텐션 맵 시각화
  • 각 레이어(4)가 입력 이미지의 어떤 부분(패치)에 집중하는지 확인
  • 레이어별 특징 추출 차이 시각화

4. Discussion

중요!!!! Swin Transformer ← locality! (baseline)

  • ViT + CNN Inductive Bias(지역성)

 

  • TSF - PatchTST
    • PatchTST 논문명: A TIME SERIES IS WORTH 64 WORDS: LONG-TERM FORECASTING WITH TRANSFORMERS
    • VIT 에서 패치 단위 분할 방식 착안
    • VIT 논문명: AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
 

A Time Series is Worth 64 Words: Long-term Forecasting with Transformers

We propose an efficient design of Transformer-based models for multivariate time series forecasting and self-supervised representation learning. It is based on two key components: (i) segmentation of time series into subseries-level patches which are serve

arxiv.org

 

728x90

'Paper review' 카테고리의 다른 글

[Paper review] TimeXer  (0) 2026.03.03
[Paper review] TimesNet  (0) 2026.02.10
[Paper review] Pre-LN(Pre-Layer Normalization)  (0) 2026.02.09
[Paper review] iTransformer  (1) 2026.02.04
[Paper review] PatchTST  (0) 2026.01.30