TIL — BCE, Mini-batch Gradient, Xavier Initialization, Entropy·KL Divergence·Mutual Information

정승민·2일 전

TIL

목록 보기
5/6

오늘의 핵심
오늘은 단순히 개념을 외우는 수준보다, 왜 이런 식이 나오는지 수식적으로 연결하는 것에 집중했다.
흐름은 크게 다음과 같다.

BCE → Mini-batch Gradient → 분산 → Xavier Initialization → Entropy → Cross Entropy → KL Divergence → Mutual Information


1. Binary Cross Entropy는 무엇을 보는가?

📌 Binary Classification의 출력

Binary Classification에서 실제 정답은 보통

y∈{0,1}y \in \{0,1\}

이다.

예를 들어 스팸 분류라면:

  • y=1y=1 : 스팸
  • y=0y=0 : 스팸 아님

하지만 모델은 바로 0 또는 1을 출력하는 것이 아니라, 보통

p=P(y=1∣x)p = P(y=1\mid x)

즉 입력 xx가 class 1일 확률을 예측한다.

예를 들어:

p = 0.8

이면 모델은 해당 입력이 class 1일 확률을 80%로 보고 있다는 뜻이다.

최종 class는 필요하다면 threshold를 적용해 결정한다.

p >= 0.5  →  class 1
p < 0.5   →  class 0

📌 BCE의 목적

Binary Cross Entropy는

실제 정답 y∈{0,1}y\in\{0,1\}과 모델이 예측한 확률 p∈[0,1]p\in[0,1]이 얼마나 잘 맞는지

를 측정하는 Loss다.

수식은 다음과 같다.

L=−[ylog⁡p+(1−y)log⁡(1−p)]L = -\left[ y\log p + (1-y)\log(1-p) \right]

여기서:

  • yy : 실제 정답
  • pp : 모델이 예측한 class 1의 확률

정답이 1이면:

L=−log⁡pL=-\log p

정답이 0이면:

L=−log⁡(1−p)L=-\log(1-p)

따라서 모델이 정답 클래스에 높은 확률을 줄수록 Loss가 작아진다.


2. Cross Entropy에서 BCE로 내려오기

일반적인 Cross Entropy는

L=−∑k=1Kyklog⁡pkL = -\sum_{k=1}^{K} y_k \log p_k

이다.

Binary Classification은 class가 두 개뿐이므로 K=2K=2라고 생각하면 된다.

class 1의 확률을 pp라고 하면 class 0의 확률은

1−p1-p

이고, 정답도 하나의 binary 값 yy로 표현하면

y1=y,y0=1−yy_1=y,\qquad y_0=1-y

가 된다.

따라서 그대로 대입하면

L=−[ylog⁡p+(1−y)log⁡(1−p)]L = -\left[ y\log p + (1-y)\log(1-p) \right]

즉 BCE가 나온다.

💡 BCE는 Cross Entropy를 Binary Classification에 맞게 표현한 형태라고 볼 수 있다.


3. 왜 마지막 Activation으로 Sigmoid를 사용하는가?

📌 Linear 출력은 확률이 아니다

마지막 Linear Layer는 보통

z=Wx+bz = Wx+b

를 출력한다.

이때 zz의 범위는

−∞<z<∞-\infty < z < \infty

이므로 그대로는 확률로 해석할 수 없다.

Sigmoid는

σ(z)=11+e−z\sigma(z) = \frac{1}{1+e^{-z}}

이고 출력 범위는

0<σ(z)<10 < \sigma(z) < 1

이다.

즉:

Linear
↓
logit z
↓
Sigmoid
↓
class 1일 확률 p
↓
BCELoss

의 흐름이 만들어진다.


📌 왜 ReLU는 마지막 Activation으로 부적절한가?

ReLU는

ReLU(z)=max⁡(0,z)ReLU(z)=\max(0,z)

이고 출력 범위는

[0,∞)[0,\infty)

이다.

하지만 BCE에서 pp는 확률이므로

0≤p≤10 \le p \le 1

이어야 한다.

따라서 2, 10 같은 값도 출력할 수 있는 ReLU는 BCE 앞의 최종 Activation으로 부적절하다.

🎯 BCE가 원하는 것은 class 1의 확률이고, ReLU는 확률 범위를 보장하지 않는다.


4. BCELoss와 BCEWithLogitsLoss

📌 BCELoss

BCELoss는 이미 확률로 변환된 값을 입력으로 받는다.

