0. 들어가기
여기서 소개되고 있는 Vit 논문은, image classification task에서 transformer를 적용하여 sota를 달성한 모델이며, 이는 23년 현재까지도 거의 가장 높은 성능의 모델중의 하나이다.
대부분 ViT 가 CV 부분에서 가장 최초로 transformer를 사용한 모델로 알고 있는데, 이후 소개할 DeTR(facebook)이 사실 CV 분야에 거의 가장 먼저 transformer을 적용한 사례이고, 그 후 현재 소개하는 ViT(google)모델이 등장하였다. 물론 두 논문 사이 간격이 몇 개월이 채 안되기 때문에 거의 최초라고 봐도 무방하다. 그리고 아직 소개하지 않았지만 BERT(2018) 역시 ViT(2020) 를 이해하는데 선행되어 읽으면 좋은 논문인데, 사실상 ViT는 BERT의 text classification tesk를 일부러 그대로 가져와 image classification에 적용한 사례라고 보는 것이 좋다.
또한, 이 논문은 ViT 아키텍쳐, 즉 transformer 아키텍쳐가 CV에도 매우 성능이 뛰어나게 작동한다는 점을 강조할 뿐만 아니라, 대규모 데이터에 대한 학습과 transfer learning을 굉장히 강조하고 있다. 이는, 기존의 "Attention is all you need" 를 들어가면서 했던 말처럼, transformer가 정말 표현력의 한계 없이 크기를 늘리고 데이터셋을 늘리면 성능이 끝도없이 상승하는 점과, locality와 같은 inductive bias 를 global attention 이 학습하기 위해 굉장히 많은 데이터셋을 필요로 한다는 점이 큰 원인이다. google research 팀은 이전에 제시한 BiT 논문에서 resnet-v2 를 대상으로 많은 데이터셋과 transfer learning의 효용성을 이미 파악했기 때문에, ViT를 학슴함에 있어서도 몇십억장 단위의 이미지를 활용하였다.
1. 논문읽기
NLP transformer에서 word embedding 값 앞에 start token을 추가하고, 각 word에 대해 positioning encoding을 더하여 encoder의 input으로 사용했다면, ViT는 각 word embedding 자리에 원본 이미지의 일부(patch)를 잘라 넣어주며, positional embedding 역시 patch의 크기만큼 2D tensor로 구성하여 patch에 더해주어, 최종적으로 ViT의 input으로 사용된다.. 그리고 BERT와 같이 최초로 넣은 start token이 token mixer를 통해 전체 이미지의 정보를 담고있는 토큰으로 여겨, 간단한 MLP 모델에 넣어 클래스 분류기에 활용한다.
https://docs.google.com/document/d/1fi0zYKF0eq-JBINUlJUYgM5NDXxIhdq5KUhT4rvluXA/edit?usp=sharing
(논문공부) 비전트랜스포머
AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE abstract 트랜스포머 모델이 Neural language 처리문제에 일반적인 표준이 되어갔음에도, 그것의 컴퓨터비전 쪽의 적용은 항상 제한이 있었다.
docs.google.com