본문 바로가기
DeepLearning/논문 리뷰

[논문 리뷰] ViT, AN IMAGE IS WORTH 16*16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE (ICLR, 2021)

by Wanda 2022. 3. 13.

0. Abstract

생략

1. INTRODUCTION

- self-attention-based architectures, 특별히 Transformers은 자연어(NLP) 처리에서의 모델로 선택되고 있었다. 가장 지배적인 접근법은 large text corpus를 이용해 pre-train 한 후, smaller task-specific dataset에 fine-tune 하는 것이었다. Transformers의 computational efficiency와 scalability덕분에, parameter 100B와 함께 전례 없는 size의 models를 train 할 수 있었고, 모델과 데이터셋이 증가하더라도 여전히 성능을 포화시킬 징후는 보이지 않았다.


- computer vision에서는, 그러나 convolutional architectures가 여전히 우세하였다. NLP의 성공에 영감을 받아, 여러 연구들은 CNN과 같은 구조들을 self-attention와 결합하려고 시도하였다. 일부는 convolution을 완전히 대체하였다.

 

- 본 논문에서는 이미지를 패치로 분할하고 트랜스포머에 대한 입력으로 이러한 패치의 선형 임베딩 시퀀스를 제공한다.
 

- NLP에서 Transformer의 scaling의 성공에 영감을 받아서, 본 논문에서는 직접적으로 이미지에 standard Transformer를 적용하는 실험을 진행하였다. 그러기 위해, image를 patches로 분할하고, Transformer에 대한 input으로 이러한 patches의 linear embedding sequence를 제공한다. 각각의 image patches은 nlp application의 tokesn(words)과 같은 방식으로 다뤄진다. 본 논문에서는 supervised 방법으로 image classification에 대한 model를 훈련한다.

 

 

- strong regularization 없이 mid-sized dataset, 예를 들어 ImageNet에 대해 훈련을 진행하였을 때, 이 모델들은 비슷한 크기의 ResNets보다 몇 퍼센트 낮은 적당한 정확도를 산출한다. 이러한 discouraging output은 다음과 같은 이유 때문에 발생한다.

 

Transformers은 translation equivariance와 locality 등 CNN에 내재된 inductive biases가 부족하기 때문에, 불충분한 양의 데이터에 대해 train 될 때 잘 일반화되지 않는다.

- 이러한 문제점은, 당연하게도 larger datasets(14M-300M images)에 대해 train 시킬 때 바뀔 수 있다. 본 논문의 Vision Transformer(ViT)는 충분한 scale에 대해 pre-trained 되었고, 적은 datapoints가 task로 전송되었을 때 우수한 성적을 보인다.

- 공용 ImageNet-21k dataset 혹은 내부의 JFT-300 Mdataset에 pre-trained 되었을 때, ViT는 여러 이미지 인식 벤치마크에서 최첨단 기술에 근접하거나 능가한다. 특별히, ImageNet에서는 88.58%의 accuracy, ImageNet-ReaL에서는 90.72%, 19개 tasks으로 구성된 VTAB 제품군의 경우 77.63%를 달성하였다.

 

2. RELATED WORK

생략

3.METHOD

- 가능한 기존의 Transformer 를 따라서 모델을 구상하였다. 이렇게 의도적으로 간단한 설정의 장점은 확장 가능한 (scalable) NLP Transformer Architecture, 그리고 구현이 거의 즉시 사용 가능하다는 것이다.

3.1 VISION TRASNFORMER(VIT)

