Posts List

[AI] 8. Probability

이 글 다음부터 다루게 될 Baysian network, Hidden Markov model 등 Probabilistic Reasoning에서 확률에 대한 기본적인 지식을 요구한다. 따라서 이번 글에서는 앞으로 자주 마주치게 될 확률에 대한 기본 지식을 학습해보자. 

※ 지금까지 학습한 것은 optimal policy를 찾기 위한 Search & Planning 문제였다. 반면 Probabilistic Reasoning은 상황을 이해(Understanding) 하는 기술이다. (원인을 찾는다거나, 음성 인식, 로봇이 지도를 이해하는 것 등)

확률 분포 (Probability Distributions) 

어떤 상황이 일어날 확률을 표현 한 것. 만약에 일어날 수 있는 상황의 확률이 모두 같다면 Uniform Distribution 이라고 한다. 불확실성(Uncertainty)이 굉장히 큰 상황

Joint Distributions

동시에 사건이 일어날 수 있는 확률. 모든 사건의 확률의 합은 1.0이다. 다만 Joint Distribution 계산량은 굉장히 크다. 모든 Joint Distribution을 구한다는 것은 Probabilistic Model을 구하는 것이다. (모든 일어날 상황의 확률을 안다는 뜻)

Event


동시에 일어날 사건들의 집합을 event라 한다. 즉, 우리의 목표는 event의 joint 확률을 구하는 것이다. (ex. Probability that it's hot and sunny?)

Marginal Distribution


Joint Distribution에서 변수를 하나씩 삭제시키는 것. 예를 들어 P(T, W)가 주어졌을 때, P(T)를 구하고 싶으면 P(T=hot)일 때 확률을 모두 더하고 P(T=cold)일때 확률을 모두 더하면 된다.

Conditional Probabilities


한 사건이 일어난 뒤에 다른 사건이 일어날 확률. 위 그림에서는 T=cold일 때 W=sun일 확률이다. Venn diagram으로 묘사하면 a와 b의 교집합(a∩b)을 b집합으로 나누어 주는 것이다. 이미 일어난 사건을 evidence라 부른다. 

Normalization


marginal distribution을 합이 1이 되게 정규화 하는 것.

Probabilistic Inference (확률적 추론)

어떤 알려진, 관찰 가능한 사건(evidence)의 확률로부터 관계(모델)을 활용해 hidden variable의 확률(belief)을 알아 내는 것. ex) observable evidence(물웅덩이)를 보고 hidden variable(비)의 확률을 알아 내는 것

Inference(추론) by Enumeration(열거, 목록)



확률 추론의 가장 기본이며 단순한 방법이다. 확률 표가 있다고 가정하자. 추후엔 이 표를 Baysian learning 등으로 학습할 예정이지만 지금은 알고 있다고 하자. 먼저 관찰 가능한, 알고 있는 evidence 중 원하는 사건을 골라낸다. 그리고 hidden variable을 없애 주기 위해 Marginalization 후 Normalize 해 주면 된다. 위 그림은 E = {e1, e2 ... ek}가 일어난 후 Q가 일어난 확률을 구하는 것을 이미지로 표현한 것이다. 
예를 들어 P(W | winter, hot) : 계절이 winter이면서 온도는 hot일때 날씨를 추론하고자 할 때, Evidence는 winter, hot이고 Query variable은 sun과 rain이다.
  • 먼저 원하는 evidence들만 뽑아내면 2줄만 남는다. 밑에서 (3~4번째 줄)
  • hidden variable이 없으니 바로 normalization 해준다.
  • P(W=sun|winter, hot) =  0.1 / 0.15 = 0.67
    P(W=rain|winter, hot) = 0.05 / 0.15 =0.33

Product Rule

conditional 확률과 marginal확률을 곱하면 joint가 된다.
→ 사실상 conditional probability를 다르게 표현한 것

Chain Rule

Product rule을 일반화 한 것. (참고로 Markov assumption은 현재 state는 직전의 state만 관련 있다고 가정 했으니 P(x1, x2 ... xn) = ΠP(xi | xi-1) 로 가정한 것.)

Bayes' Rule

사실상 Joint 확률은 순서를 바꿔도 상관없다는 특징을 이용해서, (x, y가 동시에 일어날 확률 = y, x가 동시에 일어날 확률) 그 식을 다르게 표현한 것인데 생각보다 큰 의미가 있다.
만약 x가 원인이고 y가 결과라고 하자. 일반적으로 우리는 P(y | x), 즉 x(원인)라는 사건이 있을 때 y(결과)가 일어날 확률을 추정한다. (가능성 : likelihood)
하지만 Bayes' Rule은 P(x | y), 즉 y가 일어 났을 때 x가 원인일 확률을 추론(Inference) 할 수 있게 하는 식이다.
※ 추후에 배우겠지만 P(y | x)를 likelihood, P(x)를 prior, P(y)를 evidence라 한다.
※ P(cause|effect)는 사후확률(posterior probability)
   P(effect|cause)는 사전확률(prior probability)로 볼 수 있다.
간단한 예로 감을 잡아보자.
우린 맑은날 dry하고 비가 오는날 wet 하다는 것을 경험적으로 알고 있다. (likelihood)
그리고 맑을 확률과 비가올 확률을 알고 있다면
Bayes' Rule에 의해서 dry한 날에 비가 왔었을 확률을 구할 수 있다.
P(rain | dry) = P(dry | rain) * P(rain) / P(dry)
                = 0.3 * 0.2 / 0.6 = 0.1
※ P(dry)는 dry와 wet으로 marginal distribution 후 normalize해서 구한다.

한가지 더 예를 알아보자.

우린 ghost의 위치는 모른다 (hidden variable) 하지만 위와 같이 ghost와 떨어진 거리에 따라 cell 테두리에 색이 다르다고 하자. 다만 센서에 noise가 있고, 그 확률은 알고 있다고 가정 하자. (likelihood) 우리가 알고 싶은 것은 센서를 보고 ghost가 어디 있는지 알아 맞추고 싶은 것이다.


  • Prior : P(G) = 각 거리별로 ghost가 있을 확률은 동일'했었다.'
    (센서가 켜지지 않았으니까, 잘 모를 땐 uniform distribution)
  • Likelihood : P(R | G) = 센서의 성능을 우리가 알고있다.
    (ex. G라는 거리에 ghost가 있을 때, yellow가 켜질 확률)
  • Posterior : P(G | R) = 센서 리딩이 발생했을 때 각 셀에 ghost가 있을 확률
  • Evidence : P(R) = 센서가 켜질 확률

위와 같이 variable이 정의 될 수 있고, 비록 P(R)은 주어지지 않았지만, Bayes' Rule에 따라 P(G | R)이 P(G)P(R|G)에 비례할 것이란 것은 알 수 있다. 실제로 (1,1)셀에 센서에 노란색이 들어왔을 때 2칸 떨어진 곳에 ghost가 있을 확률이 가장 높게 계산된 것을 알 수 있다.



댓글 쓰기

0 댓글