[Review] AN IMAGE IS WORTH 16X16 WORDS:
TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE (ViT)


1. Introduction
ViT
이전에 computer vision
에서 attention
구조는 실용적으로 좋은 성능을 내지 못했음
Transformer
구조에 영감을받아
1) image
를 patch
로 쪼개고
2) patch
들의 sequence
를 모델의 input으로 사용하는 구조
를 고안했다고함.
- 여기서
image patch
들은 NLP
에서 token
과 같은 역할을 함.
ImageNet
과 같은 mid-sized
데이터셋은 ResNet
계열에 비해 약간 낮은 성능을 보였다고함.
- 하지만
ImageNet-21k
나 JFT-300M
같은 large-scale
의 데이터셋에서는 SOTA모델을 뛰어넘는 성능을 보여주었다고함.
Inductive Bias
ViT
에서 데이터셋 일정 크기 이상이어야 기존 CNN
계열의 모델보다 성능이 좋았는데 이는 CNN
과 Transformer
계열의 모델이 가진 inductive bias
의 차이 때문이라고 한다.
CNN
모델들은 이미 translation equivariance
와 locality
라는 inductive bias
를 갖는 sliding window
구조로 되어있다.
translation equivariance
: 사물의 위치가 바뀌어도 인지할 수 있음 (참고블로그)
sliding window
구조가 갖는 inductive bias
덕분에 CNN
계열의 모델은 데이터가 적을 때에도 좋은 성능을 보여준다.
- 하지만 이미
bias
를 갖는 구조이기 때문에 많은 데이터가 주어졌을 때에는 오히려 inductive bias
가 작은 Transformer
보다 낮은 성능을 보여준다.
1) CNN
locality
two-dimensional neighborhood structure
translation equivariance
2) ViT
MLP layer
에서만 locality
와 translation equivariance
를 갖는다고 한다.
Position embedding
도 2D
가 아닌 1D
를 사용하기 때문에 ViT
는 공간정보에 대한 inductive bias
가 낮다고 볼 수 있다.
2. Model

1) Patch
- (H×W×C) 크기의 이미지를 (P2⋅C)크기를 가진 N개의
patch embedding
으로 바꾸어 사용한다. (H×W=P2×N)
- 여기서 P는 패치의 크기를 의미한다.
2) Classification
classification
을 위해 patch embedding
맨 앞에 class
토큰을 추가로 사용한다.
classification head
는 pre-train
시에는 하나의 hidden layer
를 가진 MLP
에서 계산되고
fine-tuning
시에는 하나의 linear layer
에서 계산된다.
3) Position embedding
Transformer
와 마찬가지로 위치정보를 나타내기 위해 class
토큰과 patch embedding
에 1D position embedding
을 더해준다.
2D position embedding
과 비교했을 때 성능향상이 없어 1D Position embedding
을 사용하였다고 한다.
4) Equation
ViT
의 구조를 수식으로 나타내면 다음과 같다
- xclass: (1×D)
- X: (N×P2⋅C)
- E: (P2⋅C×D)
- Epos: (N+1)×D
- [X⋅E concatenated with xclass] +Epos
- 위의 식에서 E는 D차원의
Linear Projection
을 위한 용도로 사용된다
Patch
의 Linear Projection
을 통해 z0를 구한 이후부터는 기존의 Transformer
와 동일하다
5) Hybrid Architecture
- 원본 이미지에서
patch
를 만들지 않고 기존의 CNN
모델의 feature map
을 patch
로 나누어 모델을 학습시키는 방법도 제시하였다.
6) Fine-tuning and High Resolution
fine-tuning
시 resolution
이 더 큰 image가 들어왔을 경우 Patch
의 크기는 고정되어 있기 때문에 sequence의 길이(N)만 길어지게 된다. 이 때, N의 길이가 pre-trained position embedding
의 길이와 맞지 않게 되는데, 이 경우에는 2D interpolation
을 통해 해결한다고 한다.
3. Experiments

figure 3, 4
- ViT
는 다른 모델과 비교했을 때, 학습 데이터가 크고, 많아야 좋은 성능을 얻을 수 있다.
fugure 5
동일 FLOP(연산량)
에서 ViT
모델이 BiT
모델보다 좋은 성능을 보였다.

1) Position embedding
- 가운데 이미지는
position embedding
간의 cosine similarity
를 보여준다.
- 위치정보를 주지 않았음에도 불구하고, 데이터를 학습하며 가까운 위치에 있는
embedding
일 수록 similarity
가 높아지는 경향을 보이는 것을 확인할 수 있다.
2) Receptive field?
- 오른쪽의 이미지는
layer
깊이에 따른 attention weight
의 평균거리를 나타낸다.
- 네트워크의 깊이가 얕은
head
에서는 작은 attention distance
를 가지고, 원본 이미지의 좁은 영역만을 보는 경향이 있고,
- 네트워크의 깊이가 깊은
head
에서는 대부분 큰 attention distance
를 가지고 원본 이미지의 넓은 영역에 주의(attention)를 기울이는 경향이 있다고 한다.
- 이는
CNN
의 Recetptive field
와 유사한 경향을 보인다.
3) Attention

ViT
의 attention
을 시각화한 결과 classification
을 위한 semantic
영역에 주의를 기울인다는 것을 확인할 수 있었다고 한다.