[Diffusion] 정보 이론(KL divergence)

2026. 10. 27. 00:54·AI/Diffusion

 

Diffusion 이해를 위한 사전 지식 1

1.1 정보량

$$
I(x) = -\log_2 p(x)
$$

놀람의 정도. 일어날 확률이 낮은 사건일수록 그 사건이 일어났다는 사실이 더 많은 정보를 담고 있다는 의미이다.

1.2 엔트로피

$$
H(X) = -\sum_{x \in \mathcal{X}} p(x) \log_2 p(x)
$$

확률 변수의 평균 정보. 불확실성의 크기이다.

양면이 공정하게 나오는 동전은 엔트로피가 최대(1)이 되고, 앞면만 나오는 동전은 엔트로피가 0이 된다.

2. 두 변수의 정보

2.1 결합 엔트로피

정의

$$
H(X, Y) = -\sum_{x, y} p(x, y) \log_2 p(x, y)
$$

두 사건 x, y가 동시에 일어났을 때의 정보량은 $I(x, y) = -\log_2 p(x, y)$이다. 결합 엔트로피는 이 값의 평균으로 X와 Y의 값을 둘 다 알아내는 데 평균적으로 필요한 비트 수이다.

독립일 때

$$
p(x, y) = p(x)\,p(y)\\
I(x, y) = -\log_2 p(x) - \log_2 p(y) = I(x) + I(y)\\
\text{평균을 내면, } H(X,Y)=H(X)+H(Y)
$$

X, Y가 독립이라면 두 확률의 곱으로 두 사건이 동시에 일어날 확률을 구할 수 있다. 이를 로그를 취하면 곱을 합으로 바꿀 수 있고 이에 대한 평균을 내면 결합 엔트로피를 구할 수 있다.

독립이 아닐 때

$$
p(x, y) = p(x)\,p(y \mid x)\\
I(x, y) = \underbrace{-\log_2 p(x)}_{x\text{의 정보량}} + \underbrace{-\log_2 p(y \mid x)}_{x\text{를 안 뒤 } y\text{의 정보량}}
$$

독립이 아니라면, $p(x, y)$는 x일 확률과 x일 때 y일 확률의 곱으로 나타낸다. 독립일 때와 동일하게 로그를 취하면 곱을 합으로 바꿀 수 있다. 즉 두 사건이 함께 일어났을 때의 정보량(놀라움)은 “$x$의 정보량”과 “$x$를 안 뒤 $y$의 정보량”의 합이다. 이를 평균 낸 결과는 조건부 엔트로피를 정의한 뒤 연쇄 법칙에서 다룬다.

2.2 조건부 엔트로피

$$
I(y \mid x) = -\log_2 p(y \mid x)
$$

$x$를 이미 알고 있을 때 $y$가 나왔을 때의 정보량은 조건부 확률로 나타낼 수 있다.

$$
H(Y \mid X) = -\sum_{x}\sum_{y} p(x, y) \log_2 p(y \mid x)
$$

조건부 엔트로피는 이 정보량의 평균으로 “X를 이미 안 상태에서 Y에 대해 남은 불확실성”을 뜻한다.

이때 평균을 내는 가중치가 $p(y \mid x)$가 아니라 $p(x, y)$이다. 실제로 일어나는 것은 x와 y의 조합이므로 각 조합이 일어날 확률로 평균을 낸다.

$$
H(Y \mid X) = \sum_{x} p(x) \underbrace{\left(-\sum_{y} p(y \mid x) \log_2 p(y \mid x)\right)}_{H(Y \mid X = x)}
$$

$p(x, y) = p(x)\,p(y \mid x)$를 이용해 위와 같이 바꿔 쓸 수 있다. 즉 $X = x$일 때 $Y$의 엔트로피를 구한 뒤, $x$가 나올 확률로 평균 낸 것이다

2.3 연쇄 법칙

$$
H(X, Y) = H(X) + H(Y \mid X) = H(Y) + H(X \mid Y) \\
$$

