
Self-supervised Pre-trained Model이 이제는 표준이 된 시대다. 이 방식의 핵심 아이디어는 대량의 라벨링되지 않은 데이터로 Self-supervised Pre-training을 거쳐 BERT나 GPT 같은 모델을 얻고, 이후 간단한 Fine-tuning을 통해 Downstream Task에 맞추는 것이다. 이런 방식으로 Downstream Task의 데이터 의존도를 줄여왔다. NLP뿐만 아니라 CV, Speech, 심지어 Multimodal 분야까지도 뛰어난 성과를 달성한 것이다.

예전에는 각 Modality마다 방법이나 모델이 크게 달랐다. 하지만 최근에는 두 가지 트렌드가 생겼다:
1. 기본적으로 'Transformer'를 표준 아키텍처로 사용한다.
2. Self-supervised pre-training task도 점점 통합되고 있다.
중요한 지점은 NLP와 CV는 더 잘 통합될 수 있다는 점이다. 따라서 연구자들은 NLP에서의 성공적인 경험을 CV로 어떻게 전이할지에 대해 고민하게 되었다.

NLP에서 BERT와 같은 Generative self-supervised pre-training task가 매우 중요한 역할을 한다는 점은 잘 알려져 있다. 하지만 당시 CV에서는 대부분 Contrastive learning을 주류 방법으로 사용하고 있었다. 그래서 저자는 CV에서도 Generative self-supervised pre-training을 수행할 수 있을지에 대해 고민했고, 이것이 언어와 비전을 더 잘 통합할 수 있는 방법이라고 판단했다.

BEIT는 unlabeled Images + ViT + MIM을 사용한다.


모델이 커질수록 데이터도 함께 커지지 않으면 오버피팅의 위험이 커진다. 당시 CV에서는 Contrastive self-supervised pre-training을 많이 사용했지만, 세 가지 문제가 있었다:
1. Data augmentation에 대한 의존도가 심했다.
2. 메모리나 계산 확장성 문제
3. 성능 포화 문제

이 논문은 "BERT와 유사한 Masked prediction pre-training을 ViT에 효과적으로 적용하여 성능과 데이터 효율성을 향상시키는 방법은 무엇인가?"에 대한 질문에 답하고자 한다.

이 연구에서는 Visual Tokens을 도입하려고 했다. DALL-E에서 사용된 dVAE(Discrete variational autoencoder)와 관련된 기술을 사용했다. Tokenizer를 통해 이미지를 이산화된 토큰으로 변환하고, 이를 Decoder로 복원하는 과정을 거친다. BEIT에서는 이 과정에서 학습된 Tokenizer만 사용한다.

이제 우리는 Visual Token View와 Image Patch View 두 가지를 얻을 수 있다.

이를 기반으로 이미지 패치에 Blockwise Masking을 수행한다. 실제로 ViT에서는 각 이미지 패치가 입력 단위이기 때문에, [MASK] 토큰으로 대체한다.

이렇게 마스크된 시퀀스 패치에 Position Embedding을 더해 BEIT Encoder(Transformer)에 입력하게 된다.
이후 간단한 선형 레이어인 Masked Image Modeling Head가 추가된다. 이 레이어는 우리가 이전에 얻은 Discrete Visual Tokens로 변환되는 역할을 한다. 최종 목표는 이미지 패치를 올바른 Visual Token으로 복원하는 것이다.
이 방식의 장점은 Visual Token이 특정 시각적 세부 사항을 걸러낼 수 있다는 것이다. 이를 통해 더 나은 Representation 학습을 유도할 수 있다는 점이다.

핑크색과 회색은 dVAE 과정을, 보라색 부분은 손상된 이미지를 복원하는 즉, Masked Image modeling 부분을 나타낸다.

Fine-Tuning 단계에서는 MASK나 tokenizer를 제거하고, BEIT Encoder 위에 원하는 Task-specific layers를 연결하면 된다.

3B의 라벨링된 데이터로 학습된 이전 SOTA 모델과 같은 성능을 BEIT는 14M의 라벨링된 데이터로 Fine-Tuning만으로도 달성할 수 있었다. 이를 통해 라벨링 데이터 의존도를 크게 줄일 수 있었다는 점을 알 수 있다. 또한 semantic segmentation (ADE 200K)에서도 당시 SOTA의 성능을 기록했다.

또한, 최종 수렴 속도가 크게 개선되었다. 비교적 적은 epoch만으로도 DEiT와 동일한 성능을 달성할 수 있었다.

