[논문요약] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE (ViT)

승리·2022년 3월 23일
0

논문요약

목록 보기
1/3
post-thumbnail

논문을 처음부터 끝까지 정말 다 읽긴 싫고 모든 목차를 읽되 중요 부분만 찝어보고 싶다하는 분들이 읽으시면 좋을 것 같습니다.
거두절미하고, 논문 리뷰를 위해 요약한 ViT 논문 내용을 포스팅해보겠습니다!


Introduction

CNN과 같은 아키텍쳐에 self-attention을 결합하거나, 일부 컨볼루션을 완전히 self-attention으로 대체하는 실험들이 이뤄지고 있다. 후자는 이론상으로 효과적이나 (세분화된 attention pattern 때문에) 현대 하드웨어 가속기에서 아직 효과적으로 확장되지 않았다.

그래서 아직 대규모 이미지 인식에서는 resnet같은 아키텍쳐가 아직 최첨단 기술이다.

NLP에서 트랜스포머의 성공에 영감받아 저자는 최소한의 수정으로 직접 표준 트랜스포머에 적용해 본 것이다. 이 때,적용을 위해 이미지를 패치단위로 나누고 이런 선형임베딩시퀀스를 트랜스포머에 입력했다.
⁕ 여기서 이미지 패치는 NLP에서 토큰처럼 다룸.

ImageNet과 같은 중규모 사이즈의 데이터셋에 적용했을 때 ResNet보다 몇 퍼센트 낮은 정확도를 산출했다. 이는 CNN에 내재하는 Inductive bias가 부족하기 때문에 불충분한 양의 데이터을 학습하면 잘 일반화 되지 않기 때문이다.

하지만 대규모사이즈 데이터셋에서는 Inductive bias를 가진 CNN을 능가한다는 것을 발견했다.
대규모 데이터셋으로 pretrain을 한 후 더 적은 데이터로 fine-tuning하면 우수한 결과를 가진다.

Inductive bias란 ?
학습 시에는 만나보지 않았던 상황에 대하여 정확한 예측을 하기 위해 사용하는 추가적인 가정 (additional assumptions)으로 모델이 목표 함수를 학습하고 훈련 데이터를 넘어 일반화하기 위해 만든 가정.


  • Cordonnier et al. (2020)
    ViT와 가장 비슷한 모델로 이 모델과 비교했을 때의 ViT의 경쟁력있는 점은 대규모 사이즈의 데이터셋에 pretrain했을 경우 더 성능이 좋다는 것이다. 또한, 이 모델은 2x2사이즈의 작은 패치사이즈를 사용하지만 ViT는 중간해상도의 이미지도 다룬다.

  • image GPT(iGPT)
    최근 관련 모델로 이미지 해상도와 색 공간을 줄인 후 이미지 픽셀에 트랜스포머 적용한 것이다.
    생성모델로 비지도 방식으로 학습하며 분류에서 ImageNet에서 최대 72%의 정확도 달성한다.


Method

Vision Transformer

트랜스포머 입력단

  • 이미지를 PxP크기의 N개 패치로 자르고 각 패치를 flatten한다.
    → shape HxWxC -> Nx(P^2xC)

  • flatten한 patch들을 linear projection해 D차원으로 매핑한다.
    → 트랜스포머의 모든 레이어의 latent vector size가 D이다.
    → 이 과정의 output을 patch embedding이라고 한다.

  • class token과 유사하게 학습 가능한 임베딩을 추가한다.

  • 위치정보 유지를 위해 1D position embedding 추가한다.
    - 2D-Position Embedding을 추가해보았지만 더 좋은 성능 X

∴ 트랜스포머는 token embeddings의 1D sequence를 입력으로 받는다.

트랜스포머 인코더 구성

  • Multi-head self attention과 MLP blocks 교대로 layer가 쌓인 구조이다.

  • layer norm은 매 block전에 있고 residual connection은 block 후에 위치한다.

Inductive bias

  • ViT는 CNN에 비해 Inductive bias가 굉장히 적다.

  • MLP layer는 local, self-attention layer는 global.

  • 2차원 구조는 모델 시작부분에 이미지를 패치단위로 자르고, fine-tuning시 달라진 해상도 이미지에 맞게 position embedding을 조정할 때만 사용한다. 그 외, 초기화 시 position embedding은 패치의 2D 위치에 대한 정보를 전달하지 않으며 패치 간의 모든 공간 관계를 학습해야 한다.

Hybrid Architecture

  • patch embedding이 CNN feature map으로부터 patche를 추출한다.

  • pretrain 시 히든레이어와 fine-tuning시 single linear layer에 의해 분류헤드 구현한다.

Fine-tuning and higher resolution

fine-tuneing할 때 pretrain된 prediction head를 제거하고 DXK(K=downstream class) feedforward layer 추가한다.

pretrain된 위치 임베딩은 의미 X.
→ 원본 이미지에서의 위치에 따라 사전 훈련된 위치 임베딩의 2D 보간을 수행
이러한 해상도 조절과 패치추출은 ViT에 2D구조에 대한 inductive bias가 들어가는 유일한 지점


