2019년 12월 7일 토요일

Artificial Intelligence - Bayes' Theorem (Alarm, Earthquake, Burglary Problem)

Bayesian network의 기반이 되는 Bayes' theorem에 대한 포스팅이다.
추후 베이지안 네트워크에 대해서 포스팅하려고 한다.

이 포스팅 전에 아래 포스팅을 참고하면 좋을 것이다.
https://parksuseong.blogspot.com/2019/12/artificial-intelligence-chain.html


우리는 조건부 확률 정의에 의해 P(A|B) = P(A∧B)/P(B) 와 P(B|A) = P(A∧B)/P(A) 임을 알고 있다.

Bayes' theorem은 P(A|B) = P(B|A) * P(A) / P(B) 이다.
풀어보면 B가 주어졌을 때 A의 확률은 A가 주어졌을 때 B가 일어날 확률 * A의 확률 / B의 확률이다.

즉 다음처럼 정리할 수 있다.


이러한 정의가 왜 필요할까?



맹장으로 진단할 확률 변수 App과 백혈구 수가 일정수준 이상일 확률을 나타내는 확률 변수를 Leuko라고 가정하자.

만약 실제상황에서 백혈구 수가 높은데 맹장염일 가능성을 추정해야하는 경우가 생기기 때문이다.

몇 가지의 지식이 미리 알려져있다면 구하기 어려운 확률을 구하는데 사용할 수 있다는 것이 Bayes's Theorem의 목표라고 할 수 있다.

즉, 맹장염일 때 백혈구의 수치는 높다가 아닌 백혈구 수치가 높을 때 맹장염일 확률을 구할 수 있다는 것이다.

위의 표에 의해서 만약 P(App|Leuko)를 구해야한다면 다음과 같다.

P(App|Leuko) = P(Leuko|App) * P(App) / P(Leuko) = 0.82 * 0.28 / 0.54 = 0.43이다.

다른 유명한 예를 살펴보자.

A : 알람(Alarm), E : 지진(Earth quake), B : 도둑(Burglary)
- 도둑이 들었을 때도 알람이 울린다.
- 도둑이 들었을 때는 알람이 울릴 확률은 99%이다.
- P(A|E) = 0.99 (지진이 났을 때 알람이 울릴 확률 99%)
- P(A) = 0.1 (알람이 울릴 확률은 10%이다.)
- P(E) = 0.001 (지진이 날 확률은 0.1%이다.)

이를 통해 알람이 울렸을 때 지진이 일어날 확률을 구해보자.
P(E|A) = P(A|E)P(E)/P(A) = 0.99 * 0.001 / 0.1 = 0.01

만약 도둑이 들 확률을 P(B) = 0.001로 가정해보자.
그렇다면 알람이 울렸을 때 도둑이 들 확률도 구할 수 있다.
P(B|A) = P(A|B)P(B)/P(A) = 0.99*0.001/0.1 = 0.01

이는 제시되어 알고 있는 지식 중에 도둑이 들었을 때 알람이 울릴 확률은 99%이지만 알람이 울렸을 때 도둑이 들었을 확률은 1%이다라는 것을 알 수 있다.

마무리를 하면 베이즈 정리(이론)은 이미 알고 있는 확률을 이용해서 복잡하거나 구하기 어려운 확률을 구하는데 사용되며 이는 Bayesian Network에서 원인과 결과를 그래프로 나타내는 실용적 모델에 사용되며 추후 포스팅하도록 하겠다.

댓글 없음:

댓글 쓰기

2022년 회고

 올해는 블로그 포스팅을 열심히 못했다. 개인적으로 지금까지 경험했던 내용들을 리마인드하자는 마인드로 한해를 보낸 것 같다.  대부분의 시간을 MLOps pipeline 구축하고 대부분을 최적화 하는데 시간을 많이 할애했다. 결국에는 MLops도 데이...