Skip to content

2 · 확률 분포

확률 분포는 복잡한 모델을 만드는 데 중요한 역할을 한다. 핵심 문제 중 하나는, 관찰된 데이터가 주어졌을 때 그를 가장 잘 표현하는 확률 분포를 모델링하는 것이다.

2.1 이산 확률 변수

  • 이진 확률 변수random variable x{0,1}에서 x=1일 확률을 μ로 두면 p(x=1μ)=μ, p(x=0μ)=1μ이다. 이 분포를 베르누이 분포Bernoulli distribution라 한다.
Bern(xμ)=μx(1μ)1x,E[x]=μ,var[x]=μ(1μ)
  • 관측 D={x1,,xN}이 i.i.d.라면 로그 가능도는 lnp(Dμ)=n{xnlnμ+(1xn)ln(1μ)}이고, nxn을 통해서만 데이터에 의존한다(이는 충분 통계량sufficient statistic). μ로 미분하여 0으로 두면
(2.7)μML=1Nn=1Nxn

으로 표본 평균sample mean이 된다.

  • N개 중 x=1인 관측 수 m의 분포가 이항 분포binomial distribution이다.
(2.8)Bin(mN,μ)=(Nm)μm(1μ)Nm,E[m]=Nμ,var[m]=Nμ(1μ)

2.1.1 베타 분포

  • 베르누이에 베이지안적으로 접근하려면 μ의 사전 분포 p(μ)가 필요하다. 가능도가 μx(1μ)1x 꼴이므로, μ(1μ)의 거듭제곱에 비례하는 사전 분포를 쓰면 사후 분포도 같은 함수 형태를 갖는다. 이 성질을 켤레성conjugacy이라 한다.
  • 사전 분포로 베타 분포beta distribution를 쓴다.
(2.11)Beta(μa,b)=Γ(a+b)Γ(a)Γ(b)μa1(1μ)b1,E[μ]=aa+b,var[μ]=ab(a+b)2(a+b+1)
  • 이항 가능도(2.8)에 베타 사전(2.11)을 곱하고 정규화하면(l=Nm)
(2.15)p(μm,l,a,b)μm+a1(1μ)l+b1

으로 다시 베타 분포가 된다. 사후에서 am만큼, bl만큼 증가하며, a·b는 각각 x=1·x=0유효 관찰수effective number of observation로 해석된다.

그림 2.3 · 사전 a=b=2에 관측 하나(x=1)를 반영하면 사후는 a=3,b=2인 베타 분포가 된다.

  • 관측 수가 늘수록 사후 분포는 더 뾰족해지고(a 또는 b면 분산 0) 불확실성이 꾸준히 감소한다. 이는 베이지안 학습의 일반적 성질로, 데이터를 하나씩 반영하는 순차적sequential 학습이 자연스럽다.

그림 2.2 · 다양한 초매개변수 a,b에 따른 베타 분포.

실습 · 베타–이항 켤레와 순차적 사후 갱신

사전 Beta(2,2)에 관측을 하나씩 반영하면 a+=1(성공) 또는 b+=1(실패)로 갱신되며, 분산이 줄어드는(불확실성 감소) 과정을 확인하세요.

python
a, b = 2.0, 2.0                          # 사전 Beta(2, 2)
def mv(a, b):
    m = a/(a+b); v = a*b/((a+b)**2*(a+b+1)); return m, v
obs = [1, 1, 0, 1, 1, 1, 0, 1]          # 순차 관측 (x=1 → a 증가)
m, v = mv(a, b)
print(f"사전 Beta(a=2, b=2):  평균={m:.3f}, 분산={v:.4f}")
for i, x in enumerate(obs, 1):
    a += x; b += 1-x                     # 켤레 갱신
    m, v = mv(a, b)
    print(f"관측 {i}개 후 Beta(a={a:.0f}, b={b:.0f}): 평균={m:.3f}, 분산={v:.4f}")
print("\n관측이 늘수록 분산이 줄어(사후가 뾰족해짐) 불확실성이 감소한다.")

2.2 다항 변수

  • K개 값 중 하나를 취하는 이산 변수는 원 핫 인코딩one hot encoding으로 K차원 벡터 x(xk 중 하나만 1)로 표현한다. xk=1일 확률을 μk라 하면 p(xμ)=kμkxk이고 kμk=1, E[x]=μ이다.
  • N개 관측의 가능도는 p(Dμ)=kμkmk(mk=nxnk, 충분 통계량)이다. 제약 kμk=1 하에 라그랑주 승수Lagrange multiplier λkmklnμk+λ(kμk1)을 최대화하면 μk=mk/λ, 제약 대입 시 λ=N이므로
