기존 CV 분야의 SOTA 모델은 사전에 정의된 object categories들의 데이터셋만을 예측하도록 학습되었다.
이미지에 대해 텍스트로 바로 학습하는 방법이 더 유용할 것이다.
30개가 넘는 CV, OCR, 영상 인식 등의 task들에서 fully supervised 방식만큼 좋은 성능을 보였다.
텍스트로부터 바로 학습을 하는 사전학습 방법은 NLP에서 오랜 시간 발전해왔다.
이러한 결과는, NLP에서는 lable이 있는 데이터에 대해 학습하는 것보다 대용량의 사전학습모델로 학습하는 것이 더 좋은 성능을 갖는다는 것을 의미한다.
weakly supervised 모델과, 최근 연구중인 텍스트로부터 이미지 바로 학습하는 모델의 주요한 차이점은 'Scale' 이다.
CLIP은 natural language를 supervision으로 학습한다. 기존에도 이미지
텍스트 pair로 visual representation을 학습한 여러 연구가 있었지만, 이들은 모두 unsupervised, self-supervised, weakly supervised, supervised 등 다르게 표현하였다.
natural language로부터 바로 학습하는 것은 다른 training 방식에 비해 별도의 번거로운 labeling 작업이 필요 없어 scaling하기가 수월하다.
추가로, 이미지 뿐만 아니라 natural language 까지의 연결해서 Representation learning이 가능하며, 다른 task로도 유연한 zero-shot transfer가 가능하다.
기존 연구에서는 3가지 데이터셋을 사용했다.
1. MS-COCO
2. Visual Genome
3. YFCC100M
MS-COCO, Visual Genome은 품질은 좋으나 그 양이 매우 적고, YFCC100M은 각 이미지에 대한 메타 데이터가 부족하고 품질이 모두 다르다.
기존의 데이터셋이 인터넷 상의 수많은 데이터를 따라가지 못하기에 해당 연구에서는 WIT(WebImageText)라는 4억개의 이미지, 텍스트 pair 데이터셋을 구축했다.
기존 SOTA CV 시스템은 computation 비용이 매우 컸다.
해당 논문에서는 초기 연구에서 VirTex와 유사하게 image CNN과 text transformer를 처음부터 함께 훈련해 이미지의 caption을 예측하게끔 했다. 하지만 이 방법으로는 파라미터가 6300만개로, 너무 많아 효율적으로 scaling하기가 힘들었다. 간단한 bag-of- words 모델보다 3배나 느렸다.
constrastive 방식이 predictive 방식보다 representations를 학습하는 데 있어 더 낫다는 것이 최근 밝혀졌다.
해당 연구에서는 단어 하나만이 아니라 '텍스트 전체(text as a whole)'를 이미지와 짝지어 학습하였다.
모델 구조
큰 size의 pretrained-trainig 데이터셋을 사용하기 때문에 overfitting 문제가 중요한데, 이를 해결하기 위해서 CLIP을 학습할 때 image encoder는 ImageNet weights를 사용하지 않았고, text encoder는 pre-trained weights를 사용하지 않고 initialize하였다.
학습 과정에서 data augementation에 있어서는 random square crop만 사용하였다.
softmax의 logits의 범위를 조절해주는 temperature parameter τ를 optimize해주어 log-parmeterized multiplicative scalar가 하이퍼파라미터로 튜닝되는 것을 방지해주었다.
CLIP은 image-text간 예측을 위해 pre-trained 되었는데, 이 capability를 재사용해서 zero-shot classificaiton을 진행한다.
각 class의 name을 "a photo of a { }." 형식의 문장으로 바꾼 후, 주어진 이미지와 유사도를 모든 class에 대해 계산하는 방식으로 prediction이 이루어진다.
기존 Visul N-Gram과 비교했을 때, aYahoo, ImageNet, SUN 3개의 데이터셋에 대해 CLIP이 모두 zero-shot 성능이 뛰어났다.
Prompt Engineering and Ensembling
Zero-shot CLIP 성능을 RESNET-50의 성능을 비교해보았을 때, 27개의 데이터셋 중 16개의 데이터셋에서 성능이 앞섰다.
Zero-shot CLIP의 성능을 few-shot methods와 비교했을 때도 대체로 성능이 앞서는 것을 볼 수 있었다.
Representation Learning
Robustness to Natural Distribution Shift
인터넷상의 매우 큰 데이터셋으로 pre-train하기 때문에 의도치않게 데이터가 겹칠 수 있다.
이를 방지 하기 위해 모델을 학습하기 전 모든 중복된 데이터를 제거할 수 있는데, 이렇게 하면 benchmarking과 분석의 scope를 제한할 수 있다.
대신 CLIP은 데이터가 얼마나 겹치는지 확인하고, 그에 따라 성능이 얼마나 변화하는지를 살펴보았다.
Overlap: contains all examples which have a similarity to a training example above the threshold
Clean: contains all examples which have a similarity to a training example above the threshold
ALL: unaltered full dataset
ALL 대비 Overlap의 비율을 통해 degree of data contamination을 기록한다.
위 3개의 split에 대해 CLIP RN50x64의 zero-shot accuracy를 측정하고 'All - Clean'을 주요 metric으로 사용한다.
overlap 정도가 낮을 경우 binomial significance test를 진행하고, Overlap subset에 대해 one-trailed(greater) p-value를 계산한다. Dirty의 99.5% Clopper-Pearson confidence intervals 도 계산한다.
detector가 완벽하지 않을 수 있고, data distribution이 'Overlap', 'Clean' Subsets 간 shift가 일어날 수 있다는 문제가 있지만, 기존 large scale pretraining의 연구에서의 결과를 따른다는 점에서 활용 의의가 있다.
zero-shot CLIP은 ResNet-50의 baseline과 비슷한 수준이지만 SOTA에 비하면 성능이 많이 떨어진다. SOTA 수준의 성능까지 올리려면 computation을 1000배 늘려야 하는데 이는 현재 하드웨어로 불가능한 수준이다.
CLIP의 zero-shot 성능은 아직 여러 task에 대해 저조한 모습을 보인다. task-specific한 모델들에 비해 fine-grained classification에서 취약한 모습을 보이고, abstract 하고 systematic한 task에 대해 어려움을 겪는다. CLIP의 pre-training dataset에 없는 novel task에 대해서도 많이 취약한 모습을 보인다.
out-of-distribution 데이터에 대해 generalize하기 힘들다.
인터넷 상의 데이터로 학습을 했기에 많은 social bias를 학습한다.
NLP 분야에서 성공한 task-agnostic web-scale pre-training 방식을 vision 분야에 transfer하여 적용함이 가능함을 확인하였다.
CLIP 모델을 학습하여 pre-training 과정에서 다양한 종류의 task를 수행하도록 하여 optimize하였고, 이 task learing이 다양한 dataset에 대해 zero-shot transfer를 가능케했다.
좋은 글 감사합니다. 자주 방문할게요 :)