정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산
정보량 → 엔트로피 → 교차 엔트로피 → 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 이상), 소프트맥스 + 교차 엔트로피의 기울기 |
| 먼저 알면 좋은 것 | 로그(), 확률분포, 기댓값 |
들어가기 전에
- 확률과 통계 최소한 — 확률분포와 기댓값 을 알아야 합니다. 엔트로피는 "정보량의 기댓값"이기 때문입니다.
로그는 "몇 번 곱해야 그 수가 되나"입니다. (), , 입니다. 밑이 2이면 단위가 비트(bit), 밑이 (자연로그 )이면 냇(nat)입니다. 참고 자료 D2L의 이 절은 밑 2(비트)를 쓰고, 파이토치 같은 딥러닝 프레임워크의 손실 함수는 자연로그(냇)를 씁니다. 단위만 다르고 뜻은 같습니다( 냇 비트).
한눈에 보기
- "드문 일일수록 정보가 많다"를 식 로 씁니다.
- 엔트로피가 "분포의 평균 놀라움 = 불확실성"이라는 것을 동전과 주사위로 계산합니다.
- 교차 엔트로피가 "정답 분포를 모델 분포로 설명할 때의 평균 놀라움"이고, 분류 손실 과 같은 것임을 보입니다.
- KL 발산 $= $ 교차 엔트로피 엔트로피이며, 항상 0 이상이고 방향에 따라 값이 다르다는 것을 숫자로 확인합니다.
- 소프트맥스 + 교차 엔트로피의 기울기가 "예측 확률 − 정답"이라는 깔끔한 꼴이 된다는 것을 봅니다.
1. 정보량: 놀라움을 숫자로
직관(해설용 비유): "내일 해가 뜬다"는 뉴스는 아무 정보도 없습니다. "내일 서울에 눈이 1m 온다"는 엄청난 뉴스입니다. 일어날 확률이 낮은 사건일수록 알게 됐을 때의 정보(놀라움)가 큽니다.
| 기호 | 뜻 |
|---|---|
| 사건 의 자기 정보량(self-information), 단위 비트 | |
| 사건 의 확률 |
숫자로 해 보기(해설용): 공정한 동전의 앞면()은 비트, 8면체 주사위의 한 눈()은 비트, 반드시 일어나는 일()은 비트입니다.
왜 로그인가: 독립인 두 사건이 함께 일어날 확률은 곱 입니다. 정보량은 "더해지는" 것이 자연스러우므로 곱을 합으로 바꾸는 로그를 씁니다. 입니다. 동전 세 번의 결과는 비트입니다.
2. 엔트로피: 평균 놀라움 = 불확실성
직관: 결과를 보기 전에 "평균적으로 얼마나 놀랄 것인가"입니다. 결과가 뻔하면 작고, 무엇이 나올지 전혀 모르면 큽니다.
| 기호 | 뜻 |
|---|---|
| 분포 의 엔트로피(entropy) | |
| 를 분포 에서 뽑는다 | |
| 가능한 모든 결과에 대해 더하기 |
숫자로 해 보기(해설용):
| 분포 | 계산 | 엔트로피 |
|---|---|---|
| 공정한 동전 | 비트 | |
| 치우친 동전 | 약 비트 | |
| 늘 앞면 | 비트 | |
| 세 결과 | 비트 |
(은 0으로 칩니다.) 결과가 개일 때 엔트로피는 모두 같은 확률 일 때 가장 크고, 값은 입니다.
압축으로 읽기: 엔트로피는 "그 분포에서 나온 결과를 0/1로 적을 때 평균 몇 비트가 꼭 필요한가"의 하한입니다. 결과 4개의 확률이 이면 엔트로피는 비트이고, 실제로 부호 길이를 비트로 주면 평균 비트로 딱 맞습니다. 흔한 것에 짧은 부호를 주는 것이 핵심입니다.
3. 교차 엔트로피: 엉뚱한 분포로 설명할 때의 비용
직관: 실제 세상은 분포 를 따르는데, 우리는 모델 가 맞다고 믿고 놀라움을 계산합니다. 그러면 평균 놀라움은 보다 커집니다. 그 "엉뚱한 믿음으로 잰 평균 놀라움"이 교차 엔트로피입니다.
| 기호 | 뜻 |
|---|---|
| 실제(정답) 분포 — 데이터가 따르는 분포 | |
| 모델이 예측한 분포 | |
| 교차 엔트로피(cross-entropy) |
숫자로 해 보기(해설용): , 이면
비트보다 약 비트 큽니다. 모델이 틀린 만큼 비용이 늘었습니다.
분류 손실이 바로 교차 엔트로피
분류에서 정답 분포 는 정답 칸만 1인 원-핫(one-hot) 벡터입니다. 그러면 합에서 정답 칸만 남습니다.
숫자로 해 보기(해설용): 고양이 · 개 · 새 3분류에서 정답이 '개'이고 모델이 을 냈다면 손실은 냇(비트)입니다. 정답에 만 주었다면 냇으로 커집니다.
첫걸음 수업의 로그 손실 은 결과가 두 개인 경우의 교차 엔트로피입니다(이진 교차 엔트로피). LLM의 사전학습 손실도 "다음 토큰"이라는 수만 칸짜리 분류의 교차 엔트로피를 모든 위치에서 평균 낸 것입니다.
왜 교차 엔트로피를 쓰나: 교차 엔트로피 최소화는 "모델이 데이터에 준 확률의 로그를 최대화"하는 것, 즉 최대우도 추정과 같습니다(확률적 머신러닝 입문). 또 다음 절처럼 기울기가 단순해 학습이 잘 됩니다.
4. 소프트맥스와 교차 엔트로피의 기울기
모델은 보통 점수(로짓) 를 내고, 소프트맥스(softmax)로 확률로 바꿉니다.
| 기호 | 뜻 |
|---|---|
| 번 클래스의 점수(로짓) | |
| 소프트맥스로 바꾼 번 클래스 확률 | |
| 정답 클래스 번호 | |
| 원-핫 정답(정답 칸 1, 나머지 0) |
숫자로 해 보기(해설용): 로짓 , 정답은 0번 클래스입니다.
- , , , 합
- 확률
- 손실
- 기울기
경사 하강법은 기울기 반대로 가므로 정답 점수 는 올리고 나머지는 내립니다. "예측 확률에서 정답을 뺀 것"이라는 깔끔한 꼴이라 구현도 쉽고 수치도 안정적입니다.
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 발산: 두 분포의 차이
직관: 교차 엔트로피에서 "어차피 피할 수 없는 놀라움" 를 빼면, 순수하게 "모델이 틀려서 더 든 비용"만 남습니다. 이것이 KL 발산(쿨백-라이블러 발산, Kullback-Leibler divergence)입니다.
| 기호 | 뜻 |
|---|---|
| 를 기준으로 본 와의 차이 | |
| 결과 하나에서 두 분포가 다른 정도 |
성질 두 가지
- 항상 0 이상이고, 일 때만 0입니다(깁스 부등식). 그래서 "거리처럼" 씁니다.
- 비대칭입니다. 일 수 있어 진짜 거리는 아닙니다.
숫자로 해 보기(해설용): 앞의 , 에서
- 비트
- 비트
두 값이 다릅니다. 방향이 중요합니다.
분류 학습과의 관계: 정답 분포 는 데이터가 정하므로 는 상수입니다. 따라서 교차 엔트로피를 줄이는 것은 를 줄이는 것과 같습니다. "모델 분포를 데이터 분포에 가깝게"가 학습의 정체입니다.
논문에서 KL이 나오는 자리
| 자리 | 쓰임 |
|---|---|
| 변분 오토인코더 (VAE) | 인코더가 내는 잠재 분포를 표준 정규분포에 가깝게 묶는 항 |
| TRPO · PPO | 정책을 한 번에 너무 많이 바꾸지 않도록 이전 정책과의 KL을 제한 |
| RLHF · InstructGPT · DPO | 미세조정한 모델이 원래 모델에서 너무 멀어지지 않도록 KL 벌점 |
| 지식 증류 | 작은 모델 분포를 큰 모델 분포에 가깝게 |
왜 KL을 규제에 쓰나: 매개변수 값의 차이(예: 가중치 L2 거리)는 모델의 '행동'이 얼마나 바뀌었는지를 직접 말해 주지 않습니다. KL은 출력 분포, 즉 행동 자체가 얼마나 달라졌는지를 재므로 "행동을 조금씩만 바꿔라"라는 요구를 그대로 수식으로 옮길 수 있습니다.
연습 문제
1. 확률 인 사건의 정보량은 몇 비트인가요?
풀이: 비트입니다.
2. 4면체 공정한 주사위의 엔트로피는? 로 치우치면 커지나요, 작아지나요?
풀이: 공정하면 비트(최대). 치우치면 작아집니다. 계산하면 비트입니다.
3. 정답이 2번 클래스이고 모델 확률이 일 때 교차 엔트로피 손실(자연로그)은?
풀이: 냇입니다.
4. , 일 때 와 를 비교하세요.
풀이: 비트입니다. 에는 항이 있어 무한대입니다. 가 일어날 수 있다고 한 일을 가 절대 안 일어난다(확률 0)고 하면 무한한 벌을 받습니다. 비대칭이 극단적으로 드러나는 예입니다.
스스로 점검
- 엔트로피가 0인 분포는 어떤 분포인가요?
- 답: 한 결과의 확률이 1인 분포입니다. 결과가 뻔해 놀라움이 없습니다.
- 분류 학습에서 교차 엔트로피 최소화와 KL 발산 최소화가 같은 이유는?
- 답: 이고 정답 분포의 엔트로피 는 모델과 무관한 상수이기 때문입니다.
- 소프트맥스 + 교차 엔트로피에서 로짓의 기울기는?
- 답: , 즉 예측 확률에서 원-핫 정답을 뺀 값입니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 자기 정보량(self-information) | 사건 하나가 주는 놀라움, |
| 비트(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 등)을 깊이 읽을 때 필요하니 그때 이 절을 보면 좋습니다.
다음에 볼 것
- 최대우도 추정과 MAP: 손실 함수는 어디서 오나 — 가우시안→MSE · 베르누이→교차 엔트로피 · MAP=L2/L1 정규화를 유도하는 수업
- 스탠퍼드 CS229 머신러닝 강의 노트 — 로지스틱 회귀의 로그 우도를 유도하며 이진 교차 엔트로피가 어디서 나오는지 직접 봅니다.
- 딥러닝 이해하기 — 데이터 분포 가정에서 손실 함수(MSE · 교차 엔트로피)를 유도하는 일반 원리를 배웁니다.
- 변분 오토인코더 (VAE) — KL 발산이 생성 모델의 학습 목표에 어떻게 들어가는지 봅니다.
라이선스
참고 자료 D2L은 CC BY-SA 4.0 라이선스로 공개돼 있습니다. 이 글은 D2L의 번역이나 개작이 아니라 KAITABASE가 직접 쓴 해설이며, 숫자 예는 모두 설명용으로 만든 것입니다.
출처
- 참고: d2l.ai/chapter_appendix-mathematics-for-d… (Dive into Deep Learning 부록)
AI 원리부터 이해하기 · 수학 모듈
수학 모듈 학습
이 글은 수학 모듈의 학습 자료입니다. 전체 9개 자료 중 6번째입니다.
출처·원문
원문 보기요약만