논문 리뷰

[An Image is worth 16X16 words : transformers for image recognition at scale]

난 지민 2023. 4. 15. 12:53

" 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

C : channel의 수 (P, P) : 각 patch의 해상도 N = HW / P^2 : patch의 수

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를 가짐. → 데이터 사이즈가 중요 ! (더 많은 데이터가 필요함.)

  1. 데이터셋의 사이즈를 키워 pre-taining함.

작은 데이터셋의 성능을 높이기 위해 weight decay, dropout, label smoothing 과 같은 규제 방식을 사용함.

작은 데이터셋에서는 BiT CNN, 큰 데이터셋에서는 ViT가 성능이 좋음.

 

   2. 300M인 full JFT 데이터셋을 9M, 30M, 90M의 subset으로 랜덤하게 훈련시킴.

 

작은 데이터셋에 규제를 적용하지 않았으나 early stopping을 사용함.

 

  1. ViT가 ResNet을 앞섬.
  2. hybrid는 적은 computational budget에서 ViT보다 성능이 좋으나 큰 모델에서는 차이가 상쇄됨.
  3. 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함.