결합 엔트로피에서 구한 $I(x, y)$를 평균 내면, 첫째 항의 평균은 $H(X)$, 둘째 항의 평균은 조건부 엔트로피 $H(Y \mid X)$가 된다.

$X$를 먼저 알아내고, $X$를 아는 상태에서 남은 $Y$의 불확실성을 더하면 둘을 모두 알아내는 데 필요한 정보량이 된다는 의미이다.

2.4 결합 엔트로피의 범위

2.2에서 정의한 $H(Y \mid X)$는 “X를 이미 안 상태에서 Y에 대해 남은 불확실성”이다. 이 값이 가질 수 있는 범위는 아래와 같다.

$$
0\;\le\; H(Y \mid X) \;\le\; H(Y)
$$

X를 아는 순간 Y가 완전히 정해지는 경우 불확실성이 0이 되므로 가장 작을 때는 0이다. 반대로 X를 알아도 Y에 대해 아무 도움이 되지 않는 경우, 즉 독립일 때는 X와 상관없이 Y의 불확실성이 그대로이므로 가장 클 때는 $H(Y)$가 된다. 이를 연쇄 법칙 $H(X, Y) = H(X) + H(Y \mid X)$에 대입하면 다음을 얻는다.

$$
H(X) \;\le\; H(X, Y) \;\le\; H(X) + H(Y)
$$

같은 방법으로 $H(X, Y) = H(Y) + H(X \mid Y)$에 대입하면 $H(Y) \le H(X, Y)$도 성립한다. 결합 엔트로피는 $H(X)$와 $H(Y)$보다 모두 크거나 같아야 하므로 둘 중 큰 값을 하한으로 쓰면 최종 범위는 다음과 같다.

$$
\max\big(H(X), H(Y)\big) \;\le\; H(X, Y) \;\le\; H(X) + H(Y)
$$

수식을 풀어 말하면 결합 엔트로피는 “둘 중 하나만 아는 것”보다는 크고, “둘을 따로 아는 것의 합”보다는 작거나 같다. 하한은 한 변수가 다른 변수를 완전히 결정할 때, 상한은 두 변수가 독립일 때 성립한다.

2.5 상호 정보량

$$
I(X; Y) = H(X) - H(X \mid Y) = \sum_{x, y} p(x, y) \log_2 \frac{p(x, y)}{p(x)\,p(y)}
$$

Y를 알게 되었을 때 X에 대한 불확실성이 얼마나 줄어드는지를 의미한다. 즉 두 변수가 서로에 대해 알려주는 정보의 양이다.

y를 모를 때 x의 정보량을 $I(x) = -\log_2 p(x)$이다. y를 안 뒤 x의 정보량은 $I(x \mid y) = -\log_2 p(x \mid y)$이다. y를 알게 되면서 줄어든 정보량은 두 값의 차이이다.

$$
I(x) - I(x \mid y) = -\log_2 p(x) + \log_2 p(x \mid y) = \log_2 \frac{p(x \mid y)}{p(x)}
$$

해당 값을 $p(x, y)$로 평균 내면 상호 정보량이 된다.

결합 엔트로피와의 관계

연쇄 법칙 $H(X \mid Y) = H(X, Y) - H(Y)$를 대입하면 다음과 같이 쓸 수도 있다.

$$
I(X; Y) = H(X) + H(Y) - H(X, Y)
$$

두 변수가 독립이라면 결합 엔트로피는 $H(X) + H(Y)$가 되지만, 서로 관련이 있으면 겹치는 정보만큼덜 필요하다. 다시 말하면 상호 정보량은 아낀 양이라고 할 수 있다.

성질

상호 정보량은 대칭이다. Y가 X에 대해 알려주는 정보와 X가 Y에 대해 알려주는 정보는 같다. 수식으로 쓰면 아래와 같다.

$$
I(X; Y) = H(X) - H(X \mid Y) = H(Y) - H(Y \mid X) = I(Y; X)
$$

범위는 2.4로부터 얻을 수 있다.

