본문 바로가기

시험/기본개념

infoNCE loss

InfoNCE Loss: 완벽 정복 가이드 (시험 대비 핵심 정리)

안녕하세요! 시험 준비에 도움이 되도록 InfoNCE Loss에 대해 쉽고 명확하게, 그리고 시험에 나올 만한 포인트들을 짚어 설명해 드릴게요. 수식을 통해 개념을 깊이 이해하고 싶어 하시는 부분을 고려하여, 수식과 그 의미를 자세히 풀어 설명하겠습니다.

1. 핵심 내용: InfoNCE란 무엇인가?

**InfoNCE (Information Noise-Contrastive Estimation)**는 자기 지도 학습(Self-Supervised Learning), 특히 **대조 학습(Contrastive Learning)**에서 널리 사용되는 손실 함수(Loss Function)입니다.

쉽게 말해, InfoNCE는 **"진짜와 가짜를 구별하는 능력"**을 모델에게 가르치는 방법입니다. 데이터의 본질적인 특징(representation)을 학습시키기 위해, '긍정적인 쌍 (positive pair)'은 가깝게 만들고, '부정적인 쌍 (negative pair)'은 멀게 만들도록 모델을 훈련시킵니다.

  • 긍정적인 쌍 (Positive Pair): 같은 데이터로부터 나온 서로 다른 버전의 데이터 쌍입니다. 예를 들어, 원본 이미지와 그 이미지를 약간 변형(augmentation)한 이미지가 긍정적인 쌍이 됩니다. 이 둘은 본질적으로 같은 대상을 나타내므로, 특징 공간에서 거리가 가까워야 합니다.
  • 부정적인 쌍 (Negative Pair): 서로 다른 원본 데이터에서 나온 데이터 쌍입니다. 예를 들어, 고양이 이미지와 강아지 이미지는 부정적인 쌍입니다. 이 둘은 다른 대상을 나타내므로, 특징 공간에서 거리가 멀어야 합니다.

InfoNCE는 이 원리를 이용해, 라벨(정답)이 없는 방대한 데이터 속에서도 모델이 스스로 데이터의 의미 있는 특징을 학습하도록 유도합니다.

2. 반드시 알아야 할 내용: InfoNCE의 작동 원리와 수식

InfoNCE의 핵심 아이디어는 긍정적인 쌍을 다른 모든 부정적인 쌍과 비교(contrast)하여 구별하는 것입니다. 수많은 '가짜'(부정적인 쌍)들 사이에서 '진짜'(긍정적인 쌍)를 정확히 집어내는 확률을 최대화하는 과정이라고 생각할 수 있습니다.

InfoNCE Loss 수식

InfoNCE Loss의 수식은 다음과 같습니다. 딥러닝 분야에서 매우 중요한 수식이므로 눈에 익혀두시는 것이 좋습니다.

하지만 실제 구현에서는 보통 아래와 같은 형태로 더 많이 사용됩니다. 이 형태가 더 직관적이고 이해하기 쉽습니다.

잠시만요, 수식이 복잡해 보이지만 각 항목이 무엇을 의미하는지 알면 금방 이해할 수 있습니다.

  • : 현재 우리가 보고 있는 기준 데이터(anchor)의 인덱스입니다.
  • : 기준 데이터 를 인코더(encoder)라는 신경망에 통과시켜 얻은 특징 벡터(representation vector)입니다.
  • : 와 긍정적인 쌍을 이루는 데이터 $x_i^+$의 특징 벡터입니다.
  • : 비교 대상이 되는 모든 데이터(긍정적 쌍 1개 + 부정적 쌍 N-1개)의 특징 벡터입니다.
  • : 두 벡터 의 유사도를 계산하는 함수입니다. 보통 **코사인 유사도(cosine similarity)**가 많이 사용됩니다.
  • (타우): 온도(temperature) 하이퍼파라미터입니다. (아래 '헷갈리기 쉬운 내용'에서 자세히 설명합니다.)
  • : 미니배치 내의 모든 샘플(긍정적, 부정적 샘플 포함)에 대한 합산을 의미합니다.

수식의 의미 해석

분자를 보세요. exp(sim(zi, zi+) / τ)는 기준 샘플과 긍정적 쌍 사이의 유사도에 지수 함수를 취한 값입니다. 모델이 잘 학습되었다면 이 값은 커야 합니다.

분모를 보세요. ∑ exp(sim(zi, zj) / τ)는 기준 샘플과 (긍정적 쌍 1개를 포함한) 모든 샘플 사이의 유사도의 총합입니다.

따라서 이 분수 전체는 **"모든 샘플과의 유사도 총합 중에서, 긍정적 쌍과의 유사도가 차지하는 비율"**을 나타냅니다. 이는 여러 선택지 중 정답을 맞힐 확률과 같은 형태이며, 이를 최대화하는 것이 목적이므로 Softmax 함수와 구조가 동일합니다.