Experiments

Setup

Model Variants

  • ViT
    * 예시로 ViT-L/16sms “Large”에 속하며 input patch size가 16x16
  • ResNet (BiT) : ResNet (He et al., 2016)에서 Batch Normalization를 Group Normalization (Wu & He, 2018)로 대체 + standardized convolutions (Qiao et al., 2019) 사용

Training & Fine-tuning

  • Adam (Kingma & Ba,2015) : β₁= 0.9, β₂= 0.999
  • batch size : 4096
  • weight decay : 0.1
  • fine-tuning : SGD + momentum, batch size 512

Comparison to state of the art (ViT-H/14 vs ViT-L/16 vs BiT vs EfficientNet 모델 실험)

▶ BiT보다 작은 ViT-L/16(pretrained JFT)의 성능이 높은 반면에 학습 시에 요구되는 컴퓨팅 자원 ↓
# 모델이 이전 최첨단 것보다 pretrain할 때 비용이 적지만 효율은 모델 구조 선택뿐만아니라 다른 파라미터들에게도 영향을 받는다는 것을 감안해야 한다고 언급.

pre-training data requirements (데이터셋 크기의 중요도 실험)

여러 크기의 데이터셋으로 pretrain

- 작은 데이터셋에는 최적화를 위해 세가지 규제를 가했다.
- 오직 JFT로 pretrain했을때 큰모델의 최대 이득을 볼 수 있다.
▶ BiT CNN은 ImageNet에서 ViT를 능가하지만, 데이터 세트가 클수록 ViT가 이를 능가한다.


JFT random subset으로 pretrain

- 모든 파라미터 셋팅 동일
- 비전 트랜스포머는 소규모 데이터 세트에 비슷한 계산 비용으로 ResNet보다 더 과적합
▶ 컨볼루션 inductive bias은 작은 데이터셋에서는 유용하나 큰 데이터셋에서는 데이터에 관련된 패턴만을 직접 배우는 것으로 충분하고 심지어 그게 더 유익하다.

scaling study (각 모델의 성능 대 사전 학습 비용 실험)

▶ 성능/계산 트레이드오프에서 ResNet보다 우세하다.
▶ ViT는 동일한 성능(평균 5개 이상의 데이터셋)을 달성하기 위해 약 2/4개 적게 계산한다.
▶ 하이브리드는 적은 계산 예산에서 ViT를 약간 능가하지만 큰 모델의 경우 그 차이가 사라진다.
ViT는 시도한 범위 내에서 포화 X

inspecting vision transformer (내부표현 분석)

  • flatten된 패치를 저차원 공간으로 선형적으로 projection하는 임베딩 필터의 상위 주성분을 시각화
    ▶ 주성분은 각 패치 내에서 미세한 구조를 저차원적으로 표현하기 위한 기본 기능과 유사하다.

  • 위치 임베딩의 유사성 시각화
    ▶ 모델이 위치 임베딩의 유사성으로 이미지 내의 거리를 인코딩하는 방법을 학습하는 것을 보여준다.
    ▶ 동일한 행/열에 있는 패치에 유사한 임베딩하는 것을 볼 수 있다.

  • 네트워크 깊이별 attention distance
    - self-attention을 통해 가장 낮은 레이어에서도 전체 이미지에 걸쳐 정보를 통합하는데 네트워크가 이 기능을 어느 정도 활용하는지 알기위해 서로다른 레이어에서 평균 attention distance를 계산한 실험
    (attention distance ≓ CNN의 수용 필드 크기)

    ▶ 일부 head가 이미 가장 낮은 레이어에 있는 대부분의 이미지에 집중해 정보를 전체적으로 통합하는 기능이 모델에 실제로 사용됨을 보여주고 다른 head는 일관되게 낮은 레이어에서 attention distance가 작다.
    ▶ ResNet을 적용하는 하이브리드 모델에서는 이러한 높은 localized attention이 덜 나타나며, 이는 CNN의 초기 컨볼루션 레이어와 유사한 기능을 수행할 수 있음을 시사한다.
    ▶ attention distance와 네트워크 깊이는 비례한다.

  • 출력 토큰에서 입력 공간까지 주의를 기울이는 대표적인 예
    ▶ 전체적으로 모델이 분류와 의미적으로 관련이 있는 이미지 영역에 관여한다는 것을 발견

self-supervision

▶ self-supervisioned pretrain시 ViT-B/16 모델은 ImageNet에서 79.9%의 정확도를 달성해 2%가 향상했다.
supervisioned pretrain에는 여전히 4%가 낮다.


Conclusion

▶ 컴퓨터 비전에서 self-attention을 이용한 이전 작업들과는 달리 inductive bias가 없다.(패치추출단계 제외)
그대신 패치의 시퀀스로써 이미지를 해석하고 트랜스포머 인코드로 처리한다.

▶ 대규모 데이터셋과 함께일때 매우 잘 동작한다.

▶ 많은 이미지 분류 데이터셋에서 최첨단을 능가하는 반면에 사전학습시에는 비용이 저렴하다.

profile
hello

0개의 댓글