본문 바로가기
논문/vision_transformer

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

by dohunNewte 2023. 8. 4.
반응형

transformer 아키텍쳐는 자연어처리 task와 computer vision에는 제한적으로 적용할 수 있다고합니다.

transformer은 연속적인 이미지 patch들을 적용시킬 수 있고 image classification task에도 적용시킬 수 있습니다.

그리고 매우 큰 data를 전이학습 시킬때 Vision Trnasformer(Vit)는 훈련하는 데 상당히 적은 계산 자원이 필요합니다.

transformer는 계산 효율성및 확장성이 뛰어나다고 합니다.

이로인해 transformer는 100B parameter가 넘는 상황에서도 모델을 훈련할 수 있다고합니다.

NLP의 성공에 영감을 받아서 cnn 아키텍쳐와 self-attention을 결합을 했다고합니다.이미지 patch들은 NLP의 token들과 같은 방식으로 적용했습니다.

 

transformer에는 CNN에 내재된 inductive bias가 일부 부족합니다

그러나 큰 datast에서 큰 데이터셋의 training은 inductive bias를 능가한다고 합니다.

 

 

이미지들을 고정된 사이즈의 patch들로 나누고 각각의 이미지들을 embedding 시킨다고합니다.

그리고  embedding sequence는 Encoder의 입력으로 들어갑니다. classification을 수행하기 위해서 학습시킨 classification token을 sequence에 추가해야한다고 합니다.

 

VIT 모델의구조

Token embedding을 1D Sequence로 입력합니다.

2D이미지를 handling하면

ㄹㄹㄹㄹ

로 바꾸어준다고합니다.

 

P는 이미지 patch의 해상도입니다.

N은 patch의 수인데  N = HW/P^2 입니다. 그리고 이것은 transformer의 효율적인 input sequence 길이 라고합니다.

모든 Layer에서 동일한 latent Vectore size D를 사용합니다.

그리고 patch들을 flatten 시킵니다. 그리고  linear projection을 사용하여 D차원에 mapping 시킵니다.

그러면 output으로 projection된 patch embedding들이 나온다고합니다.

 

BERT의 class들의 token처럼 embedded된 patche( \( z_0^0 \) )들의 sequence 들을 학습가능한 embedding으로 추가합니다.

pre-traing과 fine-tuning은 classification head인 \( z_0^L \)이 부착이되어있습니다.

classification head는    pre-training은 1 hidden layer인 MLP을 가지고있고 fine-tuning은 1 linear layer을 가지고있다.

 

position embedding은

Patch Embedding의 Position 정보를 유지하기 위해서 추가되었다. 

보통 1D position embeddings를 사용하는데 2D-aware position embeddings를 사용할때는 더 좋은 성능은 가지지 못했다고합니다.

embedding된 vector들의 sequence들은 encoder의 input의 역할을 합니다.

 

Transformer encoder는 multihead로 구성된 self-attention과 MLP block들 입니다.

Layernorm(LN)은 모든 block전에 적용이됩니다. 그리고 residual connection은 모든 block후에 적용이됩니다.

 

vit 수식입니다.

Inductive bias

transformer는 CNN보다 이미지별 induective bias가 훨씬 적습니다.

Vit의 MLP 레이어는 지역적인데 반면에 self-attention layer는 global 하다고합니다.

그래서 VIT모델에서는 iductive bias를 주입하려고 합니다.

모델이 이미지 patches로 자릅니다.

fine-tuning할때 다른 해상도의 이미지들의 위치 embeddings을 조정합니다.

 

Hybrid Architecture

raw-image patch들을 대신해서 input sequence는  CNN의 feature map을 형성할 수 있습니다.

hybrid model에서 E를 projection 시킨 patch embedding CNN feature map으로부터 patches를 추출했다.

patches들은  1x1로 설정해도 됩니다 그리고 이것은 input sequence가 feature map의 공간차원의 flatten과 Transformer 차원으로 투영된  feature map에 의해 얻어진다고 합니다.

 

fine-tuning and higher resolution

pre-trained 예측 head를 없애고 D x K feedforward layer인 zero-initialized를 붙인다고합니다.

K는 downstream classes의 개수라고합니다.

zero-initiallzed를 붙임으로써 고해상도의 이점이 있다고합니다.

높은 해상도의 이미지를 모델에 적용한다면, patch size는 그대로 가져갑니다 그러면 결과적으로  상당히 큰 sequence length를 갖게 됩니다.

물론 ViT는 임의의 sequence length를 처리할수는있지만 pre-trained된 position embeddings는 의미를 잃게 됩니다.

이 경우 pre-trained position embedding을 원본 이미지의 위치에 따라 2D interpolation하면 됩니다.

 

VIT의 저자들은 Base와 Large 모델에서 BERT모델을 직접 가져왔다고합니다. Huge모델은 저자들이 임의로 만들었습니다.

 transfer learning에 적합한 Big Transformer (BiT) 구조의 ResNet을 얘기하는데 BIT는 batch normalization layer를 group normalization으로 변경하고 standardized convolutional leyer를 사용한 모델입니다.
해당 모델을 비교군으로 삼았다고합니다.

 

이모델들을 훈련시킬때 Resnet구조를 포함해 Adam을 사용했습니다.batch size 는 4096를 사용했다고합니다.그리고 Adam이 SGD보다 더 성능이 좋았다고합니다.

 

Metrics

평가 지표로는 few-shot accuracy와 fine-tuning accuracy를 고려합니다.

Few-shot accuracy는 Training set에 없는 클래스를 맞추는 문제에 대한 정확도입니다.

Fine-tuning accuracy는 Fine-tuning 후의 정확도 입니다.

본 논문의 저자는 fine-tuning의 성능에 집중하고 있기에 fine-tuning accuracy를 사용하지만 fine-tuning의 cost가 너무 크기 때문에 빠른 평가를 위해 때때로는 few-shot accuracies를 사용했다고합니다.

 

 

Vit-H모델이 대부분의 데이터셋에서 가장 좋은성능이 보였습니다.

resnet구조를 사용한 Bit-L보다도 성능이 높음을 알 수 있고 계산량도 적었습니다.

 

VIT모델은 크기가 큰 데이터셋으로 pre-training 할때 bit모델보다 성능이 좋다고합니다.

비슷하게 데이터셋 크기가 작으면 BIT모델의 성능이 더 좋다고 합니다.

 

JFT 데이터셋을 각각 다른 크기로 데이터를 랜덤 샘플링 했습니다.

작은 데이터셋에서는 inductive bias 효과가 있는 CNN 계열의 BiT가 높은 성능을 보입니다.

그러나 큰 데이터셋으로 갈수록 ViT 성능이 더 좋아지는 것을 확인할 수 있습니다.

 

왼쪽그림은 VIT-L/32의 RGB 의 linear embedding 필터입니다.

가운데그림은 VIT-L/32의 position embeddings의 유사도를 확인하는 그림입니다. 2D이미지에 해당하는 패치들끼리 유사도가 높습니다.

오른쪽그림은 head와 network depth에 의한 attension 공간의 size입니다. 각각의 점들은 처음의 layer에서 attention 거리의 평균입니다.(전체이미지의 정보를 사용함을 알수있습니다. - 처음의 layer에서 attention을 하므로)

 

 하지만 아직 vision 분야에서 Detection segmentation 그리고 self-supervised 분야에서 아직 발전이 필요하다고합니다.

 

 

728x90

댓글