머신러닝&딥러닝/베이지안

베이지안 딥러닝 (1) - 기초 정리 (베이즈룰,ML,MAP)

Like_Me 2020. 10. 11. 16:14
반응형

  딥러닝에서 Uncertainty 추정에 관심을 갖다 보니 베이지안 딥러닝이 자주 보인다. 하지만 통계를 전공하지 않아 어려움이 많았다. 그래서 따로 기초부터 심화까지 정리를 하려고 한다. 우선 가장 기초인 베이즈 룰부터 시작한다. 베이즈 룰의 수식은 아래와 같다.

$$P(B|A) = \frac{P(B \cap A)} {P(A)} = \frac{P(A \cap B)} {P(A)} = \frac{P(A|B) P(B)} {P(A)} $$

*$(P(A \cap B) = P(A|B)P(B))$

 

  이때 각각의 수식이 어떤 용어로 불리며 어떤 의미를 가지고 있는지를 잘 이해하고 있어야 뒤에 나오는 내용들을 이해하기 쉽다. 우선 $P(B|A)$ 는 구하고자 하는 값으로 Posterior Probability라고 하며 사후 확률이라고도 한다. 이 값을 바로 구하면 좋겠지만 대부분은 그러기 힘들다. 그래서 우리는 오른쪽에 나열된 식들의 값을 하나하나 구해서 사후 확률을 구하는 것이다. $\frac{P(A|B) P(B)} {P(A)}$ 의 식에서 $P(A|B)$ 는 Likelihood Probability 라고 하며 우도라고도 한다. 수식에서 보이는 것처럼 A와 B가 바뀐 상황에서의 조건부 확률 값이다. P(B)는 Prior Probability로 사전 확률이라고 하며 B에 대한 확률분포를 의미한다. P(A)는 Evidence라고 하며 A에 대한 확률분포를 의미한다.

 

  이런 식으로 식만 보고 이해하기는 힘드므로 예시를 들어보는 것이 이해하는데 훨씬 도움이 된다. 내가 누군가와 싸웠는데 그 사람이 먼저 내게 사과를 하였다고 가정해본다. 이때 그 사람은 정말 내게 미안해서 사과를 한 것인가 궁금하다. 이에 대해 확률로 표현해보면 P(미안함|사과)이다. 반대로 사과는 했지만 미안하지 않은 경우는 P(안 미안함|사과)이다.

사과

추가로 통계 조사 결과 미안한 사람이 상대에게 사과를 줄 확률이 40%이고 미안하지 않은 사람이 상대에게 사과를 줄 확률이 30%라고 가정한다. 이는 각각 P(사과|미안함) = 40% , P(사과|안 미안함) = 30%로 likelihood를 나타낸다. Posterior를 추정해보려고 하는데 Prior를 알지 못하므로 추정을 해보려고 한다. Prior는 싸웠을 때 미안해하는 사람에 대한 분포이다. 아마 사람이라면(?) 미안해할 확률이 높지 않을까 가정하여 70%라고 추정해본다. 이를 그림으로 나타내면 아래와 같다.

즉, 우리가 구하는 Posterior P(미안함|사과)는 $\frac {P(사과|미안함) * P(미안함)} {P(사과)} = \frac{0.28} {0.28+0.09} = 75 $% 가 된다.  반대로 Posterior P(안 미안함|사과) = $\frac{0.09} {0.28 + 0.09} = 24$% 가 된다. 그러므로 Maximum-A-Posterior(MAP)는 사과를 한 사람이 미안해한다고 결론 내린다.

만약 Prior를 가정하기 힘든 경우에는 Maximum-Likelihood(ML)를 구해야 한다. 이는 간접적으로 더 높은 확률을 찾는 것으로 위의 경우에서는  P(사과|미안함) = 40% , P(사과|안 미안함) = 30% 이다. 따라서 MAP와 마찬가지로 사과를 한 사람이 미안해한다고 결론지을 수 있다. 하지만 이 방법은 정확하지 않으며 Prior 확률이 같다는 가정을 하여 근사적 해를 구하는 것이다.

MAP가 더 정확한 방법이지만 Prior Probability를 알거나 구해야 하므로 ML을 사용하는 게 더 나을 수 있다. 실제 Neural Network나 머신러닝을 사용하여 학습을 시킬 때는 보통 ML을 이용한다.

 

 

반응형