검색
← 모듈 로드맵

정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산

강의 · 입문자 · KAITABASE 정리

원제 · Information Theory (D2L 부록 참고)

정보량 → 엔트로피 → 교차 엔트로피 → KL 발산을 잇고, 분류 손실과 KL 규제의 정체를 손계산으로

먼저 알아야 할 것

로그확률분포기댓값

다루는 내용

분류 · LLM 학습의 손실인 교차 엔트로피와 VAE · PPO · RLHF · DPO에 나오는 KL 발산을 이해하기 위한 정보 이론 최소한을 자체 해설로 정리했습니다. 자기 정보량과 엔트로피, 원-핫 정답에서 교차 엔트로피가 −log(정답 확률)이 되는 이유, 소프트맥스 + 교차 엔트로피의 기울기(예측 − 정답), KL 발산의 비음수성과 비대칭을 작은 숫자로 계산합니다.

해설

정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산

분류 모델과 LLM을 학습시키는 손실은 거의 다 "교차 엔트로피"이고, VAE · PPO · RLHF · DPO 논문에는 "KL 발산"이 빠지지 않습니다. 이 수업은 정보량 → 엔트로피 → 교차 엔트로피 → KL 발산을 한 줄로 이어, 왜 이것들이 손실과 규제 항으로 쓰이는지 손계산으로 보여 줍니다.

항목내용
참고 자료Dive into Deep Learning 부록 '딥러닝을 위한 수학' 중 Information Theory 절 · d2l.ai/…/information-theory.html
트랙 · 수준수학 · 기초
이 수업의 범위자기 정보량, 엔트로피, 교차 엔트로피와 분류 손실, KL 발산(비대칭 · 0 이상), 소프트맥스 + 교차 엔트로피의 기울기
먼저 알면 좋은 것로그(log⁡28=3\log_2 8 = 3), 확률분포, 기댓값

들어가기 전에

  • 확률과 통계 최소한 — 확률분포와 기댓값 E[⋅]\mathbb{E}[\cdot]을 알아야 합니다. 엔트로피는 "정보량의 기댓값"이기 때문입니다.

로그는 "몇 번 곱해야 그 수가 되나"입니다. log⁡28=3\log_2 8 = 3 (23=82^3 = 8), log⁡21=0\log_2 1 = 0, log⁡2(1/2)=−1\log_2 (1/2) = -1입니다. 밑이 2이면 단위가 비트(bit), 밑이 ee(자연로그 ln⁡\ln)이면 냇(nat)입니다. 참고 자료 D2L의 이 절은 밑 2(비트)를 쓰고, 파이토치 같은 딥러닝 프레임워크의 손실 함수는 자연로그(냇)를 씁니다. 단위만 다르고 뜻은 같습니다(11 냇 ≈1.443\approx 1.443 비트).

한눈에 보기

  • "드문 일일수록 정보가 많다"를 식 −log⁡p-\log p로 씁니다.
  • 엔트로피가 "분포의 평균 놀라움 = 불확실성"이라는 것을 동전과 주사위로 계산합니다.
  • 교차 엔트로피가 "정답 분포를 모델 분포로 설명할 때의 평균 놀라움"이고, 분류 손실 −log⁡p^정답-\log \hat{p}_{\text{정답}}과 같은 것임을 보입니다.
  • KL 발산 $= $ 교차 엔트로피 −- 엔트로피이며, 항상 0 이상이고 방향에 따라 값이 다르다는 것을 숫자로 확인합니다.
  • 소프트맥스 + 교차 엔트로피의 기울기가 "예측 확률 − 정답"이라는 깔끔한 꼴이 된다는 것을 봅니다.

1. 정보량: 놀라움을 숫자로

직관(해설용 비유): "내일 해가 뜬다"는 뉴스는 아무 정보도 없습니다. "내일 서울에 눈이 1m 온다"는 엄청난 뉴스입니다. 일어날 확률이 낮은 사건일수록 알게 됐을 때의 정보(놀라움)가 큽니다.

I(x)=−log⁡2p(x)I(x) = -\log_2 p(x)
기호뜻
I(x)I(x)사건 xx의 자기 정보량(self-information), 단위 비트
p(x)p(x)사건 xx의 확률

