이전글에서 Bayesian Network를 통해 Joint probability를 계산하는 방법에 대해 다뤘다.
이번엔 Likelihood, Conditional Prob., Most Probable Assignment를 inference하는 방법을 배워보자.
우선 기호를 몇가지 약속하고 살펴보자. X는 모든 node, 즉 모든 random variable을 뜻한다. Xv는 evidence로 주어진 varaible을 뜻한다. Xh는 X에서 Xv를 제외한 node들, 즉 hidden variable을 뜻한다. 가령 Xv={도둑, Mary전화}라면 도둑이 들고 Mary가 전화한 event가 관측되었음을 뜻한다. P(Xv)= Σ_Xh P(Xh,Xv)를 통해 우린 해당 evidence가 관측될 joint probabilty를 구할 수 있다. 이는 즉, 도둑과 Mary전화라는 node의 T/F값을 고정시켜놓고 나머지 hiddle variable에 대한 T/F값을 2^3하여 해당사건들의 발생확률의 합을 구한것이다.
P(J|A), P(M|A), P(A|B,E), P(B), P(E)에 대한 확률분포가 주어졌다고 가정해보자. P(Xv)를 구하려면, Σ_E Σ_A Σ_J P(E,A,J,B=T,M=T)를 구해야한다. 이 때 factorization하면 P(B)와 P(M|A)는 각 0.001, 0.7로 고정됨을 확인할 수 있다. 그리고 E,A,J에 대한 T/F 경우의 수 8개를 모두 구한 뒤 이들을 더하면 P(MC=T, B=T)를 구할 수 있다.
두번째로 inference할 것은 conditional probability이다. Conditional prob.은 given evidence일 때 특정 r.v의 label을 추정하기 위해 사용된다.
Xh는 사실 interested variable Y와 not interested Z로 양분될 수 있다. P(Y|Xv)=Σ_z P(Y, Z=z|Xv)로 계산된다. 이를 또다시 전개하면 Σ_z {P(Y, Z, Xv) / Σ_y,z P(Y=y, Z=z, Xv)}가 된다. 즉
이를 기반으로 P(A|B=T, MC=T)를 구해보자. Alarm은 우리가 알고싶은 hidden variable이다. B, MC는 given evidence이고 나머지 E와 JC는 not interested이기 때문에 Z로 취급한다. P(A|B,MC)를 구하기 위해선 P(A=T, B=T, MC=T, Z=T/F)를 구해야하기 때문에 Σ_z를 취해준다. 그리고 이 확률은 B=T, MC=T인 가능세계에서 벌어진 것이기 때문에 P(B=T, MC=T)를 분모로 나눠주면 된다. 이는 위에서 살펴본 likelihood inference를 통해 구할 수 있다.
자세하게 살펴보면 P(A=T, B=T, MC=T까지는 고정이고 Z인 E와 J에 대해 marginalize out해줘야하는데 이는 E=T/F, J=T/F인 case를 모두 더해주는 것과 같다. 따라서 분자에는 4가지 full joint prob의 합이 위치한다. 분모에는 A마저 T/F로 나뉘니까 총 8가지의 full joint prob을 더해준 확률값이 분모에 위치한다.
conditional prob.을 inference한 것을 바탕으로 P(A|B=T, MC=T)를 argmax하는 theta를 찾을 수 있다. 가령 given B,E일 때 P(A|B,E)를 하는 것은 예측과도 같은데 그 예측의 성능을 높여주는 theta를 업데이트해나갈 수 있는 것이다.
'기계학습 > ML' 카테고리의 다른 글
[ML개론] (23) Potential Function & Belief Propagation Algorithm (0) | 2022.03.01 |
---|---|
[ML개론] (22) Marginalization & Elimination (1) | 2022.02.26 |
[ML개론] (20) Bayes Ball Algorithm & Factorization (0) | 2022.02.26 |
[ML개론] (19) Bayesian Network (0) | 2022.02.25 |
[ML개론] (18) Review on Probability (0) | 2022.02.25 |