해당 글은 노션에서 작성되었습니다. 이미지를 포함한 자세한 내용은 https://western-hortensia-8e0.notion.site/An-Image-Is-Worth-16x16-Words-Transformers-for-Image-Recognition-at-Scale-2021-ed4c78a65b4345fc89b2eff811185558?pvs=4 를 참고해주세요!
1. Introduction
[ NLP ] Transformer (self-attention based architectures)
- large text corpus에 대해 pre-train하고, smaller task-specific dataset에 대해 fine-tune하는 것이 dominant approach
[ CV ] convolutional architectures
- CNN-like architecture에 self-attention을 사용하는 시도가 있었지만, not yet been scaled efficiently
- 여전히 ResNet-like architecture가 SOTA
[ 방법론 요약 ]
- standard transformer를 최소한의 변형만 하여 image에 그대로 적용
- image를 patch로 쪼갠 후 patch들의 linear embedding sequence를 transformer에 input으로 줌
- image patch는 NLP에서의 token(words)와 같게 취급
- supervised image classification에 실험
- ImageNet과 같은 mid-sized dataset에 적용할 시 기존 모델보다는 낮을 성능을 보여줌.
- Transformer는 CNN과 달리 translation equivariance나 locality 같은 inductive bias가 부족하기 때문에 generalization이 잘 안되는 것
- 14M-300M의 larger dataset으로 학습한 결과, large scale training trumps inductive bias
- 충분한 양의 data로 pre-train한 ViT는 더 적은 data의 task로 transfer 됐을 때 좋은 결과를 보임
3. Method
3.1. Vision Transformer (ViT)
- standard Transformer가 1D token embedding sequence를 input으로 받는다
- 2D image를 1D로 embedding 하기 위해, 한 image를 image patch xp로P: resolution, C: Channel, N: 총 patch 수(HW/P^2)
- Transformer는 모든 layer에서 constant latent vector size D의 input을 받으므로, patch를 flatten한 후 D dimension으로 mapping
- D dimension으로 mapping하는 linear projection
- positional information을 보존하기 위해 patch embedding에 position embedding이 더해지고, 이 embedding vector가 encoder의 input이 됨
- Transformer encoder는 multiheaded self-attention layer, MLP block으로 구성됨
- 모든 block의 이전에는 LayerNorm이, 이후에는 residual connection이 적용됨
[ Inductive Bias ]
ViT는 CNN보다 image-specific inductive bias가 부족함
- CNN은 locality, 2D neigborhood 구조, translation equivariance가 모든 layer에 주어져 있음
- ViT에서는 MLP layer만 local, translation equivariant 하고 self-attention layer는 global함
- position embedding은 patch간 2D position 정보는 담고 있지 않아 모든 spatial realtion이 scratch에서 학습되어야 함
[ Hybrid Architecture ]
raw image patch 대신에 feature map을 input sequence로 줄 수도 있음
댓글 영역