On the journey of

[CSE URP]BEiT: BERT Pre-Training of Image Transformers (1) 본문

Experiences & Study/CSE URP' 29

[CSE URP]BEiT: BERT Pre-Training of Image Transformers (1)

dlrpskdi 2023. 8. 24. 17:53

BEiT: BERT Pre-Training of Image Transformers

Hangbo Bao, Li Dong, Songhao Piao, Furu Wei

* https://github.com/microsoft/unilm/tree/master/beit

Abstract

  • 논문의 제목인 BEIT (Bidirectional Encoder representation from Image Transformers)는 BERT 모델에서 차용한 것
  • 입력 이미지를 2가지 방법을 통해 masked image modeling(MIM) 학습
    1. VIT + Blockwise Masking : image patches (such as 16 x 16 pixles)
    2. DALL-E Tokenizer : visual toekns (i.e., discrete tokens)
  • 전체중의 일부 이미지 패치들을 mask 처리한 것이 VIT 모델에 들어감
  • 사전 학습된 MIM objective를 통해 원본 visual tokens를 mask 처리가 된 이미지 패치로 부터 복원을 함
  • BEIT 를 사전 학습한 후, 사전학습된 모델에 downstream task를 붙여서 image classification, semantic segmentation을 했을 때 좋은 성능을 보임