model = nn.Sequential(
    nn.Linear(..., 1),
    nn.Sigmoid()
)

criterion = nn.BCELoss()

즉:

logit
↓
Sigmoid
↓
probability
↓
BCELoss

이다.

📌 BCEWithLogitsLoss

PyTorch에서는 보통 다음 형태를 더 많이 사용한다.

model = nn.Linear(..., 1)
criterion = nn.BCEWithLogitsLoss()

이 경우 마지막에 Sigmoid()를 직접 붙이지 않는다.

BCEWithLogitsLoss가 내부적으로 Sigmoid + BCE를 수치적으로 더 안정적인 방식으로 계산하기 때문이다.

🚨 BCEWithLogitsLoss를 사용할 때 마지막에 Sigmoid를 중복해서 넣으면 안 된다.


5. Mini-batch Gradient Descent

📌 GD와 SGD 복습

전체 데이터가 NN개라고 하자.

전체 Loss는

L(θ)=1N∑i=1NLi(θ)L(\theta) = \frac{1}{N} \sum_{i=1}^{N} L_i(\theta)

이다.

여기서:

  • θ\theta : 모델의 모든 Parameter
  • LiL_i : i번째 데이터의 Loss

Batch Gradient Descent는 전체 데이터를 사용한다.

g=∇θL=1N∑i=1N∇θLig = \nabla_\theta L = \frac{1}{N} \sum_{i=1}^{N} \nabla_\theta L_i

Pure SGD는 데이터 하나만 사용한다.

gi=∇θLig_i = \nabla_\theta L_i

📌 Mini-batch는 둘의 중간

Batch Size가 BB라면

LB=1B∑i∈BLiL_B = \frac{1}{B} \sum_{i\in \mathcal{B}} L_i

를 계산한다.

그리고

gB=∇θLBg_B = \nabla_\theta L_B

를 사용한다.

미분은 선형이므로

∇θ(1B∑i∈BLi)=1B∑i∈B∇θLi\nabla_\theta \left( \frac{1}{B} \sum_{i\in\mathcal{B}}L_i \right) = \frac{1}{B} \sum_{i\in\mathcal{B}} \nabla_\theta L_i

이다.

각 데이터의 Gradient를 직접 하나씩 구해서 평균내는 것과, 평균 Loss를 한 번 Backward 하는 것은 같은 결과를 준다.


6. PyTorch에서는 평균 Loss를 통해 Gradient 평균이 만들어진다

PyTorch의 많은 Loss 함수는 기본적으로

reduction="mean"

을 사용한다.

예를 들어:

criterion = nn.MSELoss()
loss = criterion(y_hat, y)
loss.backward()

이면:

각 데이터 Loss 계산
↓
Batch 평균 Loss
↓
Backward
↓
결과적으로 Batch Gradient의 평균

이 만들어진다.


7. Batch Size와 Gradient Variance

Mini-batch Gradient를

gB=1B∑i=1Bgig_B = \frac{1}{B} \sum_{i=1}^{B}g_i

라고 하자.

각 데이터의 Gradient가 서로 어느 정도 독립이라고 단순하게 가정하면

Var(gB)≈Var(gi)BVar(g_B) \approx \frac{Var(g_i)}{B}

이므로

Var(gB)∝1BVar(g_B)\propto\frac{1}{B}

이다.

즉:

Batch Size ↑
↓
더 많은 Gradient를 평균
↓
개별 데이터 때문에 튀는 정도 감소
↓
Gradient Variance ↓

💡 여기서 분산은 Mini-batch를 다르게 뽑았을 때 Gradient 추정값이 얼마나 흔들리는가를 의미한다.


8. Mini-batch의 분산과 초기화의 분산은 다른 이야기다

Mini-batch에서는

gB=g1+⋯+gBBg_B = \frac{g_1+\cdots+g_B}{B}

처럼 평균을 낸다.

반면 초기화에서는 다음 Layer의 Pre-activation이

z=w1x1+w2x2+⋯+wnxnz = w_1x_1+w_2x_2+\cdots+w_nx_n

처럼 여러 값을 합한다.

여기서:

  • xix_i : 이전 Layer의 Activation
  • wiw_i : Weight
  • nn : Input Feature 수, 즉 fan-in
  • zz : Activation Function을 통과하기 전 값

9. 분산(Variance)이란?

분산은 값 자체가 크냐 작냐가 아니라

