본문 바로가기
베이지안 통계는 가우시안(정규분포)도 쌉가능 - Conjugate?

Uniform 분포가 어떻게 변해가는지 봤으니까, 통계에서 아주 좋아하는 가우시안도 이런 식으로 가능해야 하지 않겠는가. 하는 이야기 편.

다음의 문제를 한번 보시죠. 

평균 m은 평균이 3이고, 분산이 1인 정규분포를 따른다고 합시다. 
이때 분산이 1이고 평균이 m인 정규분포에서 데이터 x=4를 관측했다고 해 보시죠. 그랬을 때 평균 m의 분포는 어떻게 될까요? 복잡해 보이지만, 풀어서 단순하게 이해해 보겠습니다. 

일단 정규분포-가우시안-분포의 식을 다시 한번 상기해 보면 

$$ f(x; \mu , \sigma) = \cfrac{1}{\sqrt{2\pi \sigma^2} \cdot}e^{-\frac{(x-\mu)^2}{2 \sigma^2}} $$ 

인데요, σ²가 분산, μ가 평균인 가우시안의 분포입니다. 자, 여기서부터 시작해 봅시다. 달달하죠?

먼저 Prior 즉, 사전 확률 분포는 - 연속 분포라서 f라는 notation을 사용하겠습니다. - 평균이 3인 평균 m이니까요,

$$ f(m) = \cfrac{1}{\sqrt{2\pi} \cdot}e^{-\frac{(m-3)^2}{2}} $$ 이거 잖아요? 그리고 Likelihood는 평균이 m인 정규분포에서 4를 봤어요.
$$ f(x=4|m) = \cfrac{1}{\sqrt{2\pi}}e^{-\frac{(4-m)^2}{2}}  $$

Evidence는 $$ f(x=4) $$ 가 됩니다. 후후. 그러면 이게 게임 오바입니다. 

posterior 사후확률 $f(m|4)$ 는 한마디로 4를 보았을 때 갱신되는 평균의 분포가 되겠죠?  
$$f(m|4)=\cfrac{f(x=4|m) \cdot f(m)}{f(x=4)} = \cfrac{\cfrac{1}{\sqrt{2\pi}}e^{-\frac{(4-m)^2}{2}} \times \cfrac{1}{\sqrt{2\pi}}e^{-\frac{(m-3)^2}{2}}}{f(x=4)} $$ 가 되겠습니다. 

척척 진행되고 있는데 말이죠, 이게 신기하게도 지수 형태의 곱으로 되어 있으니까, 지수는 걍 더하기 빼기 사칙연산을 할 수 있겠습니다. 이걸 지수만 계산해 보면, 

$$\begin{aligned}
& (4-m)^2 + (m-3)^2 \\
= & 16 - 8m + m^2 + m^2 -6m +9 \\
= & 2m^2 - 14m + 25 \\
= & 2(m^2 -7m) + 25  \\
= & 2\left(m^2 -7m + \cfrac{49}{4} -\cfrac{49}{4}\right) + 25 \\
= & 2\left(m^2 -7m + \cfrac{49}{4} \right) -\cfrac{49}{2} + 25 \\
= & \cfrac{\left(m-\cfrac{7}{2}\right)^2}{\frac{1}{2}} + C
\end{aligned}$$

결국, Posterior는 

$$ C e^{\cfrac{-(m-\frac{7}{2})^2}{1/2}} $$ 의 모양새가 됩니다. - 여기에서 C는 Exponential을 제외한 나머지는 모두 상수로 퉁칠 수 있으니까, 이 분포를 전체 적분하면 면적이 1이 되는 어쩌구 저쩌구 해서 나오게 되는 상수입니다. 그러니까 이 C는 $\int^\infty_{-\infty} C e^{\cfrac{-(m-\frac{7}{2})^2}{1/2}} = 1$을 이용해서 C를 구할 수 있는데, 이걸 이용해서 C를 어찌 어째 구해보면, $\cfrac{1}{\sqrt{2\pi\frac{1}{4}}}$가 됩니다아아. 꺄 -

그러면 최종적으로 Posterior는 
$\cfrac{1}{\sqrt{2\pi\frac{1}{4}}} e^{\cfrac{-(m-\frac{7}{2})^2}{2 \cdot 1/4}}$ 가 되고요, 이것은 평균이 7/2이고, 분산이 1/4인 Gaussian이 된다는 이야기 입죠. 오, 생각보다 훨씬 간단하군요. 

어. 숨 가쁘게 뭔가 계산을 했긴 했는데요, 이게 무슨 뜻이냐면 원래 평균이 3이고, 분산이 1인 평균 m이 말이죠 분산이 1이고 평균이 m의 데이터 분포로부터 4를 목격했더니, 결국 평균이 7/2=3.5이고, 분산이 1/4로 더 샤프하게 update 되었습니다. 아하. 이것이 바로 베이지안 추론을 하는데, 확률뿐 아니라 분포도 update 할 수 있구나 하는 점입니다. 후후.