숫자로 해 보기(해설용): 공정한 동전의 앞면(p=1/2p = 1/2)은 −log⁡2(1/2)=1-\log_2(1/2) = 1비트, 8면체 주사위의 한 눈(p=1/8p = 1/8)은 33비트, 반드시 일어나는 일(p=1p = 1)은 00비트입니다.

왜 로그인가: 독립인 두 사건이 함께 일어날 확률은 곱 p1p2p_1 p_2입니다. 정보량은 "더해지는" 것이 자연스러우므로 곱을 합으로 바꾸는 로그를 씁니다. −log⁡(p1p2)=−log⁡p1−log⁡p2-\log(p_1p_2) = -\log p_1 - \log p_2입니다. 동전 세 번의 결과는 1+1+1=31 + 1 + 1 = 3비트입니다.

2. 엔트로피: 평균 놀라움 = 불확실성

직관: 결과를 보기 전에 "평균적으로 얼마나 놀랄 것인가"입니다. 결과가 뻔하면 작고, 무엇이 나올지 전혀 모르면 큽니다.

H(P)=Ex∼P[−log⁡P(x)]=−∑xP(x)log⁡P(x)H(P) = \mathbb{E}_{x \sim P}\big[-\log P(x)\big] = -\sum_x P(x)\log P(x)
기호뜻
H(P)H(P)분포 PP의 엔트로피(entropy)
x∼Px \sim Pxx를 분포 PP에서 뽑는다
∑x\sum_x가능한 모든 결과에 대해 더하기

숫자로 해 보기(해설용):

분포계산엔트로피
공정한 동전 (0.5,0.5)(0.5, 0.5)−2×0.5log⁡20.5-2 \times 0.5\log_2 0.511비트
치우친 동전 (0.9,0.1)(0.9, 0.1)−(0.9log⁡20.9+0.1log⁡20.1)-(0.9\log_2 0.9 + 0.1\log_2 0.1)약 0.4690.469비트
늘 앞면 (1,0)(1, 0)−1log⁡21-1\log_2 100비트
세 결과 (0.5,0.25,0.25)(0.5, 0.25, 0.25)0.5×1+0.25×2+0.25×20.5 \times 1 + 0.25 \times 2 + 0.25 \times 21.51.5비트

(0log⁡00 \log 0은 0으로 칩니다.) 결과가 KK개일 때 엔트로피는 모두 같은 확률 1/K1/K일 때 가장 크고, 값은 log⁡2K\log_2 K입니다.

압축으로 읽기: 엔트로피는 "그 분포에서 나온 결과를 0/1로 적을 때 평균 몇 비트가 꼭 필요한가"의 하한입니다. 결과 4개의 확률이 (1/2,1/4,1/8,1/8)(1/2, 1/4, 1/8, 1/8)이면 엔트로피는 1.751.75비트이고, 실제로 부호 길이를 1,2,3,31, 2, 3, 3비트로 주면 평균 0.5⋅1+0.25⋅2+0.125⋅3⋅2=1.750.5 \cdot 1 + 0.25 \cdot 2 + 0.125 \cdot 3 \cdot 2 = 1.75비트로 딱 맞습니다. 흔한 것에 짧은 부호를 주는 것이 핵심입니다.

3. 교차 엔트로피: 엉뚱한 분포로 설명할 때의 비용

직관: 실제 세상은 분포 PP를 따르는데, 우리는 모델 QQ가 맞다고 믿고 놀라움을 계산합니다. 그러면 평균 놀라움은 H(P)H(P)보다 커집니다. 그 "엉뚱한 믿음으로 잰 평균 놀라움"이 교차 엔트로피입니다.

H(P,Q)=Ex∼P[−log⁡Q(x)]=−∑xP(x)log⁡Q(x)H(P, Q) = \mathbb{E}_{x \sim P}\big[-\log Q(x)\big] = -\sum_x P(x)\log Q(x)
기호뜻
PP실제(정답) 분포 — 데이터가 따르는 분포
QQ모델이 예측한 분포
H(P,Q)H(P, Q)교차 엔트로피(cross-entropy)

숫자로 해 보기(해설용): P=(0.5,0.25,0.25)P = (0.5, 0.25, 0.25), Q=(0.4,0.4,0.2)Q = (0.4, 0.4, 0.2)이면