1. Introduction

  • 트랜스포머(Attention is all you need [VSP+ 17]) 모델이 컴퓨터 비전에서도 좋은 성능을 보이게 됨
    • [DBK+20] An image is worth 16x16 words: Transformers for image recognition at scale.
    • [TCD+20] Training data-efficient image transformers & distilation through attention.

  • 그러나, 이전 결과들에서 비전 트랜스포머는 Convolutional neural netwroks보다 많은 트레이닝 데이터가 필요함
  • 데이터 부족 문제를 해결하기 위해서, Vision Transformer에서 self-supervised pre-training 방법을 통해 large-scale image data문제를 해결하고자 함
    • [LSB+21] Efficient training of visual transformers with small datasets.
    • contrastive learning
      • [CXH 21] An empricial study of training self-supervised vision transformers.
      • [XLY+21] Self-supervised learning with swin transformers.
    • self-distillation
      • [CTM+21] Emerging properties in self-supervised vision transformers.

  • 자연어 처리에서는 BERT 모델이 큰 성공을 거두게 됨
    • [DCLT19] BERT : pre-training of deep bidirectional transformers for language understanding.
  • masked language modeling 을 통해 일정 텍스트들을 랜덤하게 mask 처리한 뒤에, 트랜스포머 인코딩을 통하여 오염된 텍스트들의 masked tokens 를 복원함
  • BERT에 동기부여를 받아서, denoising auto-encoding 아이디어에 착안하여 VIT를 사전학습 하는 방법을 고안함(Vision Community에서는 연구가 많이 되지 않았음)
  • BERT 스타일로 이미지 데이터를 사전학습 하는 것은 매우 challenging
    • VIT 입력으로 사용할 사전에 존재하는 vocabulary(i.e, image patchs)가 없음
    • 그래서 간단하게 가능한 masked patches에 대해서 softmax classifier 예측을 할 수가 없음
  • 대조적으로, 단어나 BPE(https://ratsgo.github.io/nlpbook/docs/preprocess/bpe/)와 같은, 언어 vocabulary는 잘 정의되어 있고 auto-encoding 예측에 사용하기 쉬움
    • [SHB16; BPE] Neural machine translation of rare words with subword units.
  • 직관적인 대안 방법으로는 task를 regression problem으로 보고, masked patches의 raw pixels을 예측하는 것
    • 하지만 pixel-level 복원 task는 short-range dependencies & high-frequency details 를 사전 학습 할 때 모델링 기능을 낭비하게 됨
      • [RPG+21] Zero-shot text-to-image generation.
  • 우리의 목표는, Vision Transformers 사전학습에서 발생되는 위에서 언급한 issue들을 극복하는 것
    • a self-supervised vision representation model BEIT(Bidirectional Encoder representation from Image Transformers) 를 소개함
    • BERT에 영감을 받아서, masked image modeling (MIM) 을 제안함
    • Figure 1과 같이, MIM에서는 이미지를 두가지 관점에서 바라봄
      1. image patches
      2. visual tokens
    • Figure 1(아래 이미지)

Figure 1

  • Figure 1 설명
    • BEIT pre-training의 Overview
    • 사전 학습 전에 ‘image tokenizer’를 학습하여 auto encoding 스타일로 복원을 하는데, image는 discrete visual tokens로 tokenized됨(학습된 vocabulary에 따라서)
    • 이미지를 1. image patches 2. visual tokens 두 가지 관점으로 봄
    • 랜덤하게 몇몇 이미지 패치에 대해서 special mask embedding[M] (회색 처리 한 것) 를 함
    • 패치들이 backbone vision Transformer에 들어감
    • 사전학습의 목표는 오염된 이미지의 인코딩 벡터에 기반하여, 원본 이미지의 visual tokens를 예측하는 것
  • 이미지를 쪼개어 grid of patches로 만들고 backbone Transformer에 넣음
  • 이미지를 tokenize하여 discrete visual tokens로 만들었는데, discrete VAE 에서 사용하는 latent codes를 포함함
    • [RPG+21] Zero-shot text-to image generation
  • 사전 학습 동안 일부 이미지 패치를 mask 시키고, transformer의 입력값으로 사용한다.
  • 모델은 masked patches의 raw pixels 대신에, 원본 이미지의 visual tokens를 복원하는 것을 학습하게 된다.

  • BEIT 모델을 self-supervised learning으로 학습하고 image classification, semantic segmentation에 사용하기 위해 fine-tuning 함
  • 처음부터 학습했을 때랑, self-supervised 로 학습했을 때 모두 좋은 성능을 보임
  • ImageNet Labels로 중간에 fine-tuning을 했을 때 성능이 향상됨
  • 추가연구에서는, BERT 스타일로 이미지 데이터를 사전학습 한 것이 효율성이 좋다는 것을 입증하였음
  • 성능 외에, fine-tuning 할 때 수렴 속도 및 안정성 향상으로 training 비용이 감소 됨
  • self-supervised BEIT가 semantic regions를 학습하는데 좋은 성능을 보임

Contibutions

  1. Self-supervised 방식으로 Vision Transformer를 pretrain 하기 위한 Masked Image Modeling(MIM) Task 를 제안함. Variational Autoencoder의 관점에서 이론적 설명을 제공함
  2. BEIT를 pretrain 하고 image classification, semantic segmentation과 같은 downstream task를 다양한 설정으로 실험함
  3. Self-supervised BEIT의 self-attention mechanism이 사람의 annotation 없이도 의미 영역(semantic regions)와 물체의 경계(object boundaries)를 학습하는 것을 제시함

2. Methods

  • input image x 가 주어지면, BEIT는 상황에 맞는 벡터 표현으로 인코딩 함 (BEIT encodes it to contextualized vector representations.)
  • BEIT는 self-supervised learning을 사전학습 된 masked image modeling (MIM)을 통해서 함
  • MIM의 목표는 encoding vectors에 기반하여 masked된 image patches들을 복원하는 것
  • downstream tasks 는, task layers를 사전학습 된 BEIT에 붙이고 특정 데이터셋 에 대해서 fine-tuning을 수행함

2.1.1 Image Representations : Image patch

  • 2D image를 VIT(DBK+20) 처럼 일련의 패치로 쪼개어, 트랜스포머 모델에서 이미지 데이터를 받을수 있도록 함
    • [DBK+20] An image is worth 16x16 words: Transformers for image recognition at scale.
  •  

  • 이미지 패치들은 raw pixels을 보존하고 있고, BEIT의 입력 features로 사용됨
  • 실험에서는 224 x 224 이미지를 16x16 패치를 사용하여 14x14 grid 이미지 패치들로 만들었음

2.1.2 Visual Tokens

  • 자연어 처리와 유사하게, 원복 픽셀들 대신에 이미지 토크나이저를 사용하여 이산적인 이미지 토큰들을 얻음
  • Dall-E 처럼, discrete variation autoencoder(dVAE)를 사용하여 이미지 토크나이저를 학습 시킴
  •  
  • visutal token learning 에는 두 가지 모듈이 있음
    1. tokenizer : $q_\phi(z|x)$ 토크나이저는 이미지 픽셀 $x$ 를 visual codebook(vocabulary) 이산형 토큰 $z$ 로 변환 시키는 함수
    2. decoder : $p_\psi(x|z)$ 는 visual tokens $z$ 를 입력 이미지 $x$ 로 복원하는 함수
      • reconstruction objective : $E_{z∼q_{\phi(z|x)}}[logp_\psi(x|z)]$
      • 위에 처럼 나타낸 이유는 latent visual tokens가 이산적이어서, 모델 학습에서 미분이 불가능 하기 때문
      • Gumbel-softmax relaxation 을 사용해 모델 parameters를 학습 시킴
      • $q_\phi$ 는 uniform prior 가 할당됨
  • 이미지를 14 x 14 grid of visual tokens 로 tokenize 시킴
  • 하나의 이미지에 대한 visual tokens의 개수와 image patches의 개수는 동일하다.
  • vocabulary size V는 8192로 함

[배경지식] : Variational Auto Encoder

출처 : https://www.youtube.com/watch?v=CQoM0r2kMvI

  • Variational Auto Encoder는 Autoencoder 모델에서 latent vector $z$ 가 평균 $μ$와 분산 $σ^2$ 를 따르는 정규분포로 가정한 모델
  • 목적함수의 하한경계인 ELBO (Evidence of Lower Bound)는 $logp(x)$가 최대가 되는 매개변수를 탐색하는 것이 목적이고 1)Reconstruction Term 2)Regularization Term으로 나뉨
    1. Reconstruction Term : 주어진 입력 데이터 x로 부터 latent vector z를 샘플링하고, z를 통하여 x를 다시 복원
    2. Regularization Term : KL Divergence를 통해 주어진 입력 데이터 x로 부터 latent vector z를 샘플링하는 확률 분포 q(z|x)가 표준 정규 분포 p(z)와 유사하도록 만들어 줌
  •  