값들이 자신의 평균 주변에서 얼마나 퍼져 있는가

를 나타낸다.

Var(X)=E[(X−E[X])2]Var(X) = E[(X-E[X])^2]

예를 들어:

[1000, 1000, 1000]

은 값은 크지만 모두 같으므로 분산은 0이다.

반면:

[-1000, 0, 1000]

은 평균 주변에서 크게 퍼져 있으므로 분산이 크다.

📌 Scale과 분산

중요한 성질은

Var(aX)=a2Var(X)Var(aX) = a^2Var(X)

이다.

즉 Weight 전체의 Scale을 줄이면 Weight 분포의 분산도 자연스럽게 줄어든다.


10. 초기화에서 왜 fan-in이 커지면 Weight를 작게 해야 하는가?

다음 식을 생각하자.

z=∑i=1nwixiz = \sum_{i=1}^{n}w_ix_i

일반적으로는

Var(z)=∑iVar(wixi)+2∑i<jCov(wixi,wjxj)Var(z) = \sum_iVar(w_ix_i) + 2\sum_{i<j}Cov(w_ix_i,w_jx_j)

이다.

초기화 이론에서는 단순화를 위해 다음과 같은 가정을 둔다.

  • Weight들이 서로 독립
  • 입력 Activation들도 대략 비상관
  • 평균이 0에 가까움
  • wiw_i와 xix_i가 독립

그러면 Covariance 항을 무시할 수 있고

Var(z)≈∑iVar(wixi)Var(z) \approx \sum_iVar(w_ix_i)

가 된다.

또한

Var(wixi)≈Var(wi)Var(xi)Var(w_ix_i) \approx Var(w_i)Var(x_i)

라고 두면

Var(z)≈nVar(w)Var(x)\boxed{ Var(z) \approx nVar(w)Var(x) }

가 된다.

즉:

fan-in n ↑
↓
더 많은 w_i x_i 항의 분산이 더해짐
↓
Var(z) ↑ 가능
↓
Weight Scale / Var(w)를 줄일 필요가 있음

11. 좋은 초기화의 핵심

좋은 초기화에는 두 가지 목표가 있다.

📌 1. Symmetry Breaking

모든 Weight가 동일하면 뉴런들이 같은 Feature를 학습할 수 있다.

따라서 Weight들이 서로 다른 값을 가져야 한다.

📌 2. 적절한 Scale

Weight가 너무 크면 Activation과 Gradient가 불안정해질 수 있고, 너무 작으면 Signal이 지나치게 작아질 수 있다.

🎯 좋은 초기화 = 서로 다른 Weight + 적절한 Weight Scale


12. Xavier Initialization

📌 Forward 관점

Forward에서

Var(z)≈faninVar(w)Var(x)Var(z) \approx fan_{in}Var(w)Var(x)

이다.

Layer를 지나도 Activation의 분산을 대략 유지하고 싶다면

Var(z)≈Var(x)Var(z) \approx Var(x)

를 목표로 둘 수 있다.

따라서

faninVar(w)Var(x)≈Var(x)fan_{in}Var(w)Var(x) \approx Var(x)

이고 Var(x)≠0Var(x)\neq0라면

Var(w)≈1faninVar(w) \approx \frac{1}{fan_{in}}

이 된다.


📌 Backward 관점

Backward에서는 대략

Var(δprev)≈fanoutVar(w)Var(δnext)Var(\delta_{prev}) \approx fan_{out}Var(w)Var(\delta_{next})

라고 볼 수 있다.

Gradient의 분산을 유지하려면

Var(w)≈1fanoutVar(w) \approx \frac{1}{fan_{out}}

이 필요하다.

Forward와 Backward의 요구가 다를 수 있으므로 Xavier는 둘을 절충해

Var(w)=2fanin+fanout\boxed{ Var(w) = \frac{2}{fan_{in}+fan_{out}} }

를 사용한다.


13. Xavier Normal

Xavier Normal은

w∼N(0,2fanin+fanout)w \sim \mathcal{N} \left( 0, \frac{2}{fan_{in}+fan_{out}} \right)

이다.

표준편차는

std=2fanin+fanoutstd = \sqrt{ \frac{2}{fan_{in}+fan_{out}} }

이다.

PyTorch:

nn.init.xavier_normal_(model.weight)

14. Xavier Uniform

Uniform Distribution에서

w∼U(−a,a)w\sim U(-a,a)

이면

Var(w)=a23Var(w)=\frac{a^2}{3}