μkML=mkN

(xk=1인 관측의 비율)이 된다.

  • m1,,mK의 결합 분포가 다항 분포multinomial distribution이다.
(2.23)Mult(m1,,mKμ,N)=(Nm1m2mK)k=1Kμkmk,(Nm1mK)=N!m1!mK!

2.2.1 디리클레 분포

  • 다항 분포의 켤레 사전 분포가 디리클레 분포Dirichlet distribution이다(0μk1, kμk=1).
(2.25)Dir(μα)=Γ(α0)Γ(α1)Γ(αK)k=1Kμkαk1,α0=k=1Kαk
  • 가능도(2.23)를 곱하면 사후 분포 p(μD,α)kμkαk+mk1로 다시 디리클레 분포가 되어 순차적 성질을 가진다.

그림 2.4 · 세 변수 μ1,μ2,μ3에 대한 디리클레 분포는 kμk=1 제약으로 인해 단체simplex 위로 제한된다.

2.3 가우시안 분포

  • 단일·다변량 가우시안 분포는 각각 다음과 같다(μ: 평균, Σ: 공분산).
N(xμ,σ2)=1(2πσ2)1/2exp{(xμ)22σ2},N(xμ,Σ)=1(2π)D/2|Σ|1/2exp{12(xμ)Σ1(xμ)}
  • 중심 극한 정리central limit theorem에 따라 여러 확률 변수의 합은 변수 수가 늘수록 가우시안에 가까워진다.

그림 2.6 · 균등분포 N개 값의 평균 히스토그램. N이 커질수록 가우시안 형태가 된다.

실습 · 중심 극한 정리

[0,1] 균등분포 N개의 평균이 N이 커질수록 가우시안에 가까워지고, 분산이 112N로 줄어듦을 확인하세요.

python
import numpy as np
rng = np.random.default_rng(0)
trials = 200000
print("N개 균등분포 U(0,1)의 평균 분포:")
for N in [1, 2, 10]:
    m = rng.uniform(0, 1, (trials, N)).mean(1)
    print(f"  N={N:2d}: 표본평균={m.mean():.3f}(이론 0.5), 표본분산={m.var():.4f}(이론 {1/12/N:.4f})")
print("N이 커질수록 평균의 분포가 가우시안에 가까워진다(중심극한정리).")
  • 가우시안의 기하는 지수부의 이차식 Δ2=(xμ)Σ1(xμ)로 드러난다. Δ마할라노비스 거리Mahalanobis distance이며, Σ=I이면 유클리드 거리Euclidean distance가 된다.
  • Σ의 고유분해 Σui=λiui(ui는 정규직교orthonormal)를 쓰면 Σ=iλiuiui, Σ1=i1λiuiui이고, yi=ui(xμ)로 좌표를 바꾸면 Δ2=iyi2/λi이다.

그림 2.7 · 상수 밀도 타원의 축은 공분산의 고유벡터 ui, 축의 길이는 고윳값 λi로 정해진다.

  • 새 좌표 y=U(xμ)에서 야코비안 |J|=1, |Σ|1/2=jλj1/2이므로 p(y)=j1(2πλj)1/2exp{yj2/2λj}D개의 독립 단변량 가우시안의 곱이 된다. 즉 고유벡터 축을 따라 인수분해된다.
  • D에서 완전 공분산은 계산이 비싸므로 대각 행렬diagonal matrix 공분산을 쓰기도 한다. 또 가우시안은 단봉unimodal 분포라 다봉multimodal 분포를 근사하지 못하는데, 잠재 변수latent variable 등으로 이를 해소한다.

2.3.1 조건부 가우시안 분포

  • 결합 분포가 가우시안이면 조건부 분포와 주변 분포도 가우시안이다. xxa(앞 M개)와 xb로 나누고, 정밀도 행렬precision matrix Λ=Σ1을 같은 방식으로 분할하면
Σ=(ΣaaΣabΣbaΣbb),Λ=(ΛaaΛabΛbaΛbb)
  • 지수부의 이차식에 제곱식의 완성completing the square을 적용하면 조건부 분포 p(xaxb)의 평균·공분산을 얻는다.
(2.46–2.47)μab=μaΛaa1Λab(xbμb)=μa+ΣabΣbb1(xbμb)Σab=Λaa1=ΣaaΣabΣbb1Σba

평균은 xb의 일차식, 공분산은 xb에 독립이다(선형 가우시안 모델linear Gaussian model). 분할 행렬 역행렬에서 M1=ABD1CD에 대한 슈어 보수Schur complement라 한다.

