subinium / Deep-Papers

Deep Learning Paper Simple Review + Helpful Article

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

subinium opened this issue · comments

Introduction

  • Transformer만으로 기존 CNN-based Image Classification을 이기고 SOTA. (물론 최근에 바로 졌다)
  • mid-sized dataaset(such as ImageNet)에서는 기존 CNN-based보다 결과가 안좋게 나옴.
    • CNN에 비해 inductive bias(translation equivariance, locality)가 부족해서 그렇다는 생각
    • 적당히 큰 데이터에서는 모델이 일반화가 안됨 -> 데이터가 매우 많아지면 극복!!
    • 그리고 이걸 소규모로 transfer해도 잘됨

Relative Work

보통은 relative work를 잘 안 읽지만...

  • 순수하게 self-attention을 적용하려면 픽셀 단위로 모든 픽셀끼리 해야하는데 비현실적임
  • 주변 픽셀만 고려하는 방법, 근사치를 사용하는 방법, 다양한 사이즈 블록으로 나누는 방법 등이 제안됨
    • 하드웨어 가속을 위해서는 복잡한 엔지니어링이 필요함
  • CNN + Transformer 구조는 꽤 많이 사용함. (전에 리뷰한 #7 포함)
  • 그나마 비슷한 건 iGPT : 이미지 해상도와 color space를 줄이고 transformer를 픽셀단위 적용

Method

스크린샷 2021-02-01 오후 5 15 33

ViT

  • (H x W x C) 사이즈 이미지를 N x (P^2 x C)로 바꿈
    • P는 각 이미지 패치 resolution, N은 이미지 패치 개수
  • Transformer은 각 layer output인 latent vector를 고정 사이즈 -> linear projection로 flatten patch embedding.
  • [CLS] 토큰과 유사한 z0 토큰 추가 (그래서 position embedding 길이 N+1)
  • Hybrid Architecture : patch embedding 대신 ResNet을 사용해도 된다고 함
  • GELU 사용

Fine-tuning and Higher Resolution

  • 패치 해상도를 고정하면 이미지 해상도에 따라 시퀀스 길이가 달라짐
    • pretrain을 위해 고해상도에서 훈련하고, downstream task는 2D interpolation(보간) 진행
    • 유일한 inductive bias

Analysis

  • embedding filter에서 cnn과 같은 기본 feature가 학습되는 것을 확인
  • positional encoding. 같은 행/열이면 더 유사하게 학습
  • attention distance = self-attention의 weight 기반 정보 통합 평균 거리
    • layer가 이미지에 대한 정보를 수용하는 것이 cnn receptive field와 같이 작용한다는 것

ETC

  • MLM(Masked Language Modeling)과 유사하게 해봤지만 결과가 supervised 만큼 좋지는 못했음
    • Masked Patch Prediction