이다.

Xavier의 목표 분산과 맞추면

a23=2fanin+fanout\frac{a^2}{3} = \frac{2}{fan_{in}+fan_{out}}

이므로

a=6fanin+fanouta = \sqrt{ \frac{6}{fan_{in}+fan_{out}} }

이다.

즉

w∼U(−6fanin+fanout,+6fanin+fanout)w \sim U\left( -\sqrt{\frac{6}{fan_{in}+fan_{out}}}, +\sqrt{\frac{6}{fan_{in}+fan_{out}}} \right)

이다.

PyTorch:

nn.init.xavier_uniform_(model.weight)

15. Xavier는 학습 내내 분산을 유지하는 방법인가?

아니다.

Xavier는

학습 시작 시 Activation과 Gradient가 너무 커지거나 작아지지 않도록 안정적인 초기 조건을 만들어주는 초기화 방법

이다.

학습이 시작되면

W←W−η∇WLW \leftarrow W - \eta\nabla_WL

에 의해 Weight가 계속 바뀐다.

따라서 Xavier가 처음 설정한 분산이 학습 내내 유지된다는 보장은 없다.

또 Xavier의 유도에는 독립성, 평균 0, 비슷한 분산 등의 가정이 들어가므로 실제 네트워크에서 정확히 분산이 보존되는 것도 아니다.

💡 Xavier의 목적은 학습 가능한 좋은 출발점을 만드는 것이다.


16. Entropy — 정보 하나의 정보량

어떤 사건 xx가 발생할 확률이 p(x)p(x)라고 하자.

그 사건의 정보량(Self-information)은

I(x)=−log⁡2p(x)I(x) = -\log_2p(x)

로 정의한다.

확률이 높은 사건은 자주 발생하므로 정보량이 작고, 확률이 낮은 사건은 드물기 때문에 정보량이 크다.

예를 들어:

p(x)=12p(x)=\frac12

이면

I(x)=−log⁡212=1 bitI(x) = -\log_2\frac12 = 1\text{ bit}

이다.

또

p(x)=18p(x)=\frac18

이면

I(x)=3 bitsI(x) = 3\text{ bits}

이다.


17. 왜 로그 밑이 2인가?

Binary Code 관점에서 정보를 표현한다면 밑이 2인 로그를 사용한다.

I(x)=−log⁡2p(x)I(x) = -\log_2p(x)

이 경우 단위는 bit이다.

로그 밑을 ee로 사용하면 단위는 nat이다.

💡 로그 밑이 2인 이유는 정보가 반드시 이진이라서가 아니라, 이진 부호화 관점에서 정보량의 단위를 bit로 표현하기 위해서다.


18. Entropy

Entropy는 각 사건의 정보량을 확률적으로 평균낸 값이다.

H(X)=−∑xp(x)log⁡2p(x)\boxed{ H(X) = -\sum_xp(x)\log_2p(x) }

또는 기대값으로

H(X)=Ex∼P[−log⁡2p(x)]H(X) = E_{x\sim P} [-\log_2p(x)]

라고 쓸 수 있다.

즉:

Entropy는 실제 확률분포 PP를 알고 있을 때, 그 분포에서 발생하는 데이터를 표현하는 데 필요한 평균 정보량이다.

정보이론적으로는 긴 symbol sequence를 이상적으로 부호화할 때 얻을 수 있는 최적 평균 부호 길이의 이론적 하한과 연결되는 값이다.

🚨 Entropy와 정확히 같은 길이의 단일 symbol code가 항상 존재한다는 뜻은 아니다. 긴 sequence를 효율적으로 부호화할수록 평균 code length를 Entropy에 가깝게 만들 수 있다.


19. Cross Entropy

실제 데이터 분포를 PP라고 하고, 우리가 모델링한 예측 분포를 QQ라고 하자.

Cross Entropy는

H(P,Q)=−∑xp(x)log⁡2q(x)\boxed{ H(P,Q) = -\sum_xp(x)\log_2q(x) }

또는

H(P,Q)=Ex∼P[−log⁡2q(x)]H(P,Q) = E_{x\sim P} [-\log_2q(x)]

이다.

중요한 점은:

  • 실제 데이터는 PP에서 발생
  • 정보량 계산에는 QQ를 사용

한다는 것이다.

즉:

실제 데이터가 PP를 따르는데, 우리가 QQ라는 확률 모델을 사용해 데이터를 표현할 때 필요한 기대 정보량