여기에 혹시라도 Prior에 자신이 없다면 사전 평균의 분포를 그냥 Uniform으로 두고 해도 됩니다.  그렇긴 하지만, 계산이 엄청 복잡해집니다.라는 점. 그리고 어차피 평균이라는 게 가우시안을 따르는 편이 말이 되니까 이런 식으로 하는 편이 제일 쉽습니다. 

결국, 이런 결과를 그림으로 다시 보면, 4를 목격했더니 분포가 원래 3이었던 평균이 4쪽으로 좀 더 이동했다는 사실입니다. 

 

간단하쥬? 베이지안 사고법은 다 이런 식입니다. 이게 다야? 뭔가 더 있는 건 아닐까 하는 생각이 들 정도죠.

자, 이제 희번득, 여러 개를 관측한 경우로 일반화하면!

Prior는 

$$ P(m) = \mathcal{N}(m_0, \sigma^2_0)=\cfrac{1}{\sqrt{2\pi\sigma_0^2}}e^{-\cfrac{(m-m_0)^2}{2 \sigma_0^2}}$$

잖아요?

그리고 Likelihood는 말이죠 

$$ P(x_i |m, \sigma^2_D) = \mathcal{N}(x_i ; m, \sigma^2_D)=\cfrac{1}{\sqrt{2\pi\sigma_D^2}}e^{-\cfrac{(x_i-m)^2}{2 \sigma_D^2}}$$

이고, 여러 개를 관측했을 때, 모든 관측은 독립적인 정규분포로 가정할 수 있다면!!!!, 

$$ P(x_1,\cdots,x_N | m) = \prod_{i=1}^{N}\mathcal{N}(x_i | m) $$ 이런 식으로 Likelihood를 곱의 형태로 나타낼 수 있습니다. 그러니까,

$$ = \prod_{i=1}^{N} \mathcal{N}(x_i, ; m, \sigma^2_D  )=\prod_{i=1}^{N}\cfrac{1}{\sqrt{2\pi\sigma^2_D}}e^{-\cfrac{(x_i-m)^2}{2 \sigma^2_D}} $$

이런 식이 됩니다. 이걸 이용하면 Posterior를 구할 수가 있는데, 결국 Posteriror가 Likelihood에 Proportional 하므로,

$$ P(m|x_1,\cdots , x_N) \propto P(x_1,\cdots,x_N | m)P(m) $$ 인 관계를 갖겠죠. 결국,
$$ P(m|x_1,\cdots , x_N)  \propto \prod_{i=1}^{N}\cfrac{1}{\sqrt{2\pi\sigma^2_D}}e^{-\cfrac{(x_i-m)^2}{2 \sigma^2_D}} \cfrac{1}{\sqrt{2\pi\sigma^2_0}}e^{-\cfrac{(m-m_0)^2}{2 \sigma^2_0}} = \cfrac{1}{\sqrt{2\pi\sigma^2_{new}}}e^{-\cfrac{(m-m_{new})^2}{2 \sigma^2_{new}}}  $$  의 관계가 됩니다아. 아까 계산한 거랑 똑같죠? 심쿵

이때 

$$ m_{new} = \cfrac{\sigma^2_D}{N\sigma_0^2+\sigma_D^2} + \cfrac{N \sigma_0^2}{N\sigma^2_0 + \sigma_D^2}\cfrac{\sum_i x_i}{N} \\
\cfrac{1}{\sigma^2_{new}} = \cfrac{1}{\sigma_0^2} + \cfrac{N}{\sigma^2_D}$$

의 관계를 갖습니다.만 이건 잊는 편이 낫겠습니다. 일반화 이야기는 Likelihood가 관측치가 서로 독립이라면 곱의 형태로 나타나니까 곱해서 계산하면 되니까요. 이렇게 일반화 유도도 가능하다 정도로 알고 있으면 되지, 이걸 외우고 다니면 미치셨어요?라는 말을 듣게 되니 조심해야 합니다. 휴. 괜한 이야기를 했나 봅니다. 

방금 뭔가 신기한 현상을 보았는데, 가우시안 Prior를 넣었더니 가우시안 Posterior가 나오는 것을 목격했습니다. 사전분포가 어떤 식이라도, 사후 분포가 사전 분포와 동일한 분포가 나와야 계산이 편리하고, 혹시나 사후 확률이 또 사전 확률이 되는 무한궤도를 돌릴 거면 그런 경우가 되어야 무한궤도를 돌리기 좋겠죠? 그렇기 때문에 특정 Likelihood에 대해서 사후분포와 사전 분포가 같은 분포가 나오는 경우들의 사전 분포를 Likelihood에 대한 켤레(Prior Conjugate)라고 이야기합니다. 물론 켤레가 아니더라도 문제는 없습니다만, 계산이 무지막지하게 어려워지는 문제가 있어서 그런 상황만은 피하는 것이 상책입니다. Conjugate이야기도 따로 해야 할 지경이 되었네요.

친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -



댓글





친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -