배경과 문제의식
기존 Computer Vision 모델은 대부분 ImageNet처럼 고정 클래스를 맞히도록 학습됐다. 예를 들어, 모델은 “이 이미지는 1,000개 클래스 중 무엇인가?”를 푸는 방식이다.
이러한 구조는 고정된 라벨 집합에 갇힌다는 문제를 갖는다. 새로운 개념을 인식하려면 다시 라벨 데이터를 모으고 Classifier를 학습해야 하는데, 본 논문에서는 해당 방식이 모델의 일반성과 활용성을 제한한다고 봤다.
반면 NLP에서는 GPT 계열처럼 웹 규모의 텍스트로 사전 학습한 모델이 Zero-Shot으로 여러 작업에 전이되는 흐름이 이미 성공했고, CLIP의 문제의식은 여기서 출발한다.
“그렇다면 비전에서도 ImageNet 라벨이 아니라, 인터넷에 있는 이미지-텍스트 쌍을 이용해 범용적인 Vision 모델을 만들 수 있지 않을까?”
기존에도 Image와 Text를 함께 학습하려는 연구는 있었지만, 규모가 작거나 규모가 커도 여전히 고정된 클래스나 Static Softmax Classifier에 의존했다. 이러한 문제로 Zero-Shot 유연성이 제한되었다.
CLIP은 이 둘 사이의 간극, 즉 대규모 자연어 Supervision 기반 비전 학습을 시도한 논문이다.
핵심 아이디어
“이미지를 고정 라벨로 분류하지 말고, 이미지와 자연어 설명을 같은 임베딩 공간에 놓고 서로 맞는 쌍을 찾도록 학습한다.”
예를 들어 학습 데이터가 다음과 같다고 하자.
| 강아지 사진 | “Pepper the Aussie pup” |
| 자동차 사진 | “a red car on the road” |
| 음식 사진 | “a plate of pasta” |
CLIP은 강아지 이미지는 강아지 설명과 가깝게, 자동차 설명이나 음식 설명과는 멀게 만든다. 즉, 맞는 이미지-텍스트 쌍은 가깝게, 틀린 이미지-텍스트 쌍은 멀게 학습한다. 이것이 Constrastive Language-Image Pre-training이다.
본 연구에서는 인터넷에서 수집한 4억 개 이미지-텍스트 쌍으로 학습했고, 가능한 다양한 시각 개념을 포함하기 위해 50만 개 Query를 사용해 데이터를 구성했다 (이때, Query는 인터넷 검색 엔진에 들어가는 검색 Text라고 생각하면 된다.). 추가로, Query마다 최대 2만 개의 이미지-텍스트 쌍만 포함해 특정 개념에 데이터가 과도하게 몰리는 것을 줄였다.
CLIP이 중요한 이유는 학습 후에 자연어가 곧 classifier 역할을 한다는 점이다. 예를 들어 ImageNet 분류를 하고 싶으면 클래스 이름을 다음처럼 문장으로 바꾼다.
“a photo of a dog”
“a photo of a cat”
“a photo of a car"
그리고 이미지 임베딩과 각 텍스트 임베딩의 유사도를 비교해서 가장 가까운 텍스트를 정답으로 고른다. 그래서 별도의 ImageNet 학습 없이도 zero-shot 분류가 가능해진다.
아키텍처 구조