위 Self-Attention Map을 보면서 알 수 있듯이 Fine-Tuning을 거치지 않은 Self-supervised pretraining 후에도, 이미지의 레이블이 없지만 신경망이 스스로 객체 개념을 학습했다는 점을 확인할 수 있었다. 이런 학습은 더 나은 범용성을 가져오며, 다양한 Downstream task에서 성능을 높이는 데 기여한다.
저자는 BEIT v2 이전의 MIM 방법을 재구성 목표에 따라 3가지 범주로 나눈다.
그러나 이러한 방법들은 주로 low-level image element에 집중하여 high-level semantics를 충분히 반영하지 못하는 한계가 있었다. 반면, NLP의 Masked Language Modeling은 단어 간 의미적 관계, 즉 high-level semantics에 초점을 맞추고 있다.
따라서 이 논문은 "어떻게 하면 Masked Image Modeling 과정에서 low-level image element 수준을 넘어 high-level semantics 수준의 정보를 효과적으로 활용할 수 있는가?"라는 질문에 답하고자 한다.
BEIT v2는 기존 BEIT 구조를 기반으로 Vector-Quantized Knowledge Distillation (VQ-KD)을 도입하여 이미지를 학습 가능한 코드북으로 변환하는 새로운 시각적 토크나이저를 설계하였다.


BEIT v1와의 차이점을 중점적으로 보곘다.
BEIT처럼 Visual Tokenizer는 어휘(V, 즉 시각적 코드북)을 이용해 이미지를 visual discrete tokens으로 매핑한다. BEIT와 달리, BEIT v2에서는 Vector-Quantized Knowledge Distillation (VQ-KD)를 제안하여 토크나이저를 훈련한다. 여기서 Vector Quantize는 embedding과 유사하게 동작하며, 토크나이저는 ViT 인코더와 quantizer로 구성된다. 이미지를 벡터로 인코딩하고, quantizer는 각 패치 표현에 대해 코드북에서 가장 가까운 이웃을 찾는다.

는 patch representation, 는 codebook embedding
L2 norm (유클리드 거리)가 코드북 조회에 사용되며, 디코더 출력()은 Teacher Model (예: DINO, CLIP)의 semantic features를 재구성하는 것을 목표로 한다. 디코더 출력과 Teacher 모델의 패치 feature vector 사이의 코사인 유사도를 최대화하려고 한다.
VQ-KD의 training objective는 다음과 같이 정의된다.

여기서 sg[]는 stop-graident operator, D는 tokenizer training에 사용되는 이미지 데이터를 나타낸다.
Vector quantization에서 발생하는 일반적인 문제는 codebook collapse로, 코드북의 일부만 사용되는 현상이다. 이를 해결하기 위해 lookup space를 32차원으로 줄인 후 다시 고차원 공간으로 매핑한다. 지수 이동 평균(EMAs)을 사용하여 더 안정적으로 코드북 임베딩을 업데이트한다.
BEIT와 동일한 방식으로 수행된다.

BEIT v2는 전역적인 이미지 표현을 학습하기 위해 CLS 토큰을 명시적으로 사전 학습(pretrain)한다. 이는 패치 수준의 사전 학습과 이미지 수준의 표현 통합(image-level representation aggregation) 간의 불일치를 줄이는 데 목적이 있다. 즉, BEIT v2는 이미지 전체의 정보를 잘 포착할 수 있도록 CLS 토큰**을 활용한다.
구체적으로, CLS 토큰 은 마지막 층에서 얻은 전역 표현으로, 이는 중간 i번째 레이어의 patch vector와 결합된다. 이 결합된 벡터 는 얕은 트랜스포머 디코더에 입력되어 마스킹된 패치의 예측을 수행하게 된다.
최종 Train Loss는 L번째 층에서의 원래 Loss와 얕은 Transformer 디코더의 MIM Loss 두 가지 항목의 합으로 구성된다.
최종적인 손실 함수는 L번째 층에서의 원래 Loss과 얕은 트랜스포머 디코더의 Masked Image Modeling(MIM) Loss**을 합한 형태로 정의된다. 이러한 구조는 i+1번쨰 최종 층까지의 모든 파라미터를 효과적으로 활용해 MIM Loss을 줄이려는 경향을 강화하기에 모델이 전역적인 정보를 CLS 토큰에 밀어 넣는 것을 촉진시킨다.
사전 학습 중에 사용된 얕은 디코더는 CLS 토큰 학습을 위해서만 사용되며, 학습이 완료된 후에는 제거된다. 이러한 접근은 이미지의 패치 정보를 통합하여 전체적인 이미지 표현을 더욱 강화하며, 이는 다양한 다운스트림 작업에서 성능 향상에 기여한다.