이라고 볼 수 있다.


20. Entropy와 Cross Entropy의 차이

Entropy:

H(P)=−∑xp(x)log⁡2p(x)H(P) = -\sum_xp(x)\log_2p(x)

Cross Entropy:

H(P,Q)=−∑xp(x)log⁡2q(x)H(P,Q) = -\sum_xp(x)\log_2q(x)

즉:

Entropy       : 실제 분포 P를 사용
Cross Entropy : 실제 데이터는 P지만 예측 분포 Q를 사용

모델이 실제 분포를 정확히 맞히면

Q=PQ=P

이므로

H(P,Q)=H(P)H(P,Q)=H(P)

가 된다.


21. KL Divergence

Cross Entropy와 Entropy의 차이가 KL Divergence다.

DKL(P∥Q)=H(P,Q)−H(P)\boxed{ D_{KL}(P\parallel Q) = H(P,Q)-H(P) }

이를 풀어쓰면

DKL(P∥Q)=∑xp(x)log⁡2p(x)q(x)D_{KL}(P\parallel Q) = \sum_x p(x) \log_2 \frac{p(x)}{q(x)}

이다.

📌 의미

Entropy H(P)H(P)는 실제 분포를 알고 있을 때의 최적 기대 정보량이고,
Cross Entropy H(P,Q)H(P,Q)는 QQ를 사용했을 때의 기대 정보량이다.

따라서

H(P,Q)−H(P)H(P,Q)-H(P)

는

잘못되거나 불완전한 분포 QQ를 사용해서 생기는 추가적인 기대 정보 비용

으로 해석할 수 있다.

즉:

최적 기대 비용 H(P)
+
분포를 잘못 가정해서 생긴 추가 비용 D_KL(P||Q)
=
실제 기대 비용 H(P,Q)

이다.


📌 중요한 성질

DKL(P∥Q)≥0D_{KL}(P\parallel Q)\ge0

이고, 두 분포가 같으면

DKL(P∥Q)=0D_{KL}(P\parallel Q)=0

이다.

하지만 일반적인 거리함수와 달리

DKL(P∥Q)≠DKL(Q∥P)D_{KL}(P\parallel Q) \neq D_{KL}(Q\parallel P)

일 수 있다.

즉 KL Divergence는 대칭적이지 않다.


22. Cross Entropy Loss와 KL Divergence의 관계

실제 데이터 분포 PP가 고정되어 있다면

H(P)H(P)

는 모델 Parameter와 무관한 상수다.

그리고

H(P,Q)=H(P)+DKL(P∥Q)H(P,Q) = H(P) + D_{KL}(P\parallel Q)

이므로 Cross Entropy를 최소화하는 것은 결국

DKL(P∥Q)D_{KL}(P\parallel Q)

를 최소화하는 것과 같다.

즉:

Cross Entropy Loss를 줄인다는 것은 모델의 예측 분포 QQ를 실제 데이터 분포 PP에 가깝게 만드는 것이라고 볼 수 있다.


23. Mutual Information

이제 KL Divergence를 이용해 두 변수 XX, YY가 얼마나 서로 의존하는지를 측정할 수 있다.

두 변수가 독립이라면

P(X,Y)=P(X)P(Y)P(X,Y) = P(X)P(Y)

이다.

따라서 다음 두 분포를 비교하면 된다.

실제 Joint Distribution:

PXY(x,y)P_{XY}(x,y)

독립이라고 가정했을 때의 분포:

PX(x)PY(y)P_X(x)P_Y(y)

이 둘의 차이를 KL Divergence로 측정한 것이 Mutual Information이다.

I(X;Y)=DKL(PXY∥PXPY)\boxed{ I(X;Y) = D_{KL} \left( P_{XY} \parallel P_XP_Y \right) }

24. Mutual Information의 수식

풀어쓰면

I(X;Y)=∑x,yp(x,y)log⁡p(x,y)p(x)p(y)\boxed{ I(X;Y) = \sum_{x,y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)} }

이다.

📌 독립이면?

독립이라면

p(x,y)=p(x)p(y)p(x,y)=p(x)p(y)

이므로

p(x,y)p(x)p(y)=1\frac{p(x,y)}{p(x)p(y)}=1

이고

log⁡1=0\log1=0

이다.

따라서

I(X;Y)=0I(X;Y)=0

이다.

즉:

Mutual Information이 0이면 두 변수는 독립이다.


