An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
subinium opened this issue · comments
Subin An commented
- https://arxiv.org/abs/2010.11929
- ViT
- 오픈리뷰에 있었지만 스케일을 보고 모두가 구글이라고 예측한 논문.
Subin An commented
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
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
Subin An commented