$$
0\;\le\; H(Y \mid X) \;\le\; H(Y)
$$

$$
0 \;\le\; I(X; Y) \;\le\; \min\big(H(X), H(Y)\big)
$$

두 변수가 독립이라면 $p(x, y) = p(x)\,p(y)$이므로 로그 안이 1이 되어 $I(X; Y) = 0$이다. 반대로 한 변수가 다른 변수를 완전히 결정하면 $H(Y \mid X) = 0$이므로 $I(X; Y) = H(Y)$가 된다.

3. 두 분포의 비교

앞서 서로 다른 두 변수 X, Y의 관계를 다뤘다면, 이번에는 같은 변수 X에 대한 두 확률 분포 P, Q를 비교한다.

보통 P는 실제 분포, Q는 모델이 예측한 분포이다.

3.1 교차 엔트로피(Cross-Entropy)

$$
H(P, Q) = -\sum_{x} P(x) \log Q(x) = H(P) + D_{\mathrm{KL}}(P \,\|\, Q)
$$

분포 Q를 믿고 있는 사람(모델 예측값)이 사건 x(데이터)를 보았을 때 느끼는 정보량은 $-\log_2 Q(x)$이다. 그러나 실제 사건은 P(정답 데이터)를 따라 일어난다. 교차 엔트로피는 이 정보량을 실제 분포 P로 평균 낸 값, 즉 틀릴 수도 있는 믿음 Q로 실제 세상 P를 볼 때의 평균 정보량이다**.**

$$
H(P, Q) = \mathbb{E}{x \sim P}\big[-\log_2 Q(x)\big], \qquad H(P) = \mathbb{E}{x \sim P}\big[-\log_2 P(x)\big]
$$

엔트로피 수식과 비교하면 평균을 내는 분포는 똑같이 P이고, 정보량을 계산하는 분포만 Q로 바뀐다.

$$
H(P, Q) \;\ge\; H(P)
$$

교차 엔트로피 H(P, Q)는 실제 분포 P의 엔트로피 H(P)보다 항상 크거나 같고, Q=P일 때만 같아진다. 이는 실제 분포를 정확히 알 때 평균 정보량이 가장 작다는 의미이다.

또한 P와 Q의 자리를 바꾸면 값이 달라지기 때문에 대칭이 아니다.

-log는 확률이 0에 가까워질수록 폭발적으로 커지기 때문에 실제로 자주 일어나는 일에 낮은 확률을 준 쪽이 정보량이 훨씬 크다.
ex) “비가 자주 오는 동네에서 비 올 확률이 낮다” >>> “비가 적게 오는 동네에서 비 올 확률이 크다” -> 우산을 못 챙기는 놀라움이 전자가 훨씬 크다!

3.2 KL 발산(KL Divergence)

발산(Divergence)은 일반적으로 벡터 미적분학에서 사용하는 해석이다. 여기서는 발산보다 차이라는 의미에 가깝다.

$$
D_{\mathrm{KL}}(P \,\|\, Q) = \sum_{x} P(x) \log_2 \frac{P(x)}{Q(x)}\\
D_{\mathrm{KL}}(P \,\|\, Q) = \mathbb{E}{x \sim P}\Big[\underbrace{-\log_2 Q(x)}_{Q\text{로 계산한 정보량}} - \underbrace{\big(-\log_2 P(x)\big)}_{P\text{로 계산한 정보량}}\Big]
$$

믿음 Q로 계산한 정보량과 실제 분포 P로 계산한 정보량의 차이를 평균 낸 값(틀린 믿음 때문에 생긴 **추가 정보량)**이다.

각 항의 평균이 교차 엔트로피와 엔트로피이기 때문에 다음 관계가 성립한다.

$$
D_{\mathrm{KL}}(P \,\|\, Q) = H(P, Q) - H(P) \quad\Longleftrightarrow\quad H(P, Q) = H(P) + D_{\mathrm{KL}}(P \,\|\, Q)
$$