전체 수식에 -log가 붙어 있으므로, 결국 긍정적 쌍과의 유사도 비율(확률)을 최대화하는 방향으로 모델을 학습시키게 됩니다. 즉, 분자는 커지게, 분모에서 긍정적 쌍을 제외한 나머지(부정적 쌍과의 유사도)는 작아지게 만드는 것입니다.

3. 헷갈리기 쉬운 내용 (시험 출제 포인트!)

1) 온도(Temperature, )의 역할

  • Q: 온도 값이 작아지면 어떻게 될까요?
  • A: 값이 작아지면, 유사도 값의 차이가 증폭됩니다. 즉, 조금이라도 유사도가 높은 쌍은 훨씬 더 높은 값을, 낮은 쌍은 훨씬 더 낮은 값을 갖게 됩니다. 이는 모델이 긍정적인 쌍에 더 집중하고 부정적인 쌍을 더 확실하게 밀어내도록 (hard negative mining) 하는 효과를 줍니다. 하지만 너무 작으면 학습이 불안정해질 수 있습니다. 반대로 가 크면 유사도 분포가 부드러워져 학습이 더 안정적이지만, 어려운 부정적 샘플(hard negative)을 구별하는 능력이 떨어질 수 있습니다.

2) 부정적인 샘플(Negative Sample)의 개수

  • Q: InfoNCE에서 부정적인 샘플의 개수가 왜 중요한가요?
  • A: 부정적인 샘플의 개수가 많을수록, 모델은 더 다양한 '가짜' 예시들을 접하게 됩니다. 이는 모델이 데이터의 특징을 더 정교하고 풍부하게 학습하는 데 도움이 됩니다. 즉, 더 많은 부정적 샘플과 비교하면서 긍정적 샘플의 고유한 특징을 더 잘 식별할 수 있게 됩니다. 이는 마치 객관식 시험에서 오답 선택지가 많을수록 정답을 고르기 어려운 것과 같으며, 이 어려운 문제를 해결하는 과정에서 모델의 성능이 향상됩니다.

3) InfoNCE와 Cross-Entropy Loss의 관계

  • InfoNCE Loss는 사실 다중 클래스 분류 문제에서 사용하는 Cross-Entropy Loss의 한 형태로 볼 수 있습니다. 미니배치 내에서 긍정적인 쌍 1개를 '정답 클래스'로, 나머지 N-1개의 부정적인 쌍을 '오답 클래스'로 간주하는 (N-way) 분류 문제로 생각할 수 있습니다. 이 관점을 이해하면 InfoNCE의 작동 방식을 더 깊이 이해할 수 있습니다.

 

## Softmax, 어디에 숨어있을까요?

InfoNCE Loss 수식을 다시 한번 보겠습니다.

여기서 제가 괄호로 묶은 부분이 바로 Softmax 함수가 적용된 결과입니다.

일반적인 Softmax 함수의 수식을 떠올려 볼까요? N개의 클래스에 대한 점수(logits) 이 있을 때, 특정 클래스 에 대한 Softmax 확률은 다음과 같이 계산됩니다.

이 구조가 InfoNCE 수식의 괄호 안 부분과 완전히 똑같지 않나요?


## 수식으로 다시 보기

두 수식을 나란히 놓고 비교하면 더 명확하게 보입니다.

  • InfoNCE의 "점수 (Logits)": 각 샘플 쌍의 유사도를 온도로 나눈 값인 sim(zi, zj) / τ가 Softmax에 입력되는 점수() 역할을 합니다.
  • InfoNCE의 "Softmax 계산":
    • 분자: 긍정적인 쌍(positive pair)의 점수인 sim(zi, zi+) / τ에 exp를 취합니다. ($e^{s_k}$에 해당)
    • 분모: 모든 N개의 샘플(긍정적 1개 + 부정적 N-1개)과의 점수에 exp를 취해 모두 더합니다. ($\sum_{j=1}^{N} e^{s_j}$에 해당)

따라서, InfoNCE 수식 안의 분수 부분은 **"N개의 선택지(샘플 쌍) 중에서 긍정적인 쌍을 정답으로 선택할 확률을 Softmax로 계산한 것"**이라고 해석할 수 있습니다.

'시험 > 기본개념' 카테고리의 다른 글

XAI , cam, grad cam, lime, shap  (0) 2025.09.01
AI 시스템 설계  (1) 2025.09.01
MoE  (0) 2025.08.31
llm (Bert, RoBERTa, ALBERT,T5,BART)  (0) 2025.08.29
cross-entropy  (0) 2025.08.29