H(P,Q)=−(0.5log⁡20.4+0.25log⁡20.4+0.25log⁡20.2)≈0.661+0.330+0.580=1.572비트H(P, Q) = -(0.5\log_2 0.4 + 0.25\log_2 0.4 + 0.25\log_2 0.2) \approx 0.661 + 0.330 + 0.580 = 1.572 \text{비트}

H(P)=1.5H(P) = 1.5비트보다 약 0.0720.072비트 큽니다. 모델이 틀린 만큼 비용이 늘었습니다.

분류 손실이 바로 교차 엔트로피

분류에서 정답 분포 PP는 정답 칸만 1인 원-핫(one-hot) 벡터입니다. 그러면 합에서 정답 칸만 남습니다.

H(P,Q)=−∑kP(k)log⁡Q(k)=−log⁡Q(정답)H(P, Q) = -\sum_k P(k)\log Q(k) = -\log Q(\text{정답})

숫자로 해 보기(해설용): 고양이 · 개 · 새 3분류에서 정답이 '개'이고 모델이 (0.2,0.7,0.1)(0.2, 0.7, 0.1)을 냈다면 손실은 −ln⁡0.7≈0.357-\ln 0.7 \approx 0.357냇(≈0.515\approx 0.515비트)입니다. 정답에 0.10.1만 주었다면 −ln⁡0.1≈2.303-\ln 0.1 \approx 2.303냇으로 커집니다.

첫걸음 수업의 로그 손실 −[ylog⁡p^+(1−y)log⁡(1−p^)]-[y\log\hat{p} + (1-y)\log(1-\hat{p})]은 결과가 두 개인 경우의 교차 엔트로피입니다(이진 교차 엔트로피). LLM의 사전학습 손실도 "다음 토큰"이라는 수만 칸짜리 분류의 교차 엔트로피를 모든 위치에서 평균 낸 것입니다.

왜 교차 엔트로피를 쓰나: 교차 엔트로피 최소화는 "모델이 데이터에 준 확률의 로그를 최대화"하는 것, 즉 최대우도 추정과 같습니다(확률적 머신러닝 입문). 또 다음 절처럼 기울기가 단순해 학습이 잘 됩니다.

4. 소프트맥스와 교차 엔트로피의 기울기

모델은 보통 점수(로짓) z\mathbf{z}를 내고, 소프트맥스(softmax)로 확률로 바꿉니다.

p^k=ezk∑jezj,L=−log⁡p^c,∂L∂zk=p^k−yk\hat{p}_k = \frac{e^{z_k}}{\sum_j e^{z_j}}, \qquad L = -\log \hat{p}_{c}, \qquad \frac{\partial L}{\partial z_k} = \hat{p}_k - y_k
기호뜻
zkz_kkk번 클래스의 점수(로짓)
p^k\hat{p}_k소프트맥스로 바꾼 kk번 클래스 확률
cc정답 클래스 번호
yky_k원-핫 정답(정답 칸 1, 나머지 0)

숫자로 해 보기(해설용): 로짓 (2,1,0)(2, 1, 0), 정답은 0번 클래스입니다.

  1. e2≈7.389e^2 \approx 7.389, e1≈2.718e^1 \approx 2.718, e0=1e^0 = 1, 합 ≈11.107\approx 11.107
  2. 확률 p^≈(0.665,0.245,0.090)\hat{\mathbf{p}} \approx (0.665, 0.245, 0.090)
  3. 손실 −ln⁡0.665≈0.408-\ln 0.665 \approx 0.408
  4. 기울기 p^−y≈(−0.335,0.245,0.090)\hat{\mathbf{p}} - \mathbf{y} \approx (-0.335, 0.245, 0.090)

경사 하강법은 기울기 반대로 가므로 정답 점수 z0z_0는 올리고 나머지는 내립니다. "예측 확률에서 정답을 뺀 것"이라는 깔끔한 꼴이라 구현도 쉽고 수치도 안정적입니다.

mermaid
flowchart LR
  A[입력] --> B[모델]
  B --> C["로짓 z"]
  C --> D["소프트맥스 → 확률 Q"]
  E["정답 원-핫 P"] --> F["교차 엔트로피 H(P,Q) = −log Q(정답)"]
  D --> F
  F --> G["기울기 Q − P 로 역전파"]

