11장. 정보이론

확률과 통계 · 4부. 정보와 샘플링

심화 · 약 15분 · 연습문제 5

요약

정보량과 엔트로피, 결합·조건부 엔트로피, 교차 엔트로피, KL 발산, 상호정보량, 비트와 압축

“놀라움”을 수로 잴 수 있을까요? 드문 일이 일어나면 많이 놀라고, 뻔한 일이 일어나면 놀라지 않습니다. 섀넌은 이 놀라움을 −log⁡p-\log p로 정의해 정보이론을 세웠고, 그 평균이 엔트로피입니다. 오늘날 분류 모델의 손실(교차 엔트로피), 언어 모델의 평가(퍼플렉서티), 생성 모델의 목표(KL 발산), 표현 학습(상호정보량)이 모두 이 장의 양입니다.

11.1 정보량과 엔트로피

정의 11.1. 확률 pp인 사건의 정보량(information content)은 I=−log⁡2pI = -\log_2 p 비트입니다.

동전 앞면(p=12p = \frac12)은 1비트, 주사위 6(p=16p = \frac16)은 약 2.585비트입니다. 독립 사건이 함께 일어나면 확률은 곱해지고 정보량은 더해집니다. 로그를 쓰는 이유입니다. 밑을 ee로 쓰면 단위는 내트(nat)이고, 머신러닝 코드는 보통 자연로그를 씁니다.

정의 11.2 (엔트로피). 이산 확률변수 XX의 엔트로피(entropy)는 정보량의 기댓값입니다.

H(X)=−∑xp(x)log⁡p(x).H(X) = -\sum_xp(x)\log p(x).

(0log⁡0=00\log0 = 0으로 약속합니다.)

예제 11.3.

  • 공정한 동전: H=1H = 1비트. 앞면 확률 0.9인 동전: H=−0.9log⁡20.9−0.1log⁡20.1≈0.469H = -0.9\log_20.9 - 0.1\log_20.1 \approx 0.469비트.
  • 결과가 nn가지이고 균등하면 H=log⁡2nH = \log_2n.

정리 11.4. 0≤H(X)≤log⁡2n0 \le H(X) \le \log_2n(nn은 결과의 수). 최솟값은 결과가 확정될 때, 최댓값은 균등분포일 때입니다.

엔트로피는 불확실성의 크기이고, 섀넌의 원천 부호화 정리에 따르면 XX를 압축할 때 기호당 필요한 평균 비트 수의 하한입니다.

11.2 교차 엔트로피

정의 11.5. 참 분포 pp의 데이터를 모델 분포 qq로 부호화할 때의 평균 비트 수

H(p,q)=−∑xp(x)log⁡q(x)H(p, q) = -\sum_xp(x)\log q(x)

를 교차 엔트로피(cross-entropy)라 합니다.

분류에서 정답이 원-핫 벡터 pp이면 H(p,q)=−log⁡q(정답)H(p, q) = -\log q(\text{정답})이고, 이것이 교차 엔트로피 손실입니다. 데이터 전체의 평균은 7장의 음의 로그 가능도를 nn으로 나눈 것과 같습니다.

퍼플렉서티(perplexity)는 2H(p,q)2^{H(p, q)}(자연로그이면 eHe^{H})입니다. “모델이 매번 평균 몇 개의 후보 사이에서 헷갈리는가”로 읽습니다.

11.3 KL 발산

정의 11.6 (KL 발산).

DKL(p ∥ q)=∑xp(x)log⁡p(x)q(x)=H(p,q)−H(p).D_{\mathrm{KL}}(p\,\|\,q) = \sum_xp(x)\log\frac{p(x)}{q(x)} = H(p, q) - H(p).

qq로 pp를 흉내낼 때 더 드는 비트 수입니다.

정리 11.7 (깁스 부등식). DKL(p ∥ q)≥0D_{\mathrm{KL}}(p\,\|\,q) \ge 0이고, 등호는 p=qp = q일 때만입니다.

증명 개요. −log⁡-\log가 볼록함수이므로 옌센 부등식 E[−log⁡qp]≥−log⁡E[qp]=−log⁡∑q=0E[-\log\frac{q}{p}] \ge -\log E[\frac qp] = -\log\sum q = 0. □

그래서 H(p)H(p)가 고정일 때 교차 엔트로피를 줄이는 것은 KL 발산을 줄이는 것, 곧 모델 qq를 데이터 분포 pp에 가깝게 하는 것입니다. 주의: KL은 대칭이 아니라 D(p∥q)≠D(q∥p)D(p\|q) \ne D(q\|p)이고, 그래서 거리가 아니라 “발산”이라 부릅니다.