- Fig 1처럼, standard Transformer은 token embeddings의 1D sequence를 input으로 받는다. 2D images를 다루기 위해, 본 논문에서는 image x(R(H*W*C))를 reshape하여 flatten된 2D patch xp E R(N*(P^2*C))의 sequence로 변환한다.
(여기서 (H,W)는 original image의 해상도이고, C는 channels의 수 이고, (P,P)는 각각의 image patch의 해상도이고, N = H8W/P^2은 Transformer의 effective input sequence length로도 사용되는 결과 patches의 수 이다. Transformer는 모든 layer에서 일정한 latent vector size D를 사용하기 때문에 patch를 flatten하게 하고 traning 가능한 linear projection(Eq.1)으로 D차원에 mapping한다. 이 projection의 출력을 patch embeddings라고 부른다.

- BERT의 [class] token과 유사하게, 본 논문에서는 학습 가능한 embedded patch(z = xclass)의 시퀀스에 선행하며, transformer인코더(z)의 출력 상태가 이미지 표현 y(eq.4) 역할을 한다. pre-training 및 fine-tuning 중에 classification head가 z에 부착된다. classification head는 pre-training시에는 숨겨진 레이어가 1개 있는 MLP에 의해 구현되고 fine-tuning 시에는 단일 선형 레이어에 의해 구현된다.

- Position embeddings은 patch embeddings에 더해져서 positional information을 retrain한다. 본 논문에서는 standard learnable 1D position embeddings을 이용하는데, 왜냐면 더 진보된 2D-aware position embeddings을 이용 하는 것이 현저한 성능 이득을 얻지 못하였기 때문이다.(Appendix D.4). embedding vectors의 결과 sequence는 encoder에 input으로의 역활을 한다.

- Transformer encoder은 multiheaded self-attention(MSA,see appendix A)와 MLP blocks의 교대 layers로 이루어져 있다. Layernorm (LN)은 모든 block전에 적용되며, 모든 block 후에 residual connections이 적용된다.

- MLP는 두개의 layers와 비선형 GELU가 포함되어 있다.

 

* Inductive bias.

 

- 본 논문에서는 Vision Transformer가 CNN보다 훨씬 더 적은 image-specific inductive bias를 가지고 있다고 언급한다.

- CNNs에서는, locality, two-dimensional neighborhood structure, 그리고 translation equivariance가 모델 전체의 각각의 layer에서 배치된다. ViT에서, 오직 MLP layers만이 local하고 translationally equivariant하고, self-attention layers은 global하다. two-dimensional neighborhood structure은 매우 드물게- model의 시작에서 images를 patch로 자름으로써, 그리고 fine-tuning time에는 다른 resolution의 이미지에 position embeddings 적용할때-사용된다.

(Q. two-dimensional neighborhood structure가 무엇인지?)

l

* Hybrid Architecture.

 

- raw image patches의 대안으로, input sequence는 cnn의 결과인 feature maps로부터 형성될 수 있다. 이러한 hybrid model에서는, patch embedding projection E(Eq.1)은 CNN feature map에서 추출된 patches에 적용된다.

- 특별한 경우로, patches은 spatial size 1*1를 가질 수 있는데, 이는 feature map의 dimension을 간단하게 fattening하고 Transformer dimension에 projecting하였기 때문이다.

- classification input embedding과 position embeddings은 위에서 묘사한 것과 같이 더해진다.

3.2 FINE-TUNING AND HIGHER RESOLUTION


- 특별히, 본 논문에서는 ViT를 large datasets에서 pre-train하였고, downstream tasks(smaller dataset)에 fine-tune하였다.

- 본 논문에서는 pre-trained prediction head를 제거하고 zero-initialized D*K feedforward layer를 부착하였다.(K : number of downstream classes) (Q. prediction head가 뭔지 잘 모르겠음)

- 이때, fine-tuning단계에서 더 높은 해상도에서 학습하는 것이 정확도 향상에 좋다는 것이 알려져 잇다.(Touvron et al., 2019; Kolesnikov et al.,).

- 만약 고 해상도의 images를 feeding 할 때, 본 논문에서는 patch size를 같게 유지하고, 이는 더 긴 effective sequence length를 야기한다. Vision Transformer은 메모리 제한 전까지 가능한 임의의 sequence lengths를 다룰 수가 있지만, pre-trained position embeddings은 더 이상 의미가 없을 수도 있다. (Q. 왜 의미가 없는지 명확히 모르겠음)

- 그런 이유 때문에 본 논문에서는 original image의 위치에 따라 pre-train된 position embeddings의 이차원 보간법(2D interpolation)을 수행한다.

- 이러한 해상도 조정 (resolution adjustment)와 patch 추출은 영상의 2D 구조에 대한 inductive bias가 Vision Transformer에 수동으로(manually)주입되는 유일한 지점이다.

4. EXPERIMENTS

- 본 논문에서는 ResNet, Vision Transformer(ViT), 그리고 둘의 혼합의 표현 학습 능력(representation learning capabilities)를 평가하였다.

- 각각 모델의 data 요구 사항들을 이해하기 위해, 본 논문에서는 다양한 사이즈의 datasets을 pre-train하였고 많은 benchmark tasks를 평가하였다. 모델 사전 훈련의 computational cost를 고려하였을때 , ViT는 매우 양호한 퍼포먼스를 보였고, lower pre-training cost에서 recognition benchmarks에서 sota를 기록하였다.

- 마지막으로, 본 논문에서는 self-supervision을 이용하여 작은 실험을 수행하는데, 그리고 이런 self-supervised ViT가 미래에 대한 가능성을 가지고 있다는 것을 보여줄 것이다.

4.1 SETUP

생략

 

4.2 COMPARISION TO STATE OF THE ART