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

redgreen·2022년 4월 17일
0

PaperReview

목록 보기
8/9
post-thumbnail

1. Introduction

  • ViT이전에 computer vision에서 attention 구조는 실용적으로 좋은 성능을 내지 못했음
  • Transformer구조에 영감을받아
    1) imagepatch로 쪼개고
    2) patch들의 sequence를 모델의 input으로 사용하는 구조
    를 고안했다고함.
  • 여기서 image patch들은 NLP에서 token과 같은 역할을 함.
  • ImageNet과 같은 mid-sized 데이터셋은 ResNet 계열에 비해 약간 낮은 성능을 보였다고함.
  • 하지만 ImageNet-21kJFT-300M같은 large-scale의 데이터셋에서는 SOTA모델을 뛰어넘는 성능을 보여주었다고함.

Inductive Bias

  • ViT에서 데이터셋 일정 크기 이상이어야 기존 CNN 계열의 모델보다 성능이 좋았는데 이는 CNNTransformer 계열의 모델이 가진 inductive bias의 차이 때문이라고 한다.
  • CNN모델들은 이미 translation equivariancelocality라는 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에서만 localitytranslation equivariance를 갖는다고 한다.
  • Position embedding2D가 아닌 1D를 사용하기 때문에 ViT공간정보에 대한 inductive bias가 낮다고 볼 수 있다.

2. Model

1) Patch

  • (H×W×C)(H \times W \times C) 크기의 이미지를 (P2C)(P^2 \cdot C)크기를 가진 NN개의 patch embedding으로 바꾸어 사용한다. (H×W=P2×NH\times W = P^2\times N)
  • 여기서 PP패치의 크기를 의미한다.

2) Classification

  • classification을 위해 patch embedding 맨 앞에 class 토큰을 추가로 사용한다.
  • classification headpre-train시에는 하나의 hidden layer를 가진 MLP에서 계산되고
  • fine-tuning시에는 하나의 linear layer에서 계산된다.

3) Position embedding

  • Transformer와 마찬가지로 위치정보를 나타내기 위해 class토큰과 patch embedding1D position embedding을 더해준다.
  • 2D position embedding과 비교했을 때 성능향상이 없어 1D Position embedding을 사용하였다고 한다.

4) Equation

  • ViT의 구조를 수식으로 나타내면 다음과 같다
    • xclassx_{class}: (1×D)(1\times D)
    • XX: (N×P2C)(N\times P^2\cdot C)
    • EE: (P2C×D)(P^2\cdot C \times D)
    • EposE_{pos}: (N+1)×D(N+1)\times D
  • [XEX\cdot E concatenated with xclassx_{class}] +Epos+ E_{pos}
  • 위의 식에서 EEDD차원의 Linear Projection을 위한 용도로 사용된다
  • PatchLinear Projection을 통해 z0z_0를 구한 이후부터는 기존의 Transformer와 동일하다

5) Hybrid Architecture

  • 원본 이미지에서 patch를 만들지 않고 기존의 CNN모델의 feature mappatch로 나누어 모델을 학습시키는 방법도 제시하였다.

6) Fine-tuning and High Resolution

  • fine-tuningresolution이 더 큰 image가 들어왔을 경우 Patch의 크기는 고정되어 있기 때문에 sequence의 길이(NN)만 길어지게 된다. 이 때, NN의 길이가 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)를 기울이는 경향이 있다고 한다.
  • 이는 CNNRecetptive field와 유사한 경향을 보인다.

3) Attention

  • ViTattention을 시각화한 결과 classification을 위한 semantic 영역에 주의를 기울인다는 것을 확인할 수 있었다고 한다.
profile
인공지능 꿈나무

0개의 댓글