예제 11.8. p=(12,12)p = (\frac12, \frac12), q=(34,14)q = (\frac34, \frac14)이면 D(p∥q)=12log⁡21/23/4+12log⁡21/21/4=12(log⁡223+1)≈0.2075D(p\|q) = \frac12\log_2\frac{1/2}{3/4} + \frac12\log_2\frac{1/2}{1/4} = \frac12(\log_2\frac23 + 1) \approx 0.2075비트.

11.4 결합·조건부 엔트로피와 상호정보량

  • 결합 엔트로피 H(X,Y)=−∑p(x,y)log⁡p(x,y)H(X, Y) = -\sum p(x, y)\log p(x, y).
  • 조건부 엔트로피 H(Y∣X)=H(X,Y)−H(X)H(Y \mid X) = H(X, Y) - H(X): XX를 안 뒤 남은 YY의 불확실성.

정의 11.9 (상호정보량).

I(X;Y)=H(Y)−H(Y∣X)=DKL(p(x,y) ∥ p(x)p(y)).I(X; Y) = H(Y) - H(Y \mid X) = D_{\mathrm{KL}}\big(p(x, y)\,\|\,p(x)p(y)\big).

XX를 알면 YY의 불확실성이 얼마나 줄어드는가입니다. I≥0I \ge 0이고, 00이면 독립입니다. 상관계수와 달리 비선형 관계도 잡습니다.

예제 11.10. XX가 공정한 동전이고 Y=XY = X이면 I=H(Y)−0=1I = H(Y) - 0 = 1비트. YY가 독립인 다른 동전이면 I=0I = 0.

11.5 이 장의 요약

  • 정보량 −log⁡p-\log p, 엔트로피 H=E[−log⁡p]H = E[-\log p], 균등분포에서 최대.
  • 교차 엔트로피 H(p,q)H(p, q) = 분류 손실 = 평균 NLL. 퍼플렉서티 =2H= 2^H.
  • DKL(p∥q)=H(p,q)−H(p)≥0D_{\mathrm{KL}}(p\|q) = H(p, q) - H(p) \ge 0, 비대칭.
  • 상호정보량 = 불확실성의 감소.

쓰이는 곳. 분류·언어 모델의 손실과 퍼플렉서티, 지식 증류(교사 분포와의 KL), VAE의 ELBO(재구성 + KL), 강화학습의 PPO·RLHF(정책 사이 KL 벌점), 결정 트리의 정보 이득, 대조 학습(InfoNCE는 상호정보량의 하한), 통신공학의 채널 용량, 통계역학의 엔트로피(볼츠만의 S=kln⁡WS = k\ln W와 같은 꼴)가 이 장의 양입니다.

문제

11.1 [계산] · 확인 문제

결과가 8가지이고 모두 같은 확률인 확률변수의 엔트로피는 몇 비트인가요?

정답
3
풀이

log⁡28=3\log_28 = 3비트입니다.

11.2 [계산] · 확인 문제

분포 (12,14,18,18)(\frac12, \frac14, \frac18, \frac18)의 엔트로피는 몇 비트인가요?

정답
1.75
풀이

12⋅1+14⋅2+18⋅3+18⋅3=1.75\frac12\cdot1 + \frac14\cdot2 + \frac18\cdot3 + \frac18\cdot3 = 1.75비트입니다.

11.3 [계산] · 확인 문제

3가지 클래스 분류에서 모델이 (0.7,0.2,0.1)(0.7, 0.2, 0.1)을 내고 정답이 첫째 클래스일 때, 교차 엔트로피 손실을 자연로그로 구합니다. (소수 넷째 자리까지)

정답
0.3567
풀이

−ln⁡0.7≈0.3567-\ln0.7 \approx 0.3567입니다.

11.4 [계산] · 확인 문제

p=(12,12)p = (\frac12, \frac12), q=(34,14)q = (\frac34, \frac14)에 대해 비트 단위로 구합니다. (소수 넷째 자리까지)

값 답
DKL(p ∥ q)D_{\mathrm{KL}}(p\,\|\,q) [?]
DKL(q ∥ p)D_{\mathrm{KL}}(q\,\|\,p) [?]
정답
0.2075
0.1887
풀이

첫째는 예제 11.8. 둘째는 34log⁡23/41/2+14log⁡21/41/2=34log⁡21.5−14≈0.1887\frac34\log_2\frac{3/4}{1/2} + \frac14\log_2\frac{1/4}{1/2} = \frac34\log_21.5 - \frac14 \approx 0.1887입니다. 둘이 달라 KL이 비대칭임을 보여 줍니다.

11.5 [증명]

DKL(p∥q)=H(p,q)−H(p)D_{\mathrm{KL}}(p\|q) = H(p, q) - H(p)임을 보입니다.

풀이

∑plog⁡pq=∑plog⁡p−∑plog⁡q=−H(p)+H(p,q)\sum p\log\frac pq = \sum p\log p - \sum p\log q = -H(p) + H(p, q)입니다.