BEIT v2는 Image Classification Task에서 높은 성능을 보여주었으며, 특히 ViT-L/16을 사용하는 BEIT v2는 300 epoch만에 1600 epoch의 data2vec과 비슷한 성능을 달성하였다.
또한 Semantic Segmentation(ADE20k)에서도 SOTA의 성능을 보임을 알 수 있다.

Linear Probing, Robustness에서도 뛰어난 성능을 보였다.

VQ-KD가 더 깊은 디코더를 가질 때 Reconstruction Loss는 낮아지지만, 코드북 Usage와 Downstream task 성능도 낮아진다.
또한 코드북 조회을 위한 차원 축소는 코드북 활용도를 향상시킨다는 것을 알 수 있다.

Pretraining Global Representation은 성능을 높이는 데 효과적이며, 얕은 헤드가 깊은 헤드보다 CLS 토큰에 더 많은 주의를 기울인다는 결과를 보여준다.

CLIP을 사용했을 때, 성능이 훨씬 뛰어남을 확인할 수 있다.
BEIT v1, v2는 주로 단일 모달리티(이미지)에 집중했다면, BEIT v3는 멀티모달(이미지, 텍스트, 이미지-텍스트 쌍)을 아우른다.
이 논문은 "통합된 Masked Data Modeling 접근 방식을 사용하여 광범위한 Vision 및 Vision-Language에서 SOTA를 달성할 수 있는 범용 멀티모달 Foundation 모델을 어떻게 설계하고 구축할 수 있는가?"라는 질문에 답하고자 한다.
BEIT v3의 목표는 매우 명확하다. 모델, 목적 함수, 모델 크기, 데이터 크기 등 모든 측면에서 통합된 프레임워크를 구축하는 것을 목표로 하며, 저자는 이를 "Big Convergence"라 부른다.
이를 한 문장으로 요약하자면, BEIT v3는 이미지를 하나의 언어처럼 간주한다. 저자는 이를 Imglish라 부르며, 텍스트는 English, 이미지-텍스트 쌍은 parallel sentences으로 본다. 이 시점에서 이미지와 텍스트 모두 Masked Modeling을 사용할 수 있으며, ITC, ITM과 같은 추가적인 손실 함수는 필요하지 않다. 단지 하나의 Masked Modeling Loss로 충분하다.
모델은 이전 논문(VLMo)에서 제안된 MOME(Multiway Modeling) 구조를 사용하며, 이를 Multiway Transformers라 명명했다.
결론적으로 간단하면서도 확장성 높은 구조를 갖추고, 하나의 모델(Multiway Transformers)과 하나의 목적 함수(Mask Modeling)만을 사용한다.

BEIT v3의 유연한 구조는 하나의 모델이 추론할 때 다양한 Downstreak task으로 분할되어 수행될 수 있다는 점이 가장 큰 강점이다. 이를 통해 Semantic Segmentation, ImageNet Classification, Object Detection과 같은 단일 모달리티 이미지 작업뿐만 아니라, NLP와 멀티모달 작업도 가능하다.