- Image Encoder 이미지를 입력받아 시각 특징 벡터를 만든다. 논문에서는 ResNet 계열과 Vision Transformer 계열을 모두 실험했다.
- Text Encoder 텍스트를 입력받아 언어 특징 벡터를 만든다. 논문에서는 Transformer 기반 text encoder를 사용했다.
- 공통 임베딩 공간으로 projection 이미지 특징과 텍스트 특징을 각각 linear projection하여 같은 차원의 multimodal embedding space로 보낸다.
- 유사도 행렬 계산 배치에 N개의 이미지-텍스트 쌍이 있으면, 가능한 조합은 N×N개다. 이 중 실제로 맞는 쌍은 대각선에 있는 N개뿐이다.
- Constrastive Learning Loss 맞는 이미지-텍스트 쌍의 cosine similarity는 높이고, 틀린 쌍의 similarity는 낮춘다. 논문은 image→text, text→image 방향 모두에 대해 symmetric cross entropy loss를 사용한다.
직관적 이해
기존 이미지 분류 모델은 이렇게 생각하면 된다.
“이 이미지는 내가 배운 1,000개 보기 중 무엇인가?”
즉, 객관식 문제를 푸는 모델이다.
보기 밖의 개념은 잘 다루기 어렵다.
CLIP은 다르다.
“이 이미지와 가장 잘 어울리는 문장은 무엇인가?”
즉, 이미지와 문장을 같은 공간에 놓고 매칭하는 모델이다.
그래서 CLIP은 “dog”라는 고정 라벨만 배우는 것이 아니라, “a dog running on the beach”, “a black dog playing with a ball”, “a photo of a golden retriever”처럼 자연어로 표현되는 다양한 시각 개념을 학습한다.
이게 zero-shot으로 이어진다. 예를 들어 한 번도 “항공기 결함 탐지 데이터셋”으로 학습하지 않았더라도, 후보 문장을 다음처럼 줄 수 있다.
a photo of a normal aircraft part
a photo of a damaged aircraft part
그러면 CLIP은 이미지와 두 문장 중 어느 쪽이 더 가까운지 비교할 수 있다.
즉, CLIP의 강점은 라벨 공간을 사람이 자연어로 즉석에서 정의할 수 있다는 것이다.
또한 CLIP은 caption을 정확히 생성하는 모델이 아니다. “이 이미지의 캡션을 한 글자씩 맞혀라”는 어려운 생성 문제가 아니라, “이 이미지와 이 텍스트가 같은 쌍인가?”를 맞히는 비교 문제로 바꿨다. 그래서 대규모 학습에서 더 효율적이었다.
논문에서도 contrastive objective가 bag-of-words prediction이나 transformer language model 방식보다 zero-shot ImageNet 전이에 더 효율적이었다고 보고한다.
한계
첫째, 복잡하거나 전문적인 작업에는 약하다.
논문은 zero-shot CLIP이 위성 이미지 분류, 림프절 종양 탐지, 객체 개수 세기, 독일 교통 표지판 인식, 차량 거리 추정 같은 특수하거나 추상적인 작업에서 약하다고 분석한다. 즉, CLIP은 범용성이 강하지만 모든 작업을 zero-shot으로 잘하는 만능 모델은 아니다.
둘째, 자연어 prompt에 민감하다.
단순히 “dog”라고 넣는 것보다 “a photo of a dog”라고 넣는 것이 더 잘 작동한다. 또한 “boxer”처럼 권투선수인지 강아지 품종인지 문맥 없이는 헷갈리는 단어가 있다. 그래서 CLIP의 성능은 prompt engineering과 prompt ensemble에 영향을 받는다.
셋째, few-shot 학습을 직접 최적화한 모델은 아니다.
CLIP은 zero-shot은 강하지만, 적은 수의 예시를 추가했을 때 인간처럼 즉시 크게 좋아지는 구조는 아니다. 논문에서도 zero-shot 성능과 few-shot 성능을 잘 결합하는 방법은 future work로 남겨둔다.
넷째, 웹 데이터의 편향과 윤리 문제가 있다.
CLIP은 인터넷에서 수집한 이미지-텍스트 쌍으로 학습했기 때문에, 데이터 안에 존재하는 사회적 편향을 그대로 학습할 수 있다. 또한 자연어로 임의의 분류기를 쉽게 만들 수 있다는 점은 검색, 접근성 같은 좋은 활용도 가능하게 하지만, 감시나 부적절한 분류 같은 위험한 활용도 쉽게 만든다.
다섯째, 이미지와 텍스트를 깊게 융합하는 모델은 아니다.
CLIP은 image encoder와 text encoder가 독립적으로 임베딩을 만들고, 마지막에 dot product로만 연결된다. 그래서 VQA, visual reasoning, multimodal entailment처럼 이미지와 텍스트 사이의 세밀한 상호작용이 필요한 작업에는 한계가 있을 수 있다. 논문 결론부에서도 CLIP은 joint attention 기반 비전-언어 모델과 다르게 두 도메인의 상호작용이 단일 dot product에 가깝다고 설명한다.