5. KL 발산: 두 분포의 차이

직관: 교차 엔트로피에서 "어차피 피할 수 없는 놀라움" H(P)H(P)를 빼면, 순수하게 "모델이 틀려서 더 든 비용"만 남습니다. 이것이 KL 발산(쿨백-라이블러 발산, Kullback-Leibler divergence)입니다.

DKL(P ∥ Q)=∑xP(x)log⁡P(x)Q(x)=H(P,Q)−H(P)D_{\mathrm{KL}}(P \,\|\, Q) = \sum_x P(x)\log\frac{P(x)}{Q(x)} = H(P, Q) - H(P)
기호뜻
DKL(P∥Q)D_{\mathrm{KL}}(P \Vert Q)PP를 기준으로 본 QQ와의 차이
log⁡P(x)Q(x)\log\frac{P(x)}{Q(x)}결과 xx 하나에서 두 분포가 다른 정도

성질 두 가지

  1. 항상 0 이상이고, P=QP = Q일 때만 0입니다(깁스 부등식). 그래서 "거리처럼" 씁니다.
  2. 비대칭입니다. DKL(P∥Q)≠DKL(Q∥P)D_{\mathrm{KL}}(P\|Q) \ne D_{\mathrm{KL}}(Q\|P)일 수 있어 진짜 거리는 아닙니다.

숫자로 해 보기(해설용): 앞의 P=(0.5,0.25,0.25)P = (0.5, 0.25, 0.25), Q=(0.4,0.4,0.2)Q = (0.4, 0.4, 0.2)에서

  • DKL(P∥Q)=1.572−1.5≈0.072D_{\mathrm{KL}}(P\|Q) = 1.572 - 1.5 \approx 0.072비트
  • DKL(Q∥P)=0.4log⁡20.40.5+0.4log⁡20.40.25+0.2log⁡20.20.25≈−0.129+0.271−0.064=0.078D_{\mathrm{KL}}(Q\|P) = 0.4\log_2\frac{0.4}{0.5} + 0.4\log_2\frac{0.4}{0.25} + 0.2\log_2\frac{0.2}{0.25} \approx -0.129 + 0.271 - 0.064 = 0.078비트

두 값이 다릅니다. 방향이 중요합니다.

분류 학습과의 관계: 정답 분포 PP는 데이터가 정하므로 H(P)H(P)는 상수입니다. 따라서 교차 엔트로피를 줄이는 것은 DKL(P∥Q)D_{\mathrm{KL}}(P\|Q)를 줄이는 것과 같습니다. "모델 분포를 데이터 분포에 가깝게"가 학습의 정체입니다.

논문에서 KL이 나오는 자리

자리쓰임
변분 오토인코더 (VAE)인코더가 내는 잠재 분포를 표준 정규분포에 가깝게 묶는 항
TRPO · PPO정책을 한 번에 너무 많이 바꾸지 않도록 이전 정책과의 KL을 제한
RLHF · InstructGPT · DPO미세조정한 모델이 원래 모델에서 너무 멀어지지 않도록 KL 벌점
지식 증류작은 모델 분포를 큰 모델 분포에 가깝게

왜 KL을 규제에 쓰나: 매개변수 값의 차이(예: 가중치 L2 거리)는 모델의 '행동'이 얼마나 바뀌었는지를 직접 말해 주지 않습니다. KL은 출력 분포, 즉 행동 자체가 얼마나 달라졌는지를 재므로 "행동을 조금씩만 바꿔라"라는 요구를 그대로 수식으로 옮길 수 있습니다.

연습 문제

1. 확률 1/41/4인 사건의 정보량은 몇 비트인가요?

풀이: −log⁡2(1/4)=2-\log_2(1/4) = 2비트입니다.

2. 4면체 공정한 주사위의 엔트로피는? (0.7,0.1,0.1,0.1)(0.7, 0.1, 0.1, 0.1)로 치우치면 커지나요, 작아지나요?

풀이: 공정하면 log⁡24=2\log_2 4 = 2비트(최대). 치우치면 작아집니다. 계산하면 −(0.7log⁡20.7+3×0.1log⁡20.1)≈0.360+0.997=1.357-(0.7\log_2 0.7 + 3 \times 0.1\log_2 0.1) \approx 0.360 + 0.997 = 1.357비트입니다.