2.2 Backbone Network : Image Transformer (수식으로 인해 노션 캡처로 대체)

  • 전체 patch에서 patch단위로 아무 곳이나 랜덤하게 Masking 될 부분을 선택하는 것보다는, patch에서 인접한 patch들을 함께 masking 처리해주는 것이 이미지에서 주변정보를 파악하는데 도움이 되고 성능향상에도 도움이 된다고 함

2.3 Pre-Training BEIT: Masked Image Modeling

  • 2.1.2의 Discrete VAE를 통해 Image를 Visual Tokens로 변환한 뒤에
  • 이미지에서 약 40%의 patch를 랜덤하게 마스킹 하고

Vision Transformer + softmax classifier 를 통해 masked image input 에 대한 visual token 을 예측함

  • Pre-training objective Function
    • Masked/오염된 이미지로부터 정확한 visual tokens z_i를 최대로 하는 log-likelihood를 찾는 것
    •  

Blockwise Masking

  • s : Masking size 샘플링 (최소 16개 이상의 patch 마스킹)
  • r : Aspect ratio를 0.3 ~ 1/0.3의 범위에서 샘플링
  • s,r에서 계산한 값으로 masking block의 높이(a), 넓이(b)를 계산
  • Masking block의 좌상단 점 좌표(t, l) 샘플링
  • 이전 Masking 정보와 합친 뒤, Masking의 비율이 전체 patch 수의 40%를 넘어가면 종료함
  • 예시

전체 patch에서 patch단위로 아무 곳이나 랜덤하게 Masking 될 부분을 선택하는 것보다는, patch에서 인접한 patch들을 함께 masking 처리해주는 것이 이미지에서 주변정보를 파악하는데 도움이 되고 성능향상에도 도움이 된다고 함