정보량부터 손실 함수까지, 분류 문제에 숨어 있는 수학적 원리 풀어보기

왜 KL Divergence가 중요한가?
딥러닝에서 KL Divergence는 단순히 두 분포의 차이를 계산하는 수학적 도구를 넘어서,
모델의 학습 방향을 정의하는 핵심 지표로 쓰입니다.
예를 들어,
- 이미지 생성 모델에서는 정해진 분포(예: 정규 분포)로부터 생성된 latent vector가 실제 데이터 분포와 얼마나 다른지를 KL Divergence로 측정하고,
- 강화학습(Reinforcement Learning)에서는 정책(policy)이 바뀔 때 이전 정책과의 거리 차이를 KL Divergence로 제약하여 안정적인 학습을 유도합니다.
- 특히 DeepSeek과 같은 최신 LLM 학습에서도 KL penalty를 포함한 RLHF(강화학습 기반 미세조정)가 점점 더 중요해지고 있으며,
- 이때 모델의 새로운 출력 분포가 기존 정책 또는 Human Feedback과 얼마나 멀어졌는지를 KL Divergence로 측정합니다.
확률, 정보량, 그리고 엔트로피로 가는 길
딥러닝 손실 함수의 근간이 되는 KL Divergence, Cross Entropy 등을 제대로 이해하려면
먼저 정보량(Information Content)의 개념부터 출발해야 합니다.
정보량(Information Content)이란?
정보량은 "사건이 발생했을 때 우리가 얼마나 놀라는가"를 수치화한 개념입니다.
희귀한 사건일수록 예측하기 어렵기 때문에, 더 많은 정보량을 가진다고 봅니다.
수식은 다음과 같습니다:
$$
I(x) = -log P(x)
$$
- P(x): 사건 x가 발생할 확률
- I(x): 해당 사건의 정보량
표로 이해하는 정보량 해석
| 사건 확률 P(x) | 정보량 I(x) = -log(P(x)) | 해석 |
|---|---|---|
| 1.0 | 0 | 확실한 사건 → 정보 없음 |
| 0.5 | 1 | 반반 → 정보량 1 bit |
| 0.1 | 3.32 | 매우 드문 사건 → 정보량 큼 |
엔트로피(Entropy): 정보량의 기대값
정보량이 한 사건의 놀라움을 나타낸다면,
엔트로피는 전체 확률 분포에서 평균적으로 우리가 기대하는 놀라움의 크기입니다.
공식:
$$
H(P) = -∑ P(x) * log P(x)
$$
즉, 각 사건의 정보량에 그 사건의 발생 확률을 곱해서 모두 더한 것 = 평균 정보량
엔트로피의 예시: 주사위
공정한 6면 주사위
모든 면의 확률이 1/6일 때:
$$
H = -∑ (1/6) * log₂(1/6) = log₂(6) ≈ 2.585 bits
$$
치우친 주사위
한 면의 확률이 0.9, 나머지는 0.02일 경우:
- 대부분 예측 가능 → 정보량 ↓ → 엔트로피 ↓
분류 문제에서의 적용
딥러닝 분류 문제에서는 모델이 softmax로 예측한 확률 분포 Q와
정답 레이블 분포 P(보통 원-핫 벡터) 사이의 차이를 측정합니다.
이때 사용되는 손실 함수가 바로 Cross Entropy입니다.
$$
H(P, Q) = -∑ P(x) * log Q(x)
$$
정답이 one-hot 벡터일 경우, 해당 클래스에 대한 예측 확률만 남습니다:
$$
H(P, Q) = -log(Q[정답 클래스])
$$
예시: 3-class 분류 문제
모델 예측:
$$
Q = [고양이: 0.7, 개: 0.2, 토끼: 0.1]
P = [1, 0, 0] (정답은 고양이)
$$
Cross Entropy:
$$
Loss = -log(0.7) ≈ 0.357
$$
- 예측이 맞을수록 → 손실 ↓
- 예측이 틀릴수록 → 손실 ↑ (예: log(0.1) ≈ 2.3)
핵심 정리
| 개념 | 의미 |
|---|---|
| 정보량 | 단일 사건이 주는 놀라움 \(-log P(x)\) |
| 엔트로피 | 평균 정보량 (정보량의 기대값) |
| Cross Entropy | 정답 기준에서 예측 확률이 얼마나 잘 맞는지 |
| KL Divergence | 두 분포(P, Q) 간의 정보 손실 차이 |
결론
딥러닝의 손실 함수는 단순히 오차를 계산하는 도구가 아닙니다.
그 뿌리에는 확률과 정보 이론이 자리 잡고 있습니다.
- Cross Entropy는 정답 분포와 예측 분포 간의 정보 손실을 측정합니다.
- KL Divergence는 현재 모델의 출력이 얼마나 기존 기준에서 벗어났는지를 수치화합니다.
- 이 모든 계산의 출발점은 바로 정보량, 그리고 그 기대값인 엔트로피입니다.
엔트로피는 확률 분포의 불확실성을 수치화한 값이며,
딥러닝 손실 함수의 본질을 이해하는 데 핵심이 되는 개념입니다.
KL Divergence와 Cross Entropy의 수학적 관계
KL Divergence란?
KL Divergence는 두 확률 분포 \(P\) 와 \(Q\) 사이의 비대칭적인 거리를 측정하는 지표입니다.
수식으로는 다음과 같이 정의됩니다:
$$
D_{KL}(P \parallel Q) = \sum_x P(x) \log \frac{P(x)}{Q(x)}
$$
이 수식은 다음처럼 Entropy와 Cross Entropy의 차로도 표현됩니다:
$$
D_{KL}(P \parallel Q) = H(P, Q) - H(P)
$$
용어 정리
| 기호 | 의미 |
|---|---|
| \(P(x)\) | 실제 정답 분포 (보통 원-핫 벡터) |
| \(Q(x)\) | 모델이 예측한 확률 분포 |
| \(H(P)\) | 엔트로피: \(-\sum_x P(x) \log P(x)\) |
| \(H(P, Q)\) | 크로스 엔트로피: \(-\sum_x P(x) \log Q(x)\) |
| \(D_{KL}(P \parallel Q)\) | KL Divergence (P를 Q로 근사할 때 생기는 정보 손실) |
해석
- \(H(P)\): 정답 분포 자체의 불확실성 → 모델과 무관한 고정값
- \(H(P, Q)\): 예측 분포 Q가 정답 분포 P를 얼마나 잘 설명하는지
- \(D_{KL}(P \parallel Q)\): 예측 분포 Q가 정답 P에서 얼마나 멀리 떨어져 있는지
실제 분류 문제에서는?
- 정답 \(P(x)\)는 one-hot이므로 \(H(P) = 0\) (불확실성 없음)
- 따라서 손실 함수로 사용하는 Cross Entropy는 사실상 KL Divergence와 동일:
$$
D_{KL}(P \parallel Q) = H(P, Q) - 0 = H(P, Q)
$$
즉, Cross Entropy = KL Divergence (one-hot 기준)
→ 정답 클래스의 예측 확률이 낮을수록 손실이 커짐
예시 정리
| 정답 클래스 | 예측 확률 ( Q(x) ) | 손실 (Cross Entropy) |
|---|---|---|
| 고양이 (1.0) | 0.9 | \( -\log 0.9 ≈ 0.105 \) |
| 고양이 (1.0) | 0.5 | \( -\log 0.5 = 0.693 \) |
| 고양이 (1.0) | 0.1 | \( -\log 0.1 ≈ 2.302 \) |
결론
- Cross Entropy = KL Divergence + Entropy
- 분류 문제에서 정답이 one-hot이면 KL Divergence ≈ Cross Entropy
- 결국, 딥러닝 손실 함수는 정보 손실을 최소화하려는 방향으로 동작합니다.
- KL Divergence는 예측 분포가 정답 분포와 얼마나 다른지를 측정하는 가장 핵심적인 도구이며,Cross Entropy는 이를 손실 함수로 현실에 적용한 형태입니다.