교차 엔트로피는 다시 말해 “원래 필요한 정보량$H(P)$"에 "틀린 믿음의 대가 $D_{\mathrm{KL}}$"을 더한 것이다.

성질

$$
D_{\mathrm{KL}}(P \,\|\, Q) \;\ge\; 0
$$

KL 발산은 항상 0 이상이며, $P = Q$일 때만 0이다. 3.1의 $H(P, Q) \ge H(P)$와 같은 의미이다.

$P(x) > 0$인데 $Q(x) = 0$이면 $\log_2 \frac{P(x)}{0} = \infty$가 되어 KL 발산이 무한대가 된다. 실제로 일어나는 일을 불가능하다고 믿은 대가이다. 반대로 $P(x) = 0$인 항은 $0 \log 0 = 0$ 규칙에 따라 0이 된다.

$D_{\mathrm{KL}}(P \,\|\, Q) \ne D_{\mathrm{KL}}(Q \,\|\, P)$
KL 발산은 두 분포가 얼마나 다른지를 나타내지만, $P$에서 $Q$를 잰 값과 $Q$에서 $P$를 잰 값이 다르다. 수학에서 거리는 양방향의 값이 같아야 하므로, KL 발산은 거리가 아니며 그래서 “차이” 대신 "발산"이라고 부른다.

교차 엔트로피 최소화 = KL 발산 최소화

머신러닝에서 정답 분포 $P$는 고정되어 있으므로 $H(P)$는 상수이다. 따라서 모델 $Q$를 조정해 교차 엔트로피를 줄이는 것은 KL 발산을 줄이는 것, 즉 모델의 예측을 실제 분포에 가깝게 만드는 것과 같다.

상호 정보량과의 관계

$$
I(X; Y) = \sum_{x, y} p(x, y) \log_2 \frac{p(x, y)}{p(x)\,p(y)} = D_{\mathrm{KL}}\big(p(x, y) \,\|\, p(x)\,p(y)\big)
$$

2.5의 상호 정보량 식을 보면, 상호 정보량은 실제 결합 분포 $p(x, y)$와 두 변수가 독립이라고 가정한 분포 $p(x)\,p(y)$ 사이의 KL 발산이다. 즉 두 변수를 독립이라고 믿었을 때의 추가 정보량이다. KL 발산의 성질에 따라 상호 정보량은 항상 0 이상이며, 0이 되는 것은 두 변수가 독립일 때 뿐이다.

저작자표시 (새창열림)

'AI > Diffusion' 카테고리의 다른 글

[Diffusion] ELBO  (0) 2026.10.29
[Diffusion] Importance Sampling  (0) 2026.10.27
'AI/Diffusion' 카테고리의 다른 글
  • [Diffusion] ELBO
  • [Diffusion] Importance Sampling
Tae-Jun
Tae-Jun
  • Tae-Jun
    Tae-Jun
    Tae-Jun
  • 전체
    오늘
    어제
    • IT (33)
      • 언어 (6)
        • javascript (1)
        • python (4)
        • MySQL (1)
      • 프레임워크 (6)
        • react (1)
        • Android studio (1)
        • nodejs (1)
        • react-native (1)
        • docker (2)
      • AI (15)
        • Diffusion (3)
        • YOLO (3)
      • 알고리즘 (4)
        • 개념 (3)
        • 문제풀이 (1)
      • 프로젝트 (1)
        • AWS (1)
        • 결과 (0)
      • MLOps (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • 홈페이지
    • github
    • LinkedIn
  • 공지사항

  • 인기 글

  • 태그

    RefreshToken
    자료구조
    알고리즘
    Microsoft LoRA
    docker
    확산 모델
    flask
    data compiler
    hailo
    벡터로드
    C
    LoRA 코드
    model build
    HuggingFace LoRA
    Prefix tuning
    Python
    Diffusion
    교차 엔트로피
    Lora
    JWT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Tae-Jun
[Diffusion] 정보 이론(KL divergence)
상단으로

티스토리툴바