본문 바로가기
논문리뷰

[논문 리뷰] AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

by King_eun 2024. 2. 25.

저자의 의도

이미지 분야에서 attention 기법을 사용할 경우 대부분 CNN과 함께 사용되거나 CNN 구조를 유지하면서 CNN 의 특정 구성 요소를 대체하는데 사용했는데 vit 에서는 CNN에 의존하지 않고 이미지 패치의 시퀀스를 입력값으로 사용하는 transformer 를 적용했다.

 

기존 문제점

self-attention 과 결합하려고 하고 있고, 일부는 conv 을 완전히 대체한다.but, 하드웨어에서 제한적임. so, resnet과 유사한 아키텍처가 여전히 최첨단임

- CNN 보다 성능 좋게 하려면?

large scale로 학습하고 적은 데이터로 전이학습 시키면 성능이 높아진다.

 

해결 아이디어

Model overview

  • VISION TRANSFORMER (VIT)
    • 원래의 transformer와 비슷하게 만들어서 nlp transformer 아키텍쳐와 효율적인 구현을 즉시 적용 가능하다.
    • 너비와 폭을 지정한 patch 길이로 나눈 후에 이 patch 들을 linear embeddings sequence 형태로 transformer에 넣는다 .→ NLP token 처럼 사용함.
      • (HxWxC) → (PxPXC)
    • Transformer는 각 layer에서 constant latent vector size D를 유지하는데, 이를 위해, patch들을 학습 가능한 linear projection을 통해, D dimension 화하였다. 그리고, 이 결과를 patch embeddings라고 부른다.
    • BERT의 class token 처럼, patch embedding의 앞에 learnable embedding을 붙인다. 이것은 Transformer encoder의 output이 이미지 representation(y)이 될 수 있도록 사용된다.
    • pre-training과 fine-tuning 단계에서 모두, Transformer encoder의 ouput이 classification의 head로 이용된다.
    • classification head는 pre-training 단에서는 one hidden layer의 MLP로, fine-trurning 단계에서는 하나의 linear layer로 구성된다.
    • Position embeddings는 patch embeddings에 더해져, 공간 정보를 제공한다.
    • ViT에서는 학습 가능한 1D position embeddings를 사용했는데, 2D의 position embedding이 성능에 딱히 영향이 없는 것 같아서 그랬다고 한다.
    • Transformer encoder는 multiheaded self-attention의 대체 layer들과 MLP block으로 구성되어있다.
    • Layernorm은 각 block 전에 적용되어 있고, 모든 block 끝에는 residual connection이 존재한다.
    • MLP는 GELU 함수를 사용한 2개의 latyer로 구성되어 있다.
  • Inductive bias
    • inductive bias → 학습자가 처음 보는 입력에 대한 출력을 예측하기 위해 사용하는 일련의 과정
    • VIT는 image specific inductive bias 가 CNN에 비해 부족함.
    • ViT에서는 MLP layer에서만 translation 등분산성과 지역 정보를 보고, self-attention layer들에서는 전체적으로 본다.
    • 2D neighborhood 정보는 드물게 사용된다. model의 시작에 이미지를 cutting 하고, fine-tuning 때는 position emeddings를 다른 resolution으로 처리하기 때문이다. 또한, initinalization 시에 embedding에는 정보가 없기 때문에, patch의 2D 위치와 patch 간의 공간 관계에 대해 처음부터 스스로 학습해야 한다.
  • Hybrid Architecture
    • Transformer 모델이 이미지를 처리하는 또 다른 접근 방법이다.
    • raw image patch 대신, CNN에서 추출한 특징 맵을 사용하여 입력 시퀀스를 형성할 수 있다.
    • 어떤 케이스에서는 1X1이 될 수 있는데, 이 것은 input sequence가 spatial dimension 정보를 flatten 한 케이스이다.
    • 분류를 위한 input embedding과 positional embeddings 들은 앞서 설명된 대로 추가된다.
  • FINE-TUNING AND HIGHER RESOLUTION
    • 기본적으로 ViT를 large dataset에서 pre-train 하였고, 적은 데이터셋에서 fine-tune 하였다.
    • 이를 위해, pre-trained prediction head를 지우고, zero-initialized D X K layer를 넣었다. (K는 classification class 개수)
    • pre-trained 보다, fine-tune 때 높은 해상도의 이미지를 사용하는 것이 유리하다.
    • 고해상도 이미지를 넣을 때, patch size는 동일하게 유지한다. (sequence length만 늘어난다.)
    • ViT는 임의의 sequence length를 다룰 수 있지만, 그러면 pre-training 된 position embedding은 더 이상 의미가 없다.
    • 이때는 pre-trained position embedding에 original image에서의 위치에 따라, 2D interpolation을 통해 처리했다.

 

참고자료

https://hipgyung.tistory.com/entry/%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EB%8A%94-ViTVision-Transformer-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-An-Image-is-Worth-16x16-Words-Transformers-for-Image-Recognition-at-Scalehttps://devhwi.tistory.com/42