📌 의존성이 강하면?

XX를 알았을 때 YY에 대한 불확실성이 크게 줄어든다면 Mutual Information이 커진다.

따라서:

Mutual Information은 XX와 YY가 서로 공유하는 정보의 양

이라고 해석할 수 있다.


25. Mutual Information과 Entropy의 관계

Mutual Information은 다음과 같이도 쓸 수 있다.

I(X;Y)=H(X)+H(Y)−H(X,Y)\boxed{ I(X;Y) = H(X)+H(Y)-H(X,Y) }

또는

I(X;Y)=H(X)−H(X∣Y)\boxed{ I(X;Y) = H(X)-H(X\mid Y) }

이며

I(X;Y)=H(Y)−H(Y∣X)I(X;Y) = H(Y)-H(Y\mid X)

이기도 하다.

여기서 H(X)H(X)는 원래 XX에 대한 불확실성이고,
H(X∣Y)H(X\mid Y)는 YY를 알고 난 뒤에도 남아 있는 XX의 불확실성이다.

따라서

H(X)−H(X∣Y)H(X)-H(X\mid Y)

는

Y를 알게 됨으로써 X에 대한 불확실성이 얼마나 감소했는가

를 나타낸다.


26. 전체 정보이론 흐름

오늘 배운 정보이론 내용은 다음처럼 하나의 흐름으로 연결할 수 있다.

어떤 사건이 얼마나 놀라운가?
↓
Self-Information

I(x) = -log p(x)

↓
그 정보량을 평균내면?

Entropy

H(P) = E[-log P(x)]

↓
실제 분포 P가 아니라
예측 분포 Q를 사용하면?

Cross Entropy

H(P,Q) = E_P[-log Q(x)]

↓
최적 기대 비용과의 차이는?

KL Divergence

D_KL(P||Q) = H(P,Q) - H(P)

↓
두 변수가 독립이라고 가정한 분포와
실제 Joint Distribution의 차이는?

Mutual Information

I(X;Y) = D_KL(P_XY || P_X P_Y)

27. 오늘의 최종 연결

📌 Optimization

GD
→ 전체 데이터 Gradient

SGD
→ 데이터 하나의 Gradient

Mini-batch SGD
→ 일부 데이터의 평균 Gradient

Batch Size가 증가하면

Var(gB)∝1BVar(g_B)\propto\frac{1}{B}

이므로 Gradient 추정이 더 안정적이 된다.


📌 Initialization

다음 Layer의 Pre-activation은

z=∑iwixiz = \sum_iw_ix_i

이고, 독립성 등의 단순한 가정 아래

Var(z)≈faninVar(w)Var(x)Var(z) \approx fan_{in}Var(w)Var(x)

이다.

따라서 fan-in이 증가하면 Weight 분산을 작게 조절할 필요가 있다.

Xavier는 Forward / Backward를 함께 고려해

Var(w)=2fanin+fanout\boxed{ Var(w) = \frac{2}{fan_{in}+fan_{out}} }

을 사용한다.


📌 Information Theory

Self-Information:

I(x)=−log⁡2p(x)I(x)=-\log_2p(x)

Entropy:

H(P)=EP[−log⁡2P(x)]H(P) = E_P[-\log_2P(x)]

Cross Entropy:

H(P,Q)=EP[−log⁡2Q(x)]H(P,Q) = E_P[-\log_2Q(x)]

KL Divergence:

DKL(P∥Q)=H(P,Q)−H(P)D_{KL}(P\parallel Q) = H(P,Q)-H(P)

Mutual Information:

I(X;Y)=DKL(PXY∥PXPY)I(X;Y) = D_{KL} \left( P_{XY} \parallel P_XP_Y \right)

즉:

Entropy는 불확실성 / 평균 정보량을, Cross Entropy는 다른 확률모델을 사용했을 때의 기대 비용을, KL Divergence는 그 추가 비용을, Mutual Information은 두 변수가 독립에서 얼마나 벗어나 서로 정보를 공유하는지를 나타낸다.


28. 오늘의 핵심 한 문장

딥러닝의 Loss, Optimization, Initialization은 서로 떨어진 개념이 아니라 확률·미분·분산이라는 수학적 구조로 연결되어 있으며, 정보이론에서는 Entropy → Cross Entropy → KL Divergence → Mutual Information으로 이어지는 하나의 흐름으로 이해할 수 있다.

profile
매일 꾸준히

0개의 댓글