KL Divergence 개념과 활용 정리
이 글은 AI가 작성했습니다.
개요
KL divergence는 두 확률분포 사이의 차이를 측정하는 비대칭적 정보측도입니다. 주로 한 분포가 다른 분포를 얼마나 잘 근사하는지 평가하는 데 사용합니다.
정의
KL divergence는 두 확률분포 P와 Q에 대해 P가 Q로부터 얼마나 다른지를 측정하는 값입니다. 이 값은 기대값의 형태로 정의되며, 이산 분포의 경우에는 다음과 같습니다.
- KL(P||Q) = (\sum_x P(x) \log\frac{P(x)}{Q(x)})
연속 분포의 경우에는 다음과 같습니다.
- KL(P||Q) = (\int p(x) \log\frac{p(x)}{q(x)}, dx)
로그는 일반적으로 자연로그를 사용합니다.
주요 성질
KL divergence는 다음 성질을 가집니다.
- 항상 0 이상입니다. 즉 KL(P||Q) ≥ 0입니다.
- KL(P||Q) = 0이면 거의 모든 x에 대해 P(x) = Q(x)입니다.
- 비대칭입니다. 일반적으로 KL(P||Q) ≠ KL(Q||P)입니다.
- 삼각부등식을 만족하지 않습니다. 따라서 KL은 엄밀한 거리(metric)가 아닙니다.
수식 및 관련식
KL divergence는 교차 엔트로피와 엔트로피와의 차이로 표현됩니다. 구체적으로 다음이 성립합니다.
- H(P, Q) = H(P) + KL(P||Q)
여기서 H(P)는 P의 엔트로피이고, H(P, Q)는 P에 대한 Q의 교차 엔트로피입니다. 또한 KL은 로그 우도비의 기댓값으로 해석될 수 있습니다.
간단한 계산 예시
이산 분포 예시로 P = [0.9, 0.1]와 Q = [0.5, 0.5]를 고려합니다. 자연로그를 사용할 때
- KL(P||Q) = 0.9 log(0.9/0.5) + 0.1 log(0.1/0.5)입니다.
- 계산하면 약 0.9 × 0.5878 + 0.1 × (−1.6094) ≈ 0.5290 − 0.1609 = 0.3681입니다. 따라서 이 예시에서 KL divergence는 약 0.3681입니다.
활용 사례
KL divergence는 다음 분야에서 자주 사용됩니다.
- 확률모델 학습과 모델 선택에서 분포 근사도를 측정하는 기준입니다.
- 변분추론에서 근사후분포를 실제 후분포에 맞추기 위해 최소화하는 목적함수입니다.
- 생성모델과 밀도추정에서 학습 목표 또는 평가 지표로 사용합니다.
- 정보 이론에서 두 분포 간의 정보 손실량을 정량화합니다.
LLM과의 관계
대규모 언어 모델(LLM)은 본질적으로 확률분포 근사 문제로 정의됩니다. LLM은 주어진 문맥에서 다음 토큰의 실제 데이터 분포 P를 모델이 표현하는 분포 (Q_\theta)로 근사하는 것을 목표로 하며, 이때 두 분포 간의 차이를 정량화하는 핵심 개념이 KL divergence입니다.
언어 모델 학습에서 일반적으로 사용되는 Cross-Entropy Loss는 다음 관계를 가집니다.
- (H(P, Q) = H(P) + KL(P | Q))
여기서 (H(P))는 데이터 분포에 의해 결정되는 상수이므로, Cross-Entropy를 최소화하는 것은 곧 KL(P‖Q)를 최소화하는 것과 동치입니다. 즉, LLM의 사전학습(pretraining)은 데이터 분포와 모델 분포 사이의 KL divergence를 줄이는 과정으로 해석할 수 있습니다.
파인튜닝(fine-tuning) 및 인스트럭션 튜닝에서도 동일한 관점이 적용됩니다. 사전학습된 모델 분포 위에서 새로운 태스크 분포를 학습하는 과정은 태스크 데이터 분포 (P_{task})와 파인튜닝된 모델 분포 (Q_{ft}) 사이의 KL divergence를 최소화하는 문제로 볼 수 있습니다.
특히 RLHF(Reinforcement Learning from Human Feedback)에서는 KL divergence가 명시적인 제약 항으로 사용됩니다. 일반적으로 보상 최대화 항과 함께 기준 모델 분포 (\pi_{ref})로부터의 KL divergence를 페널티로 포함하여, 모델이 인간 선호를 반영하되 기존 언어 모델 분포에서 과도하게 벗어나지 않도록 제어합니다. 이때 KL divergence는 학습 안정성과 언어 품질을 유지하기 위한 정규화 항으로 작동합니다.
요약하면, KL divergence는 LLM의 사전학습, 파인튜닝, RLHF 전 단계에 걸쳐 모델 분포와 목표 분포 간의 차이를 정량화하고 제어하는 핵심 수단입니다.
계산 시 주의사항
KL divergence를 계산할 때 다음 사항을 주의해야 합니다.
- Q(x)=0이면서 P(x)>0인 경우 KL은 무한대가 됩니다. 따라서 분모가 0이 되지 않도록 처리해야 합니다.
- 로그 계산에서 수치 안정성을 위해 작은 값으로 스무딩하거나 로그-합-지수(log-sum-exp) 기법을 사용합니다.
- 샘플 기반 추정에서는 샘플 수가 부족하면 편향이 생길 수 있습니다.
- 비대칭성으로 인해 어느 순서로 KL을 취하는지 결과 의미가 달라집니다.
해석적 관점
KL divergence는 P로부터 샘플을 얻었을 때 Q를 모델로 사용하는 경우에 평균적으로 잃는 로그우도량으로 해석됩니다. 값이 작을수록 Q가 P를 더 잘 근사하는 것으로 해석합니다. 그러나 비대칭성 때문에 두 분포 간의 차이를 대칭적으로 보려면 Jensen-Shannon divergence 등 다른 척도를 고려해야 합니다.
요약
KL divergence는 분포 간의 비대칭적 차이를 측정하는 정보측도입니다. 정의와 성질을 이해하고 계산상의 주의점을 고려하면 모델 평가와 근사추론에 유용하게 활용할 수 있습니다.