CLIP: Learning Transferable Visual Models From Natural Language Supervision
이 연구는 추가 학습 없이 새로운 문서에서 정보를 추출하는 Zero-shot Document Query System의 가능성을 탐구합니다. BLIP, BLIP-2, LLaVA, MiniGPT-4 등 최신 Multimodal Language Model을 활용한 접근 방식과 그 성능을 분석합니다
Visual N-Grams 모델보다도 zero-shot 분류 성능이 더 좋았지만, Visual N-Grams 연구가 나오기 전에는 Transformer 모델도 없었으며 학습 데이터 양또한 CLIP이 많다는 부분 등을 언급하면서 이 모델과의 비교가 완전히 공평한 조건에서 이루어지지 않았다는 부분을 언급.
Zero-shot Linear-probe
Pre-trained ResNet-50에 비해 27개의 task 중 16개에서 더 좋은 결과를 보여줌.
EuroSAT, RESISC45은 인공위성 데이터이며, 지엽적인 정보를 CLIP은 pre-training 하면서 습득하지 못한 것으로 보여짐.
Few-shot Task 성능과 비교
CLIP Zero-shot task는 다른 모델들의 few-shot 결과보다 좋았으며, CLILP의 zero-shot 평균 성능은 4-shot 일때이며, 이는 다른 baseline 모델의 16-shot의 결과와 비슷한 수준.
Prompt의 중요성
ChatGPT에서 프롬프트를 이용하여 다양한 task를 수행할 수 있는 것처럼, 당시 논문에서도 일찌감치 프롬프트를 이용하여 zero-shot 성능을 더 끌어올릴 수 있고 다양하게 적용될 수 있다고 언급.
아래 결과는 실제로 프롬프트만 바꿔줬을 때, 4배 더 많은 연산을 한 모델과 같은 성능을 보여줌.
Results Examples
GTWrong
Representation Evaluation using Linear-probe
Why?
Linear-probe를 하기 위해 FC-layer를 사용하지 않고 Logistic Regression (LR) Linear Classifier를 이용 → 모델이 학습한 이미지의 representation의 failure를 좀 더 명확히 판단 가능하기 때문(FC-layer는 model의 failure를 보정 및 가릴 수 있기 때문).
Zero-shot 실험과 비슷한 맥락에서 확장된 분석이 가능하기 때문.
Representation Linear-probe Results
ViT 기반의 CLIP 모델이 가장 좋은 성능을 보여줌.
위에서 CLIP 다음으로 좋은 결과를 보여준 EfficientNet-NoisyStudent 모델과 비교한 결과에서 더 좋은 결과를 얻음.
Robustness
Task Shifting
아래 그림의 y축의 결과는 위의 Representation을 설명하는 처음 그림의 결과, x축은 ImageNet 분류 결과.
CLIP을 제외한 다른 baseline 모델들은 ImageNet에서 pre-trained 된 모델이라 다른 데이터셋으로 평가하였을 때 점선 아래, 즉 ImageNet 결과보다 낮은 결과를 보여줌.
CLIP은 데이터셋의 상관 없이 똑같이 높은 결과를 보여줌 → CLIP이 robust하다는 것을 방증.
Distribution Shifting
학습된 이미지와 비교하여 distribution shifting이 일어난 이미지에 대해서도 CLIP은 강건하게 작용.
(Left) Ideal line과 CLIP이 다른 baselines 보다 더 가까움.
(Right) ImageNet에서 pre-trained 된 ResNet101보다 distribution shifting 된 데이터에 더 강간한 결과를 보여줌.
Comparison with Human Performance
Results
Oxford IIT Pets test set 으로 개/고양이 labeling 수행.
사람도 zero-shot, 개/고양이 하나/두가지 예시를 보고 one/tow-shot으로 labeling 수행.
CLIP의 zero-shot 성능이 human performance보다 좋음.
Human VS CLIP
사람이 어려워하는 task는 CLIP도 똑같이 어려워하는 경향이 있음.
Limitation
ResNet-50, 101과 비교해서 zero-shot CLIP이 더 좋지만 평가에 활용된 dataset의 각각의 supervised SOTA에 비하면 많이 낮은 성능을 가져서 zero-shot CLIP이 SOTA 성능에 도달하려면 계산량이 1000배 정도 증가할 것으로 예상.
zero-shot CLIP이 잘하는 task도 있지만 task-specific 모델과 비교하여 지엽적인 이미지 분류 task에 대해서는 약함 → CLIP은 고품질의 OCR representation을 학습하지만, MNIST에서 88%의 정확도밖에 달성하지 못하였고 이는 단순한 LR 모델보다 낮은 성능.
WIT dataset에 MNIST같은 특이한 데이터가 없었을 확률이 높음.
CLIP이 generalization 문제를 완전히 해결하지 못함을 방증.
딥러닝의 데이터 활용률이 매우 낮다는 근본적인 문제점을 해결하지 못함.
어쨌든 수집한 4억개의 데이터도 supervision을 위한 데이터셋이며, 이 이미지를 1초에 하나씩 32 epoch 학습을 한다면 405년이 걸림.
이러한 문제점을 해결하기 위해 self-supervision 방법등을 도입해볼 필요성이 있음.
인터넷에서 수집한 데이터로 CLIP을 학습시켰기 때문에 CLIP은 기존에도 사람이 가지고 있는 여러 사회적 편견들도 똑같이 학습하게 됨.
Text-Text CLIP
Sentence Embedding
Spearman Rank Correlation between GT and consine similarity
Model
STS12
STS13
STS14
STS15
STS16
SICK-R
Avg. GloVe embeddings
55
71
60
68
64
54
Avg. BERT embeddings
39
58
58
63
61
58
BERT CLS-vector
20
30
20
37
38
143
InferSent-GloVe
53
67
62
73
67
66
Universal Sentence Encoder
64
68
65
77
73
77
SBERT-NLI-base
71
77
73
79
74
73
Text CLIP
70
69
69
78
71
68
Test Example
src : What are the most visited websites in Iran?
gt (0.806359): What websites are popular in Iran?
trg 0 (0.806359): What websites are popular in Iran?
trg 1 (0.806359): What websites are popular in Iran?
trg 2 (0.670667): Is Iran safe to travel?
trg 3 (0.618899): Do most Israeli favor settlement expansion in West Bank?
trg 4 (0.598458): What does Balaji Viswanathan feel about astrology?
trg 5 (0.592356): Which are the best freelancing sites in India?
trg 6 (0.590484): What is the meaning of Islamic banking or Islamic window? Why RBI is considering this type of banking system for conventional banks?
trg 7 (0.578498): Which banks give high interest rates in India?
trg 8 (0.574674): Is it really true that US is backing ISIS?
trg 9 (0.570506): What is the best Real Estate website company?
src : Is it possible to make time machine and do time travel?
gt (0.662521): Will time travel be possible in the next 10 years?
trg 0 (0.773328): It is possible to travel by time?
trg 1 (0.770381): Is time traveling possible in future?
trg 2 (0.763108): Could time travel be possible?
trg 3 (0.763108): Could time travel be possible?
trg 4 (0.763108): Could time travel be possible?
trg 5 (0.763108): Could time travel be possible?
trg 6 (0.755130): Is it possible to time travel to past?
trg 7 (0.755130): Is it possible to time travel to past?
trg 8 (0.755130): Is it possible to time travel to past?
trg 9 (0.755130): Is it possible to time travel to past?
Dialogue Embedding
src : Now, tell me, what do you eat?
gt (0.522589): Well, I don't eat any meat, but I do eat fish and eggs.
trg 0 (0.611957): Scrambled egg, bacon, three pieces of bread and a cup of tea.
trg 1 (0.583295): I'll use ginger, garlic scallion, hot pepper and vinegar.
trg 2 (0.566221): I like seafood on my pizza.
trg 3 (0.560516): Doctor, I have a bad cough and a headache.
trg 4 (0.552998): Breakfast juice and please make my coffee very strong.
trg 5 (0.550847): Sour-peppery soup.
trg 6 (0.545678): I am good at stewing beef with potato, frying chicken, hot and sour soup etc.
trg 7 (0.542675): My cigarettes.
trg 8 (0.539856): Quiet color.
trg 9 (0.532516): Maybe just a quick sandwich, salad, or something.
src : 오오 가족 다같이 산책을?
gt (0.516126): 웅웅 하하 근데 아마 엄마랑 주로 할거같아
trg 0 (0.551610): 어 가족들끼리 다같이 공원도 가고
trg 1 (0.546570): 아니! 이런 날에 혼자 걷기 너무 좋아
trg 2 (0.516126): 웅웅 하하 근데 아마 엄마랑 주로 할거같아
trg 3 (0.508402): 예전에는 자주 다녔는데 요샌 서로 바빠서 잘 안 가는 편이야 하하
trg 4 (0.479374): 응응 하하 걷다보면 당떨어져서 초콜릿 먹어야해
trg 5 (0.475145): 우리는 애기 재울려고 산책 나가
trg 6 (0.474212): 산책 하는 거 너무 좋아해
trg 7 (0.456209): 가을이 산책 너무 좋아해서 저기 공원이랑 중학교 돌아
trg 8 (0.453845): 강아지랑 산책하면 좋지 여유롭기도 하고
trg 9 (0.451602): 난 그냥 길동이랑 산책하고 운동할 것 같아
src : 거기 안심도 맛있고 원카츠도 맛있어 츄릅...
gt (0.509743): 원카츠가 아예 메뉴 이름인가 보네!
trg 0 (0.514283): 에바임 난 아무리 맛집이어도 그만큼 기다려서 못 먹어...
trg 1 (0.509743): 원카츠가 아예 메뉴 이름인가 보네!
trg 2 (0.491534): 요즘 떡볶이랑 치킨이랑 세트로나와 그건 별루야?
trg 3 (0.479585): 아 좋다 당장 먹으러가자
trg 4 (0.473704): 아 그러면 돈까스인데 치돈으로 고고
trg 5 (0.469278): 지코바? 치킨 브랜드 이름 아니야?
trg 6 (0.468987): 헤이즐넛도 내가 사 감
trg 7 (0.462648): 오 진짜 맛있어서 2개 먹어야 하는데 더 먹고 싶던데
trg 8 (0.459260): 호식인가 시켜
trg 9 (0.456065): 아항 호치킨은 봐준다