[An Image is worth 16X16 words : transformers for image recognition at scale]
" An Image is worth 16X16 words : transformers for image recognition at scale " - Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby (2020)
본 논문에서는 …
CNN에 의존하지 않고 standard transformer를 최소한으로 수정하여 직접 sequence에 적용된 pure transformer을 구 현함.
중간 사이즈 데이터셋에서는 낮은 정확도, CNN에 내재되어 있는 inductive biases(translation equivariance and locality)가 부족하나, 더 큰 데이터셋에서는 큰 규모의 training이 inductive bias를 넘어섬.
연구 배경
NLP의 표준이 된 Transformer가 많이 사용하는 방법은 큰 text corpus를 pre-train한 후, 더 작은 task 별 데이터셋에 대해 fine-tuning하는 것임.
CV의 표준은 아직 convolutional architecture임. 이 구조에 self-attention을 결합하려 했으나, 특수한 어텐션 패턴을 사용하여 효과적으로 하드웨어에서 스케일하지 못함. 따라서 attention은 CNN과 결합되어 적용되거나, CNN의 특정 요소를 대체하기 위해 사용됨.
관련 연구
이미지에 self-attention을 적용하기 위해서는 각 픽셀이 서로의 픽셀에 attention을 수행해야 함.
따라서 픽셀의 수에 비례하는 막대한 비용으로 각 query 픽셀에 대해 local한 이웃에 대해서만 self-attention을 적용한 시도가 있었음.
또한, global self-attention의 추정을 적용한 Sparse Transformer가 있었음.
→ 이러한 연구들은 하드웨어에서 복잡한 엔지니어링을 효율적으로 구현해야 했음.
input을 2x2 크기의 patch로 추출하여 full self-attention을 가장 위에서 적용하는 방식이 연관 있음. 그러나 본 연구는 나아가 다양한 patch 크기를 사용해 기존의 작은 해상도의 이미지에만 적용 가능했던 점을 다룸.
또한, CNN과 self-attention을 결합하기 위해 해상도와 color space를 줄여 이미지 픽셀에 transformer를 적용하는 image GPT가 있었음.
모델
linearly embed each + position embedding
standard transformer는 input으로 token embedding의 sequence를 1D로 받음.
(H X W X C)를 N X (P^2 · C) 2D로 flatten해줌.
모델은 모든 층에 대해 latent vector 사이즈 D를 사용하여 훈련 가능한 linear projection을 거쳐 patch를 flatten하고 D 차원으로 매핑함. (patch embedding)
BERT의 [class] token처럼 transformer encoder(z^0_L)의 output이 y로 나타내는 embedded z^0_0의 sequence 앞에 학습 가능한 embedding을 추가함.
pre-train, fine-tuning 중 classification head는 z^0_L에 추가됨.
position embedding은 위치 정보를 보존하기 위해 patch embedding에 추가됨. 1D를 사용함. → 다른 2D도 적용했으나 뚜렷한 성능 향상을 관찰할 수 없었음.
embedding vector의 결과로 나온 sequence는 encoder의 input이 됨.
transformer의 encoder는 mutliheaded self-attetntion과 MLP (비선형 GELU 활성화 함수와 함께 2개의 층으로 구성)블록으로 구성됨. LN(Layernorm)은 모든 블록 앞에 적용됨.
- inductive bias : 지금까지 만나보지 못했던 상황에서 정확히 예측하기 위해 사용하는 추가적인 가정
Vision transformer가 CNN보다 inductive bias가 더 적음.
CNN에서 bias는 locality, 2D neihborhood structure, translation equivariance가 각 층에서 반영됨.
하지만 ViT는 MLP 층에서만 local, translation equivariant하고 self-attention 층은 global함.
→ position embedding 초기에는 patch, 모든 공간과 관련된 2D position의 정보를 가져오지 않음.
- Hybrid Architecture
CNN feature map으로 추출된 patch로 embedding projection을 적용할 수 있음.
- fine-tunning and higher resolution
pre-trained prediction head를 제거하고 0으로 초기화된 D X K feedforward 층을 추가함. ( K : downstream의 클래스 수)
pre-training보다 고해상도로 fine-tuning하는 것이 더 이익임.
임의의 sequence length를 다루어 pre-trained position embedding이 더이상 의미가 없기에 에 대해 2D interpolation을 수행함.
실험
ResNet, ViT, hybrid로 평가함.
- setup
metric은 few-shot, fine-tuning accuracy를 사용함.
few-shot은 훈련 이미지의 subset에 대한 representation을 {-1 1}^K target vector에 매핑하는 least-square 회귀 문제로 얻어짐.
- comparison to SOTA
Big Transfer(BiT) : large ResNet을 활용한 supervised transfer learning을 수행함.
Noisy Student : large EfficientNet을 활용한 semi-supervised learning을 수행함.
모델은 이전의 SOTA 모델보다 pre-train하기에 연산이 적고, 성능은 좋음.
연산의 효율성은 모델 뿐 아니라 training schedule, optimizer, weight decay에도 영향을 받음.
대용량 데이터는 성능이 좋았으나, 작은 데이터셋에는 성능이 약간 감소함.
- Pre-training data requirement
ViT는 더 작은 inductive bias를 가짐. → 데이터 사이즈가 중요 ! (더 많은 데이터가 필요함.)
- 데이터셋의 사이즈를 키워 pre-taining함.
작은 데이터셋의 성능을 높이기 위해 weight decay, dropout, label smoothing 과 같은 규제 방식을 사용함.
작은 데이터셋에서는 BiT CNN, 큰 데이터셋에서는 ViT가 성능이 좋음.
2. 300M인 full JFT 데이터셋을 9M, 30M, 90M의 subset으로 랜덤하게 훈련시킴.
작은 데이터셋에 규제를 적용하지 않았으나 early stopping을 사용함.
- ViT가 ResNet을 앞섬.
- hybrid는 적은 computational budget에서 ViT보다 성능이 좋으나 큰 모델에서는 차이가 상쇄됨.
- ViT는 범위 안에서 가득 나타나지 않음.
- Inspecting ViT
첫 번째 층은 flattened patch를 linear projection함.
이후, 학습된 position embedding이 patch representation에 추가됨.
sinusoidal architecture가 때때로 큰 grid에서 명백히 드러남.
self-attention은 ViT가 낮은 층에서 전체 이미지에 대한 정보를 통합하게 해줌.
얼마나 네트워크에 이미지가 활용될 지를 조사하기 위해 attention weight를 기준으로 평균 거리를 계산함.
이외에도, 추가로 masked patch prediction for self-supervision을 수행함.
의미적으로 가까운 이미지 위치에 대해 attention함.