[CV] ViT 모델 구조 정리
자연어처리 분야에서 Transformer 구조가 SOTA를 차지하며 우수한 성능을 입증했습니다.
이러한 Transformer 구조를 Computer Vision 분야에 처음 적용한 논문이 바로 아래 링크의 논문이고, 이를 기반으로 한 방식을 Vision Transformer, 줄여서 ViT라고 합니다.
Paper link: https://arxiv.org/pdf/2010.11929
1. ViT 모델 구조
위 그림은 ViT의 모델 구조를 도식화한 figure입니다.
a. Patch embedding
이미지를 Transformer 입력으로 넣기 위해 이미지를 Patch 단위로 나누어 flatten하게 됩니다. 이후 linear projection을 통해 transformer의 입력 feature size로 맞춰줍니다.
b. class token
figure에 별표(*)로 표시된 부분이 바로 class token입니다. 이는 학습 가능한 파라미터로 입력시에는 이미지와 무관한 변수이지만 레이어를 거칠수록 이미지의 특징을 가장 잘 나타내는 값이 됩니다.
c. Position embedding
figure에 0,1,2,...,9 로 표시된 부분이 positional embedding입니다. 이는 학습 가능한 파라미터로 이미지 패치의 위치에 따른 특징을 나타냅니다.
d. Layer norm & Residual
Multi-Head Self Attention layer(MSA)와 Multi Layer Perceptron(MLP) 앞에 Layer norm을 추가하고, Residual을 추가해주었습니다.
e. MLP head
Classification을 위해 Encoder output에 MLP layer를 추가하여 분류작업을 수행합니다.