BEIT-3는 기존의 여러 SOTA 모델들을 뛰어넘는 성능을 보여주었다.
또한 모두 공개된 데이터만을 이용해 단순한 모델 구조와 하나의 목적 함수만을 사용했지만 데이터는 많지 않았음에도 뛰어난 성능을 보여주었다는 것을 알 수 있다.
BEIT v3는 다양한 SOTA 모델을 뛰어넘는 성능을 보여준다. 간단한 구조와 하나의 목적 함수를 사용하면서도 공개된 데이터만으로 탁월한 성과를 낸 것이 특징이다.
따라서 다음 두 가지 중요한 결론을 얻을 수 있다.
BEIT v3는 BEIT v2, VL-BEIT, VLMo의 작업을 확장하고 발전시키는 것을 목표로 한다. 논문은 Vision-Language Pretraining의 융합(Convergence) 경향을 세 가지 측면에서 설명한다..
시각 작업에서 CNN과 Transformer 간의 우월성 논쟁이 있지만, 미래는 멀티모달 처리 능력이 중요해질 것이다. Transformer는 Inductive bias가 없어 여러 모달리티를 처리하는 데 적합하다.
저자는 이전까지 vision-language modeling을 수행하는 다양한 방법을 소개한다.
이러한 모델들은 각각의 작업에 맞춰 수정이 필요했다.
즉, 모델을 잘 훈련시키고 바로 사용하면 되는 것이 아닌 다양한 작업을 만날 때마다 수정해야 한다.
이는 저자가 말하는 General-Purpose modeling과 거리가 있다.
그래서 저자는 Multiway Transformers를 통하여 이 방향으로 더 나아가고자 한다.
Masked data modeling은 텍스트(BERT), 이미지(BEIT), 그리고 텍스트-이미지 쌍(VL-BEIT)과 같은 다양한 모달리티에서 성공적으로 사용되어 왔다. 이 논문에서는 하나의 목적 함수만으로 이러한 멀티모달 학습이 가능할지에 대한 의문을 제기한다.
우선, image-text matching과 같은 여러 목적 함수를 추가하면 데이터와 모델의 크기가 커질수록 학습 속도가 현저히 느려진다. 이는 큰 모델을 짧은 시간 내에 학습하기 어렵게 만든다. 또한, 최적화와 파라미터 조정의 문제도 발생한다. 만약 하나의 손실 함수만 있다면 그에 맞는 가중치(weight)를 조정하면 되지만, 손실 함수가 여러 개일 경우 각 손실 간의 가중치를 어떻게 조정해야 할지 문제가 된다. 더 나아가, 일부 손실 함수는 상호 보완적일 수 있지만, 일부는 상호 배타적일 수 있어 복잡도가 증가하고 하이퍼파라미터 조정의 어려움이 따른다.
이에 따라, 저자는 mask-then-predict라는 단일 사전 학습 태스크만을 사용한다. 그리고 이미지를 외국어로 간주하며(이를 Imglish라고 명명), 이미지를 Vision Transformer(ViT)의 임베딩 레이어를 통과시켜 토큰 시퀀스로 변환한다. 이렇게 하면 텍스트와 이미지를 동일한 방식으로 처리할 수 있으며, 멀티모달 작업에서 텍스트-이미지 쌍을 parallel sentences로 간주하여 학습할 수 있다.
하나의 모델로 다양한 작업을 해결하기 위해서는 모델과 데이터의 크기를 키워야 한다. BEIT v3는 수십억 개의 파라미터와 대규모 데이터셋을 사용했으며, 공개된 자원을 통해 학계에서 쉽게 활용할 수 있도록 설계되었다.

위 그림은 BEIT v3의 사전 학습 과정을 보여준다. 매우 단순한 구조임을 확인할 수 있으며, 실제로는 VLMo와 거의 유사하다. BEIT-3는 Multiway Transformer를 사용하는데, 이는 VLMo의 MOME 구조와 매우 비슷하다. 앞부분의 Self-Attention(SA) 레이어는 모든 모달리티에서 가중치를 공유하고, 뒷부분의 Feed Forward Network(FFN)는 모달리티별로 다르게 학습된다. 이렇게 다양한 입력 모달리티를 통해 모델이 어떤 방향으로 나아갈지를 결정할 수 있다.

훈련이 완료된 후에는 다양한 태스크에 맞춰 전이 학습을 수행할 수 있다. Vision Encoder만 사용하면 이미지 관련 작업을 처리할 수 있으며, Language Encoder는 텍스트 관련 작업을 담당한다. V-FNN과 L-FNN을 거친 후에는 Fusion Encoder를 사용하여 VQA나 NLVR2와 같은 Vision-Language Understanding Task를 수행할 수 있다. 또한, CLIP과 같이 더 효율적인 Image-Text Retrieval을 위해 Vision과 Language를 분리하여 처리할 수 있다. 이후, Image-Text Contrastive Learning을 통해 파인튜닝을 진행할 수 있다.
COCO와 같은 태스크에서는 텍스트에서 Masking을 적용한 후, Image grounded text encoder를 사용해 마스킹된 단어를 예측함으로써 Image Captioning 작업도 수행할 수 있다.
BEIT-3는 일종의 레고 블록과 비슷하다. 각각의 학습된 Transformer 블록은 학습된 SA층이나 FFN이다.
이들을 자유롭게 조합하고 구성할 수 있다. 이를 통해 원하는 다양한 조합을 이룰 수 있다.
기본 Masked Image Modeling(MIM)에서 의미 정보를 포함하는 방향으로 초점 이동
더 나은 Tokenizer(VQ-KD)와 아키텍처 변화(patch aggregation)를 통해 글로벌 표현 학습을 개선*
통합된 멀티모달 모델로의 도약
Multiway Transformer와 비전 및 언어 모달리티 전반에 걸친 하나의 목적 함수 사용
효율적인 확장과 다양한 작업에서 SOTA 달성

BEIT: BERT Pre-Training of Image Transformers
ICLR2022 - 董力 - BEIT: BERT Pre-Training of Image Transformers_哔哩哔哩_bilibili
valser.org/webinar/slide/slides/20211124/董力.pdf
BEIT v2: Masked Image Modeling with Vector-Quantized Visual Tokenizers
Review — BEiT V2: Masked Image Modeling with Vector-Quantized Visual Tokenizers | by Sik-Ho Tsang | Towards Dev
Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks