챕터별 상세
CLIP의 정의와 핵심 개념
CLIP은 Contrastive Language-Image Pre-training의 약자로, 이미지 인코더와 텍스트 인코더를 동시에 학습시키는 신경망이다. 이미지와 텍스트라는 서로 다른 모달리티를 동일한 임베딩 공간으로 매핑하는 것이 핵심 목표이다. 이를 통해 텍스트 설명과 이미지가 의미적으로 얼마나 일치하는지 수학적으로 계산할 수 있는 구조를 가진다.
CLIP의 학습 과정과 대조 학습
학습에는 인터넷에서 수집한 약 4억 4천만 개의 이미지와 텍스트 쌍이 사용된다. N개의 이미지와 N개의 텍스트로 구성된 배치에서 실제 짝이 맞는 N개의 쌍(대각선 요소)은 코사인 유사도를 최대화하고, 나머지 N^2-N개의 잘못된 쌍은 유사도를 최소화하도록 학습한다. 이미지 인코더로는 Vision Transformer(ViT)나 ResNet을, 텍스트 인코더로는 GPT 아키텍처를 주로 사용한다.
제로샷 추론 메커니즘
제로샷 추론 시에는 분류하고자 하는 클래스 이름들을 'A photo of a [class]'와 같은 프롬프트 형태로 변환한다. 입력 이미지를 인코딩한 벡터와 각 프롬프트 텍스트를 인코딩한 벡터들 사이의 코사인 유사도를 계산한다. 가장 높은 유사도를 기록한 텍스트 프롬프트의 클래스를 최종 예측 결과로 선택하며, 이 과정에서 모델은 해당 데이터셋으로 추가 학습을 거치지 않는다.
CLIP이 필요한 이유와 장점
기존 ImageNet과 같은 데이터셋은 레이블링 비용이 매우 크고 고정된 범주만 인식할 수 있다는 한계가 있었다. CLIP은 자연어 감독(Natural Language Supervision)을 통해 훨씬 더 풍부하고 세밀한 시각적 특징을 학습한다. 이는 단순한 객체 분류를 넘어 이미지 내의 복합적인 상황과 맥락을 이해하는 데 유리하다.
코드 실습: CLIP의 풍부한 인코딩 확인
Colab 노트북 실습을 통해 CLIP이 이미지의 미세한 차이를 어떻게 포착하는지 확인했다. 모자를 쓰지 않은 사진과 모자를 쓴 사진의 임베딩 벡터 차이(delta)를 계산한 결과, 이 차이 벡터가 'hat'이라는 단어 벡터와 가장 높은 유사도를 보였다. 이는 CLIP의 이미지 인코더가 이미지 내의 특정 객체 추가와 같은 의미적 변화를 벡터 공간에 정확히 반영하고 있음을 입증했다.
python
model, preprocess = clip.load("ViT-B/32", device=device)
model.eval()
with torch.no_grad():
image_input_1 = preprocess(img1).unsqueeze(0).to(device)
image_input_2 = preprocess(img2).unsqueeze(0).to(device)
img_feat_1 = model.encode_image(image_input_1).float()
img_feat_2 = model.encode_image(image_input_2).float()
# Normalize embeddings
img_feat_1 = l2_normalize(img_feat_1.squeeze(0))
img_feat_2 = l2_normalize(img_feat_2.squeeze(0))CLIP 모델을 로드하고 두 이미지를 인코딩하여 정규화된 임베딩 벡터를 추출하는 과정
python
delta = img_feat_2 - img_feat_1
delta = l2_normalize(delta)
words = ["hat", "cup", "cat", "boat"]
with torch.no_grad():
text_tokens = clip.tokenize(words).to(device)
text_feats = model.encode_text(text_tokens).float()
text_feats = l2_normalize(text_feats)
sims = cosine_sim(delta, text_feats).detach().cpu().numpy()두 이미지 벡터의 차이(delta)를 계산하고 특정 단어 벡터들과의 코사인 유사도를 비교하는 코드
성능 분석 및 선형 프로빙
CLIP은 제로샷 환경에서도 기존의 지도 학습 모델(ResNet 등)보다 뛰어난 일반화 성능을 보여준다. 또한 선형 프로빙(Linear Probing) 실험을 통해 CLIP의 고정된 특징 추출기 성능을 평가했다. 훈련 데이터가 늘어날수록 CLIP 위에 선형 레이어를 추가해 학습시킨 모델이 가장 높은 정확도를 기록하며 강력한 시각 표현 능력을 증명했다.
용어 해설
- 대조 학습(Contrastive Learning)
- — 데이터 간의 유사성을 학습하는 기법으로, 서로 관련 있는 데이터 쌍(Positive pairs)은 가깝게 배치하고 관련 없는 데이터 쌍(Negative pairs)은 멀게 배치하도록 모델을 훈련시킨다. CLIP에서는 이미지와 그에 대응하는 텍스트 설명을 일치시키는 데 사용된다.
- 임베딩 공간(Embedding Space)
- — 고차원 데이터를 저차원의 벡터로 변환하여 데이터 간의 의미적 관계를 수학적으로 표현한 공간이다. CLIP은 이미지와 텍스트라는 서로 다른 모달리티를 동일한 공간에 매핑하여 유사도를 계산할 수 있게 한다.
- 제로샷 학습(Zero-shot Learning)
- — 모델이 학습 과정에서 명시적으로 보지 못한 새로운 클래스나 데이터에 대해 추가적인 파인튜닝 없이 즉시 작업을 수행하는 능력이다. CLIP은 텍스트 프롬프트를 활용해 학습하지 않은 이미지 카테고리도 분류해낸다.
- 코사인 유사도(Cosine Similarity)
- — 두 벡터 사이의 각도를 이용해 유사도를 측정하는 지표로, 벡터의 크기보다 방향의 일치 여부를 중시한다. CLIP에서 이미지 벡터와 텍스트 벡터가 얼마나 의미적으로 일치하는지 판단하는 핵심 척도로 쓰인다.
- 선형 프로빙(Linear Probing)
- — 학습된 모델의 가중치를 고정(Freeze)한 상태에서 그 위에 간단한 선형 분류기 하나만 추가하여 성능을 평가하는 방법이다. 이는 모델이 데이터의 특징을 얼마나 잘 추출했는지 측정하는 벤치마크로 활용된다.
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 02. 10.수집 2026. 02. 21.출처 타입 YOUTUBE
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
