[Paper Review] Vision Transformer - An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

gredora·2023년 3월 20일
0

Paper Review

목록 보기
9/20

https://arxiv.org/pdf/2010.11929.pdf

Abstract

transformer는 NLP 분야에서 널리 사용 되고 있다. 이를 vision task에 가져와 시도한 것이 본 논문의 의의이다.(단, 많은 양의 학습 데이터를 필요로 한다)

Introduction

CV에서는 여전히 CNN 기반 모델들이 점유하고 있었다. Attention 개념을 CNN에 적용하려는 시도가 있었지만 충분히 scaled 되지 않았다.
본 논문에서는 직접적으로 transformer에 image를 적용한다. 데이터셋이 크지 않았을 때는 CNN기반 모델들보다 안 좋은 성능을 보였는데 큰 데이터셋을 적용했을 때 SOTA를 달성했다.

Related Work

Transformer는 machine translation을 위해 고안되었다. 이는 BERT, GPT등 여러 모델로 발전했다.
self attention을 image에 적용하는 것은 각 픽셀이 모든 픽셀을 attend하는 것을 요구한다. 이를 해결하기 위해 다음의 방법들이 시도되었다.

  • local한 이웃에만 attend
  • sparse transformer 등
    2x2 patch를 사용한 시도가 있었지만 low resolution에만 적합하고 sota CNN 모델들과 겨룰 수 없는 성능이었다.
    GPT를 적용한 모델 역시 존재한다.

Method

1D sequence of token embeddings을 input으로 준다. 이미지를 패치별로 나누고 linear projection으로 patch embeddings으로 바꾼다. BERTdml CLS 토큰처럼 x_class 를 추가로 넣는다. classification head가 encoder 출력에 붙는다.
position embedding은 patch embedding에 더해진다.
Hybrid architecture로 input을 CNN feature map으로 사용하는 방법이 있다.
fine tuning시 높은 해상도에서 학습하는 것이 정확도 향상에 좋다고 알려져있다. 따라서 패치는 고정하고 더 긴 패치 시퀀스를 사용하는데 위치 임베딩이 의미 없어지는 것을 해결하기 위해 2D interpolation을 진행한다.

Experiment

생략

INSPECTING VISION TRANSFORMER

ViT는 패치들을 더 낮은 차원의 공간으로 매핑
그 후 positional embedding이 더해짐

  • 가까운 거리에 있는 패치는 비슷한 위치 임베딩을 갖게 된다
    필요한 부분에 적절하게 attend하는 것을 확인 가능

self supervision에도 좋은 성능을 거두는 것을 확인

profile
그래도라

0개의 댓글