베이즈 정리와 머신 러닝에서의 쓰임

J. Hwang·2024년 1월 9일
0

베이즈 정리는 두 random variable 의 사전 확률과 사후 확률 사이의 관계를 나타내는 정리이다.

조건부 확률 (conditional probability)

베이즈 정리를 이해하기 위해서는 먼저 조건부 확률의 개념을 짚고 가야 한다. 조건부 확률이란, 어떤 사건이 일어났다는 전제 하에 다른 사건이 일어날 확률을 의미한다. 조건부 확률은 P(AB)P(A|B)와 같이 쓰는데, 이는 B 사건이 일어났을 때 A 사건이 일어날 확률이라는 의미이다. 따라서 조건부 확률은 P(AB)=P(AB)P(B)P(A|B) = \frac{P(A∩B)}{P(B)} 와 같이 계산할 수 있다.

베이즈 정리 (Bayes' theorem)

베이즈 정리에 따르면, 아래와 같은 식이 성립한다.

P(AB)=P(BA)P(A)P(B)P(A|B) = \frac{P(B|A)P(A)}{P(B)}

여기서 P(AB)P(A|B) = posterior probability (사후 확률)
P(BA)P(B|A) = likelihood (가능도, 우도)
P(A)P(A) = prior probability (사전 확률)

즉, 베이즈 정리는 prior와 likelihood를 이용해서 posterior probability를 계산하는 것이 핵심이다.

베이즈 정리와 머신 러닝

그렇다면 베이즈 정리가 머신 러닝에서 중요한 이유는 무엇일까?
P(AB)P(A|B)는 B 사건이 일어났을 때 A 사건이 일어날 확률이므로, B가 원인이고 A가 결과라고 볼 수 있다. 즉,

P(결과원인)=P(원인결과)P(결과)P(원인)P(결과|원인) = \frac{P(원인|결과)P(결과)}{P(원인)}

인 것이다. 그런데 보통 우리는 어떠한 원인으로부터 일어난 결과를 관측해서 알고 있고, 그 원인을 추정하기 어려운 경우가 많다. 따라서 식을 다시 정리해보면 아래와 같다.

P(원인결과)=P(결과원인)P(원인)P(결과)P(원인|결과) = \frac{P(결과|원인)P(원인)}{P(결과)}

따라서 베이즈 정리를 이용하면, 위와 같이 이미 알고 있는 P(결과원인)P(결과|원인), P(원인)P(원인), P(결과)P(결과) 를 통해 P(원인결과)P(원인|결과)를 새롭게 추정할 수 있다.
즉, 베이즈 정리의 "관측된 결과로부터 원인을 예측할 수 있는 특성"이 머신 러닝에 유용하게 적용되는 것이다!

베이즈 정리 예제

Q. 상자 A, B, C가 있다. 상자 A에는 B 또는 C를 고를 수 있는 선택지가 10개 있는데, B라고 쓰인 것이 6개, C라고 쓰인 것이 4개 있다.
상자 B와 C에는 구슬이 10개씩 들어 있다. 상자 B에는 빨간 구슬이 2개, 파란 구슬이 8개, 상자 C에는 빨간 구슬이 6개, 파란 구슬이 4개 있다.
상자 A에서 선택지를 뽑아 상자 B와 C 중에서 구슬을 고를 상자를 선택하고, 선택된 상자에서 구슬을 뽑는 과정을 거친다. 이렇게 뽑은 구슬이 빨간색일 때, 상자 B와 C 중 어느 상자에서 나왔을까?

A.
P(B빨간구슬)=P(빨간구슬B)P(B)P(빨간구슬)P(B|빨간 구슬) = \frac{P(빨간 구슬|B)P(B)}{P(빨간 구슬)} = 210610610210+410610\frac{\frac{2}{10}*\frac{6}{10}}{\frac{6}{10}*\frac{2}{10}+\frac{4}{10}*\frac{6}{10}} = 13\frac{1}{3}

P(C빨간구슬)=P(빨간구슬C)P(C)P(빨간구슬)P(C|빨간 구슬) = \frac{P(빨간 구슬|C)P(C)}{P(빨간 구슬)} = 610410610210+410610\frac{\frac{6}{10}*\frac{4}{10}}{\frac{6}{10}*\frac{2}{10}+\frac{4}{10}*\frac{6}{10}} = 23\frac{2}{3}

P(C빨간구슬)P(C|빨간 구슬) > P(B빨간구슬)P(B|빨간 구슬)이므로, 상자 C에서 나왔을 확률이 더 높다.

References

https://en.wikipedia.org/wiki/Bayes%27_theorem
https://en.wikipedia.org/wiki/Conditional_probability

profile
Let it code

0개의 댓글