kimyongtae.com
홈 / 강의 / AI 이미지·애니메이션 생성, 원리부터 / 0단계. 최소 기초

0-2. 조건부 확률, 기대값, KL 발산

이번 수업은 도구 세 개를 챙긴다. 조건이 붙은 분포, 평균을 내는 법, 두 분포가 얼마나 다른지 재는 자. 뒤에 나오는 모든 식이 이 셋으로 쓰여 있다.

조건부 확률: 조건이 붙으면 분포가 바뀐다

주사위를 던진다. 6이 나올 확률은 1/6이다.

누가 "짝수가 나왔다"고 알려 줬다. 이제 가능한 값은 2, 4, 6뿐이다. 6일 확률은 1/3이 된다. 정보가 하나 붙으니 확률이 바뀌었다.

이것을 조건부 확률이라 하고 p(6 | 짝수)라고 쓴다. 세로줄 뒤가 조건이다. "짝수라는 조건에서 6일 확률"이라고 읽는다.

이미지 생성으로 옮기면 이렇다.

프롬프트를 넣어 그림을 뽑는 것은 p(x | 프롬프트)에서 표본을 뽑는 일이다. 0-1에서 본 "분포에서 뽑기"에 조건이 하나 붙었을 뿐이다.

둘이 같이 일어날 확률

두 사건이 같이 일어날 확률은 이렇게 쪼갠다.

p(x, y) = p(x | y) · p(y)

"y가 일어나고, 그 조건에서 x가 일어난다"는 뜻이다. 순서를 바꿔 p(y | x) · p(x)로 써도 같은 값이다. 둘을 같다고 놓고 정리하면 베이즈 정리가 나온다.

p(y | x) = p(x | y) · p(y) / p(x)

조건의 방향을 뒤집는 공식이다. 숫자로 한 번 보자.

검사에서 양성이 나왔다. 정말 병일 확률은 얼마일까. 1만 명으로 세어 보면 쉽다.

사람 수양성
병 있음100명99명
병 없음9,900명495명

양성은 모두 594명이고 그중 진짜는 99명이다. 99 ÷ 594 = 약 17%다. 99%가 아니다. p(양성 | 병)과 p(병 | 양성)은 다른 값이다. 조건의 방향을 헷갈리면 안 된다.

생성 모델에서 이 방향 뒤집기가 중요하다. "원본에 노이즈를 섞는 방향"은 쉽게 계산된다. 우리가 필요한 것은 반대 방향, "노이즈 섞인 것에서 원본 쪽으로 가는 방향"이다.

기대값: 확률로 가중한 평균

주사위 눈의 평균은 3.5다. 각 값에 확률을 곱해서 더한 것이다.

1·(1/6) + 2·(1/6) + … + 6·(1/6) = 3.5

이것이 기대값이고 E[x]라고 쓴다. 값 대신 함수를 넣어도 된다. E[f(x)]는 "f(x)의 평균"이다.

분포를 식으로 모를 때는 어떻게 할까. 표본을 많이 뽑아서 그냥 평균을 낸다. 주사위를 1000번 던져 평균을 내면 3.5 근처가 나온다. 표본이 많을수록 정확해진다.

신경망 학습이 바로 이 방법을 쓴다.

논문에서 E가 붙은 식을 보면 겁먹지 말자. "표본을 뽑아 평균 낸다"로 읽으면 된다.

KL 발산: 두 분포가 얼마나 다른가

모델이 만든 분포가 데이터 분포와 얼마나 닮았는지 재야 한다. 그 자가 KL 발산이다. KL(p ‖ q)라고 쓴다.

성질 세 가지만 기억하자.

일반식은 E_p[ log p(x) − log q(x) ]다. p에서 표본을 뽑아, 두 분포의 로그 값 차이를 평균 낸 것이다.

가우시안끼리는 식이 깔끔하게 떨어진다.

KL( N(μ₁, σ₁²) ‖ N(μ₂, σ₂²) ) = ln(σ₂/σ₁) + (σ₁² + (μ₁ − μ₂)²) / (2σ₂²) − 1/2
pqKL(p ‖ q)
N(0, 1)N(0, 1)0
N(0, 1)N(1, 1)0.5
N(0, 1)N(2, 1)2
N(0, 1)N(0, 2²)0.32
N(0, 2²)N(0, 1)0.81

마지막 두 줄을 보자. 같은 두 분포인데 순서에 따라 값이 다르다.

왜 손실이 "제곱 오차"가 되는가

위 식에서 두 분포의 퍼짐이 같다고 해 보자(σ₁ = σ₂ = σ). 그러면 식이 이렇게 줄어든다.

KL = (μ₁ − μ₂)² / (2σ²)

중심 사이 거리의 제곱만 남는다. 이것이 중요하다.

확산 모델의 학습 목표는 원래 "모델의 분포를 정답 분포에 맞춰라", 즉 KL을 줄이라는 것이다. 그런데 두 분포가 모두 가우시안이고 퍼짐이 같으면, KL을 줄이는 일이 평균의 제곱 오차를 줄이는 일과 같아진다.

그래서 실제 학습 코드는 한 줄이다. "예측값과 정답의 차이를 제곱해서 평균 낸다." 복잡한 확률 이론이 이 한 줄로 내려앉는 과정은 1단계에서 다시 본다.

확인 문제

  1. 주사위를 던졌더니 4 이상이 나왔다고 한다. 6일 확률은?
  2. 앞면이 나올 확률이 0.7인 동전이 있다. 앞면이면 1점, 뒷면이면 0점이다. 점수의 기대값은?
  3. KL( N(0, 1) ‖ N(3, 1) )은?

풀이

  1. 1/3이다. 가능한 값이 4, 5, 6 세 개로 줄었다.
  2. 0.7이다. 1×0.7 + 0×0.3이다.
  3. 4.5다. 퍼짐이 같으므로 (0 − 3)² / 2 = 4.5다.
← 0-1 확률분포와 가우시안 0-3 신경망과 역전파 →