개요
CLIP같은 multi-modal pre-training 방법론인데 정말 간단한데 성능이 괜찮게 나와서 리뷰를 하게 되었습니다. CLIP같은 경우 image 와 image를 설명하는 text를 각각 embedding해서 contrastive learning을 하는 방면, SuperClass에서는 image 를 설명하는 text를 V개의 token으로 변환한 후 classification loss를 사용해서 image encoder을 학습시킵니다. Text encoder이 필요 없기 때문에 computation도 줄어듭니다 (text embedding을 못 얻는 단점도 있지만). 간단하지만 성능은 좋게 나오는데 (ImageNet, VQA), 기본이 중요하다는 것을 잘 보여주는 예시인 것 같습니다.
방법
Overview
Fig. 1에서 보이듯이 image -> model -> text token (class)를 예측하는 방식으로 학습을 합니다.
Architecture
Vision Transformer을 backbone으로 사용하고, global average pooling + linear layer (classification head)를 사용해서 logit x를 추출.
Text token (class)
우선 다음과 같이 데이터를 표현해봅시다 \( \mathcal{D} = \{(I_i, T_i) | i \in [1,N] \}\).
- I: 이미지
- T: text
Text T를 tokenize를 해서 \( \mathbb{C} = \{ c \in [1,V]\} \)를 얻습니다
- V는 vocabulary size (가능한 token들)
- Token은 subword tokenizer (openai의 CLIP에서 사용한 tokenizer)
- 예를 들어 text가 1개의 token으로 이뤄져있으면 1개의 one-hot vector \( y \in \mathbb{R}^V\)를 얻을 수 있습니다.
- 여러 개의 token을 어떻게 class로 취급하는지는 밑에서 다루겠습니다.
Text token to class vector
더 중요한 정보를 담고 있는 단어를 강조해야 하기 때문에 (예를 들어 the, a, 같은 단어의 의미 함유량이 적음) 위에서 얻은 tokenized text를 어떻게 한 개의 벡터로 변환하는지가 중요합니다. 논문에서는 inverse document frequency를 token의 중요도로 사용합니다.
여기서 \( \| \mathcal{D}| \)는 총 image-text pair, \( df(c) \)는 subword c의 document frequency입니다. 총 학습용 text에서 얼마나 자주 subword c가 등장하는지의 역수의 log 값을 (+1는 등장하지 않는 token에 의해 divergence 방지) class weight로 사용했다고 생각하면 됩니다.
Classification loss
이제 V개의 class가 있고 각 text를 normalized vector로 embedding 했기 때문에 image에 대응되는 V개의 class를 갖는 확률분포로 보내는 map을 얻었습니다. 그래서 간단하게 cross entropy loss를 사용할 수 있습니다
매우 간단하죠...?
실험
CLIP과 비슷하게 학습하기 위해서 batch size = 90,000, AdamW + cosine schedule, 같은 learing rate & decay 사용.
Linear probe accuracy
사용한 데이터가 다르기도 하고 contrastive learning과 text label이 있는 CLIP / SuperClass 같은 방법론들을 단순 비교하는 것이 약간 무리가 있기는 하지만 간단함과 성능적인 측면에서 유의미한 결과인 것 같습니다.
모델 사이즈와 학습 데이터 양에 대해서도 SuperClass가 좋다고 합니다 (앞에서 언급했듯이 약간의 무리가 있기는 합니다만)
Appendix를 보면 같은 데이터에 학습한 결과도 있는데 SuperClass가 약간 더 좋은 결과가 나오기는 했습니다.
'논문 리뷰 > self-supervised learning' 카테고리의 다른 글
[논문 리뷰] DINO-v1 (Emerging Properties in Self-Supervised Vision Transformers) (0) | 2023.08.13 |
---|---|
[논문 리뷰] W-MSE (1) | 2023.06.03 |
[논문 리뷰] MeanShift (2) | 2023.05.21 |
[논문 리뷰] SNCLR (0) | 2023.05.21 |
[논문 리뷰] self-supervised learning 이 항상 도움될까? (0) | 2023.03.30 |