[AI] KL Divergence와 JSD

김성윤(Jack)·2025년 12월 28일

AI

목록 보기
8/9

LLM에서 우리는 왜 둘을 다 쓰는가?

LLM 관련 논문을 읽다 보면
KL DivergenceJensen–Shannon Divergence(JSD)가 자주 등장한다.
둘 다 “분포 비교”라고 설명되지만, 실제로는 쓰이는 목적과 의미가 꽤 다르다.

이 글에서는

  • KL과 JSD의 차이를 수식 나열이 아니라
  • LLM / 레이어 분석 / 디코딩 맥락에서 정리해본다.

1. KL Divergence는 무엇을 비교하는가?

정의

KL Divergence는 다음 질문에 답한다.

“진짜 분포가 P일 때,
내가 Q를 믿고 행동하면
얼마나 정보 손실이 생기는가?”

수식은 다음과 같다.

KL(PQ)=xP(x)logP(x)Q(x)KL(P | Q) = \sum_x P(x)\log\frac{P(x)}{Q(x)}

핵심 특징

  • 비대칭: (KL(PQ)KL(QP))(KL(P|Q) \neq KL(Q|P))
  • 방향성 있음: 항상 P가 기준
  • 근사 오차 측정에 적합

즉, KL은

“Q가 P를 얼마나 잘 따라가고 있는가”
를 보는 지표다.


2. JSD는 무엇을 비교하는가?

JSD는 KL을 기반으로 하지만, 질문 자체가 다르다.

정의

JSD(PQ)=12KL(PM)+12KL(QM)JSD(P|Q) = \frac{1}{2}KL(P|M) + \frac{1}{2}KL(Q|M)

M=12(P+Q)M = \frac{1}{2}(P+Q)

JSD가 묻는 질문

“P와 Q는 서로 얼마나 다른 생각을 하고 있는가?”

핵심 특징

  • 대칭적
  • 항상 유한
  • 거리처럼 해석 가능

즉, JSD는

“누가 기준이냐”보다
“얼마나 다르냐”에 초점이 있다.


3. KL과 JSD의 결정적 차이

구분KLJSD
관점근사 오차분포 차이
대칭성
기준 분포필요불필요
주 용도학습, 정규화분석, 비교
안정성낮음높음

👉 이 차이 때문에 논문에서 두 지표가 동시에 등장한다.


4. LLM에서는 어디에서 KL을 쓰는가?

중요한 포인트 하나:

KL은 ‘임베딩’을 비교하지 않는다.
KL은 오직 ‘확률 분포’만 비교한다.

그래서 LLM에서 KL은 보통 다음 지점에서만 사용된다.

(1) 최종 출력 분포

  • Cross-Entropy Loss
  • Knowledge Distillation
  • RLHF의 KL penalty

모두 softmax 이후 확률 분포다.

(2) 예외적인 경우

  • VAE의 latent distribution
  • Policy distribution help RL

👉 공통점은 하나:

확률이 명시적으로 정의된 지점


5. 임베딩 비교는 분포 비교가 아니다

자주 생기는 오해:

“임베딩끼리 비교하는 것도 분포 비교 아닌가?”

❌ 아니다

  • 임베딩:
    • 연속 벡터
    • 합이 1일 필요 없음
    • 확률 아님
  • 비교 방법:
    • cosine similarity
    • L2 distance

KL / JSD는 임베딩에 직접 쓸 수 없다.


6. 그럼 왜 논문에서는 JSD를 썼을까?

최근 읽은 논문 (Watermarking for Factuality: Guiding Vision-Language Models Toward Truth)에서는 레이어 간 next-token 분포 차이를 분석한다.

여기서 질문은 이거다:

“이 레이어가 최종 레이어를 얼마나 잘 흉내 내는가?” ❌
“이 레이어와 최종 레이어는
생각 방식이 얼마나 다른가?” ⭕

이건 근사 문제가 아니라 비교 문제다.

그래서:

  • KL ❌ (방향성, 기준 필요)
  • JSD ⭕ (대칭, 안정, 거리)

7. 한 문장으로 정리하면

KL은 ‘누가 누구를 얼마나 못 따라가나’를 재고,
JSD는 ‘서로 얼마나 다른 생각을 하나’를 잰다.


8. 개인적인 정리 (중요)

  • 학습(loss) → KL
  • 분석/비교 → JSD
  • 임베딩 공간 → cosine / L2
  • 확률 공간 → KL / JSD

이 구분만 명확해도 논문에서 지표 선택 이유가 훨씬 잘 보인다.


마무리

KL과 JSD는 둘 다 “분포 비교”지만, 질문 자체가 다르다.

LLM 논문에서

  • KL이 나오면 “학습/정규화”
  • JSD가 나오면 “분석/레이어 비교”

이렇게 읽으면 논문이 훨씬 명확해진다.

profile
AI 공부합니다

0개의 댓글