실습 · 조건부 가우시안 공식 검증

μab=μa+ΣabΣbb1(xbμb), Σab=ΣaaΣabΣbb1Σba를 몬테카를로 표본과 비교합니다.

python
import numpy as np
rng = np.random.default_rng(1)
mu  = np.array([1.0, 2.0])
Sig = np.array([[2.0, 0.8], [0.8, 1.0]])
xb = 3.0
mu_ab  = mu[0] + Sig[0,1]/Sig[1,1]*(xb - mu[1])      # μ_a + Σ_ab Σ_bb^-1 (x_b-μ_b)
var_ab = Sig[0,0] - Sig[0,1]**2/Sig[1,1]             # Σ_aa - Σ_ab Σ_bb^-1 Σ_ba
print(f"이론 조건부 평균 μ_a|b (x_b={xb}) = {mu_ab:.4f}")
print(f"이론 조건부 분산 Σ_a|b          = {var_ab:.4f}")
X = rng.multivariate_normal(mu, Sig, 2_000_000)
mask = np.abs(X[:,1]-xb) < 0.05
print(f"[MC] x_b≈{xb} 표본에서  x_a 평균={X[mask,0].mean():.4f}, 분산={X[mask,0].var():.4f}")

2.3.2 주변 가우시안 분포

분할 가우시안

결합 가우시안 N(xμ,Σ)x=(xa,xb)로 분할하면, 조건부 분포와 주변 분포는 모두 가우시안이다.

p(xaxb)=N(xaμab,Λaa1),μab=μaΛaa1Λab(xbμb)p(xa)=N(xaμa,Σaa)

그림 2.9 · (좌) 결합 분포 p(xa,xb). (우) 주변 분포 p(xa)(청색)와 xb=0.7의 조건부 분포(적색).

2.3.3 가우시안 변수에 대한 베이지안 정리

  • 선형 가우시안 모델 p(x)=N(xμ,Λ1), p(yx)=N(yAx+b,L1)에서 결합 z=(x,y)의 로그를 이차식으로 정리하면 주변·조건부 분포를 얻는다.
p(y)=N(yAμ+b, L1+AΛ1A)p(xy)=N(x(Λ+ALA)1{AL(yb)+Λμ}, (Λ+ALA)1)

p(x)를 사전, p(xy)를 사후로 보면 이는 가우시안에 대한 베이즈 정리이다. A=I이면 p(y)는 두 가우시안의 컨볼루션convolution(평균과 공분산이 각각 합)이 된다.

2.3.4 가우시안 분포의 최대 가능도

  • i.i.d. 데이터 X=(x1,,xN)의 로그 가능도는 nxnnxnxn(충분 통계량)에만 의존하며, 최대 가능도 해는
μML=1Nn=1Nxn,ΣML=1Nn=1N(xnμML)(xnμML)

2.3.5 가우시안 분포에서의 베이지안 추론

  • 분산 σ2을 아는 상태에서 평균 μ를 추정할 때, 가능도가 μ의 이차식 지수 형태이므로 사전 분포 p(μ)=N(μμ0,σ02)가 켤레다. 사후 분포는
(2.141)p(μx)=N(μμN,σN2),μN=σ2Nσ02+σ2μ0+Nσ02Nσ02+σ2μML,1σN2=1σ02+Nσ2

사후 평균은 사전 평균 μ0와 최대 가능도 해 μML의 절충이다(N=0이면 사전 평균, N이면 최대 가능도 해).

그림 2.12 · 데이터 수가 늘수록 평균 μ의 사후 분포가 최대 가능도 해로 이동·수축한다.

2.3.6 가우시안 분포의 혼합

그림 2.21 · '오래된 믿음' 데이터. (좌) 단일 가우시안은 두 무리를 잡지 못한다. (우) 두 가우시안의 결합은 잘 표현한다.

  • 충분히 많은 가우시안을 선형 중첩하면 거의 모든 연속 밀도를 근사할 수 있다. 가우시안 혼합 분포mixture of Gaussians
p(x)=k=1KπkN(xμk,Σk),kπk=1, 0πk1

N(xμk,Σk)성분component, πk=p(k)혼합 계수mixing coefficient라 하며, 사후 확률 p(kx)책임값responsibilities이라 한다. 로그 가능도 lnp(X)=nln{kπkN(xnμk,Σk)}의 최대화가 학습 목표다(로그 안에 합이 있어 닫힌 해가 없으며, EM을 사용한다 → 7장).

그림 2.23 · 세 가우시안 혼합. (a) 성분별 밀도, (b) 주변 밀도 p(x), (c) 밀도 표면.

