CNN을 대체하는 기본 백본으로 자리 잡은 ViT의 핵심 파이프라인을 정리합니다.
1. Patch Embedding
이미지를 $16\times16$ 혹은 $14\times14$ 패치로 자른 뒤 linear projection을 통과시키면 $N$개의 토큰이 된다. CLS 토큰을 prepend해 전체 이미지 표현을 학습한다.
2. Positional Encoding
사각 격자 위치를 학습 가능한 pos_embed로 더해주면 attention이 공간 정보를 인지한다. 최근에는 2D Rotary Embedding이나 ALiBi가 자주 사용된다.
3. Transformer Encoder
각 블록은
- LayerNorm
- Multi-Head Attention
- Residual connection
- MLP (GELU + Dropout) 으로 구성된다. Stochastic Depth를 적용하면 학습 안정성이 크게 올라간다.
4. Fine-tuning Tips
- Token pruning: 고해상도에서 latency를 줄이려면 early layer attention map 기준으로 토큰을 줄인다.
- Prompting & Adapters: 소규모 데이터 셋에서는 lightweight adapter/prompt를 삽입해 전체 파라미터 업데이트를 피한다.
- Hybrid heads: CLS 토큰과 Global Average Pooling을 함께 사용하면 안정적으로 수렴한다.
ViT는 구조가 단순하지만, positional encoding, regularization, adapter 설계에 따라 성능 편차가 크다. 위 원칙을 기본으로 두면 어떤 도메인에도 쉽게 확장할 수 있다.