3. 정답이 2번 클래스이고 모델 확률이 (0.1,0.3,0.6)(0.1, 0.3, 0.6)일 때 교차 엔트로피 손실(자연로그)은?

풀이: −ln⁡0.6≈0.511-\ln 0.6 \approx 0.511냇입니다.

4. P=(1,0)P = (1, 0), Q=(0.5,0.5)Q = (0.5, 0.5)일 때 DKL(P∥Q)D_{\mathrm{KL}}(P\|Q)와 DKL(Q∥P)D_{\mathrm{KL}}(Q\|P)를 비교하세요.

풀이: DKL(P∥Q)=1⋅log⁡2(1/0.5)=1D_{\mathrm{KL}}(P\|Q) = 1 \cdot \log_2(1/0.5) = 1비트입니다. DKL(Q∥P)D_{\mathrm{KL}}(Q\|P)에는 0.5log⁡2(0.5/0)0.5\log_2(0.5/0) 항이 있어 무한대입니다. QQ가 일어날 수 있다고 한 일을 PP가 절대 안 일어난다(확률 0)고 하면 무한한 벌을 받습니다. 비대칭이 극단적으로 드러나는 예입니다.

스스로 점검

  1. 엔트로피가 0인 분포는 어떤 분포인가요?
    • 답: 한 결과의 확률이 1인 분포입니다. 결과가 뻔해 놀라움이 없습니다.
  2. 분류 학습에서 교차 엔트로피 최소화와 KL 발산 최소화가 같은 이유는?
    • 답: H(P,Q)=H(P)+DKL(P∥Q)H(P, Q) = H(P) + D_{\mathrm{KL}}(P\|Q)이고 정답 분포의 엔트로피 H(P)H(P)는 모델과 무관한 상수이기 때문입니다.
  3. 소프트맥스 + 교차 엔트로피에서 로짓의 기울기는?
    • 답: p^k−yk\hat{p}_k - y_k, 즉 예측 확률에서 원-핫 정답을 뺀 값입니다.

용어 정리

용어쉬운 뜻
자기 정보량(self-information)사건 하나가 주는 놀라움, −log⁡p-\log p
비트(bit) · 냇(nat)밑 2 로그 · 자연로그로 잰 정보 단위
엔트로피(entropy)분포의 평균 놀라움, 불확실성
교차 엔트로피(cross-entropy)정답 분포를 모델 분포로 설명할 때의 평균 놀라움, 분류 손실
이진 교차 엔트로피(binary cross-entropy)결과가 둘인 경우의 교차 엔트로피, 로그 손실
KL 발산(KL divergence)두 분포가 다른 정도, 0 이상 · 비대칭
원-핫(one-hot)정답 칸만 1이고 나머지가 0인 벡터
로짓(logit)소프트맥스에 넣기 전의 점수
소프트맥스(softmax)점수 벡터를 합이 1인 확률로 바꾸는 함수
깁스 부등식(Gibbs' inequality)교차 엔트로피가 엔트로피보다 작을 수 없다는 사실, KL ≥ 0

더 깊이 보려면

참고 자료 D2L 정보 이론 절은 자기 정보량 → 엔트로피(동기 · 정의 · 해석 · 성질) → 결합 · 조건부 엔트로피와 상호 정보량 → KL 발산(정의 · 성질 · 예제) → 교차 엔트로피(정의 · 성질 · 다중 분류의 목적 함수) 순으로 진행합니다. 이 수업에서 뺀 상호 정보량(mutual information)은 대조 학습(CLIP · Contriever 등)을 깊이 읽을 때 필요하니 그때 이 절을 보면 좋습니다.

다음에 볼 것

라이선스

참고 자료 D2L은 CC BY-SA 4.0 라이선스로 공개돼 있습니다. 이 글은 D2L의 번역이나 개작이 아니라 KAITABASE가 직접 쓴 해설이며, 숫자 예는 모두 설명용으로 만든 것입니다.

출처

AI 원리부터 이해하기 · 수학 모듈

수학 모듈 학습

이 글은 수학 모듈의 학습 자료입니다. 전체 9개 자료 중 6번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 D2L(CC BY-SA 4.0)