2.4 지수족

  • 가우시안 등 많은 분포는 지수족exponential family의 특수 경우다.
(2.194)p(xη)=h(x)g(η)exp{ηu(x)}

η자연 매개변수natural parameter, u(x)x의 함수, g(η)는 정규화 계수로 g(η)h(x)exp{ηu(x)}dx=1을 만족한다.

2.4.1 최대 가능도와 충분 통계량

  • 정규화 조건 (2.195)의 양변을 η로 미분하면 lng(η)=E[u(x)]로, 단순 미분으로 모멘트를 얻는다. i.i.d. 데이터에서 최대 가능도 해는
lng(ηML)=1Nn=1Nu(xn)

으로, nu(xn)을 통해서만 데이터에 의존한다(충분 통계량).

2.4.2 켤레 사전 분포

  • 모든 지수족 분포에는 켤레 사전 분포 p(ηχ,ν)=f(χ,ν)g(η)νexp{νηχ}가 존재하며, 사후 분포는 p(ηX,χ,ν)g(η)ν+Nexp{η(nu(xn)+νχ)}이다.
  • 사전 정보가 불분명할 때는 무정보적 사전 분포uninformative prior로 사전의 영향을 최소화한다.

"Letting the data speak for themselves." — Peter Gould

연습문제

문제 2.1 · 베르누이가 지수족인지 확인

Bern(xμ)=μx(1μ)1x를 지수 형태로 쓴다.

Bern(xμ)=exp{xlnμ+(1x)ln(1μ)}=(1μ)exp{xlnμ1μ}

식 (2.194)와 비교하면 η=lnμ1μ(로짓), u(x)=x, h(x)=1, g(η)=1μ=σ(η)=11+eη이다. 따라서 베르누이는 지수족이며, 자연 매개변수는 로짓, 충분 통계량은 x이다.

문제 2.2 · 우드베리 역행렬 공식

(A+BCD)1=A1A1B(C1+DA1B)1DA1를 증명한다.

풀이. 우변을 X라 두고 (A+BCD)X=I임을 보인다. 전개하면

(A+BCD)X=IB(C1+DA1B)1DA1+BCDA1BCDA1B(C1+DA1B)1DA1

B로 왼쪽, DA1로 오른쪽을 묶으면 가운데가 (C1+DA1B)1+CCDA1B(C1+DA1B)1이 되고, CDA1B=C(C1+DA1B)I를 대입하면 전부 상쇄되어 (A+BCD)X=I이다. 따라서 성립한다.

문제 2.3 · 다항 분포가 지수족인지 확인

p(xμ)=kμkxk=exp{kxklnμk}이므로, η=(lnμ1,,lnμM), u(x)=x, h(x)=1, g(η)=1로 두면 식 (2.194) 형태다. 따라서 지수족이다(단, kμk=1 제약으로 자연 매개변수는 종속적이다. 이를 소거하면 ηk=ln(μk/μM)인 소프트맥스 형태가 된다).

문제 2.4 · 베타 분포의 평균·분산·최빈값

Beta(μa,b)μa1(1μ)b1. 정규화 상수 Γ(a+b)Γ(a)Γ(b)01μa1(1μ)b1dμ=Γ(a)Γ(b)Γ(a+b)를 이용한다.

평균. E[μ]=Γ(a+b)Γ(a)Γ(b)01μa(1μ)b1dμ=Γ(a+b)Γ(a)Γ(b)Γ(a+1)Γ(b)Γ(a+b+1)=aa+b (Γ(a+1)=aΓ(a) 사용).

분산. 같은 방식으로 E[μ2]=(a+1)a(a+b+1)(a+b)를 구하고 var[μ]=E[μ2]E[μ]2=ab(a+b)2(a+b+1).

최빈값. ddμ{(a1)lnμ+(b1)ln(1μ)}=a1μb11μ=0mode[μ]=a1a+b2 (a,b>1).

문제 2.5 · 두 가우시안 합의 미분 엔트로피

x1N(μ1,τ11), x2N(μ2,τ21)이고 x=x1+x2일 때 p(x)=p(xx2)p(x2)dx2이다. p(xx2)=N(xx2+μ1,τ11)이고, 지수부에 제곱식의 완성을 적용하면 두 가우시안의 컨볼루션convolution이 되어

p(x)=N(x | μ1+μ2, τ11+τ21)

즉 평균은 합, 분산은 σ2=τ11+τ21이다. 단변량 가우시안의 미분 엔트로피 공식 H[x]=12{1+ln(2πσ2)}에 대입하면

H[x]=12{1+ln(2π(τ11+τ21))}
PDF