더 이상 tistory 블로그를 운영하지 않습니다. glanceyes.github.io에서 새롭게 시작합니다.

새소식

AI/AI 수학

[인공지능 기초] Uncertainty(2) - 결합 확률과 조건부 확률 그리고 베이즈 정리

  • -

 

지난 글에서 우리는 이 세상의 많은 일들이 확률에 의존한다는 것을 알았고, 사건에 관한 확률을 다룰 때 명제로 표현하여 사용한다는 점을 확인했다. 또한 증거(evidence)가 기존에 알고 있던 정보를 달라지게 할 수 있으므로 앞으로 증거에 유의해서 보자는 말을 덧붙였다. 이 글에서는 확률을 공부할 때 필수로 알아두면 좋을 몇 가지 정리를 살펴보고, 새로운 지식(결과)인 증거가 주어졌을 때 그 이전의 지식(원인)이 무엇인지를 추정하는 데 도움이 되는 베이즈 정리에 관해 알아보고자 한다. 지난 글에서 이어지는 내용이므로 좀 더 명확한 이해를 원한다면 이전 글을 참고하는 것을 추천한다.

 

 

확률적인 추정을 위한 확률과 사건 그리고 명제

 

[인공지능 기초] Uncertainty (1) - 확률적인 추정을 위한 확률과 사건, 그리고 명제

들어가기 전에 이 세상의 많은 일들은 확률적인 경우가 많다. 그 상황에서 우리는 자신의 목적에 가장 부합하면서 확률적으로 발생 가능성이 높거나 낮은 것을 고려하여 최선의 선택을 하려고

glanceyes.com

 

 

 

결합 확률과 조건부 확률

 

결합 확률

 

결합 확률과 결합 확률 분포

 

결합 확률(joint probability)둘 이상의 사건이 동시에 발생할 확률이다. 이러한 결합 확률의 분포(joint probability distribution)는 둘 이상의 사건(랜덤 변수)에 할당 가능한 각각의 모든 값에 관해 그 확률이 어떠한지를 구한 것이다. 이는 지난 글에서 설명했다시피 사건은 랜덤 변수로 볼 수 있고, 그러한 랜덤 변수들 각각이 지닐 수 있는 값을 하나의 sample point로 해석할 수 있다. 그러므로 결합 확률 분포를 구한다는 건 둘 이상의 랜덤 변수로 만들 수 있는 각각의 모든 sample point가 발생할 확률을 구하는 것과 동일하다.

두 사건 $A$, $B$가 동시에 발생하는 결합 확률은 $P(A, B)$ 또는 $P(A \wedge B)$라고 쓸 수 있다. 앞으로 확률의 사건이 "$,$(comma)"로 연결되어 있으면 $\wedge$(and)로 연결된 것처럼 동시에 발생하는 결합 확률로 해석하면 된다.

예를 들어 날씨가 어떠한 상태인지를 뜻하는 랜덤 변수인 $\text{Weather}$와 충치에 걸렸는지 여부를 뜻하는 랜덤 변수인 $\text{Cavity}$가 있다고 하자. $\text{Weather}$는 $\left\{\text{sunny}, \text{rain}, \text{cloudy}, \text{snow}\right\}$의 4개의 값 중 하나를 지닐 수 있고, $\text{Cavity}$는 $\left\{true, false\right\}$의 boolean 값을 지닐 수 있다고 가정한다. 그러면 다음과 같이 이 두 랜덤 변수에 관한 결합 확률 분포를 지닐 수 있다.

 

$\text{Weather}$ $\text{sunny}$ $\text{rain}$ $\text{cloudy}$ $\text{snow}$
$\text{Cavity} = true$ $0.144$ $0.02$ $0.016$ $0.02$
$\text{Cavity} = false$ $0.576$ $0.08$ $0.064$ $0.08$

 

랜덤 변수가 너무 많지 않으면 위처럼 충분히 표로 결합 확률 분포를 나타낼 수 있다. 모든 랜덤 변수가 해석하는 방법도 간단하다. 날씨가 맑으면서 충치를 걸리지 않을 확률인 $P(\text{Weather} = \text{sunny}, \text{Cavity} = true)$는 위의 표에서 $\text{Weather}$ 값이 $\text{sunny}$이고 $\text{Cavity}$가 $false$인 entry의 값을 찾으면 되므로 $0.576$이다.

$\text{Weather}$가 $\text{sunny}$인 확률도 어렵지 않게 구할 수 있다. $\text{Weather}$가 $\text{sunny}$이면서 $\text{Cavity}$가 $true$인 entry와 $false$인 entry에 대응되는 확률 값을 더하면 된다. 이처럼 모든 랜덤 변수의 도메인 내 확률에 관한 어떠한 질문이라도 올 때 우리는 위의 표를 가지고 모두 답할 수 있으며, 이는 지난 글에서 설명한 바처럼 모든 사건은 sample point의 집합으로 표현할 수 있어서다.

 

 

결합 확률 분포와 공간복잡도

 

위의 예시에서는 결합 확률 분포에 필요한 랜덤 변수가 두 개이므로 적은 편이어서 크게 상관이 없지만, 만약 결합되는 랜덤 변수가 늘어나면 세부적으로는 각 랜덤 변수의 도메인 크기에 따라 차이는 있지만 전반적으로 지수적으로(exponentially) 공간복잡도(space complexity)가 늘어날 수 밖에 없다. 결합 확률 분포에서 필요로 하는 독립적인 entry의 수를 구해보면 왜 공간복잡도가 큰지를 이해할 수 있다. 만약 세 개의 사건 $A$, $B$, $C$이 모두 boolean 값을 도메인으로 지니고, 이 사건들에 관한 결합 확률인 $P(A, B, C)$를 확률 분포 표로 나타냈을 때 최소 필요한 entry 값의 개수는 $2^3 - 1 = 7$개이다. 왜 $1$을 빼는지 의문이 들 수 있는데, 어차피 나머지 $7$개의 entry 값이 정해지면 이들을 제외한 $1$개의 entry 값은 나머지 $7$개의 entry 합을 $1$에서 빼주면 되므로 확률 분포표를 구성하는 데 필요한 최소 entry 수는 $7$개이다.

 

 

 

조건부 확률과 독립

 

사전 확률

 

이전에 우리는 증거(evidence)를 새롭게 주어지는 정보로 보자고 했고, 그 증거가 주어짐에 따라 이전에 알고 있던 정보를 바꿀 수 있다고 했다. 그러면 그 증거가 주어지기 전에 이전에 알고 있던 정보를 토대로 하는 확률을 사전 확률(prior)과 연관지을 수 있다.

사전 확률은 어떠한 새로운 증거가 오기 이전에 알고 있던 믿음(belief)에 대응되는 확률이며, 증거 등 다른 임의의 정보에 제약되지 않으므로 unconditional probability라고도 한다. 예를 들어 $P(\text{Cavity} = true)$, $P(\text{Weather} = \text{sunny})$처럼 새롭게 주어지는 정보가 아니면서 조건부 확률이 아니면 사전 확률이다.

대체로 사전 확률은 이전에 알고 있던 전제를 기반으로 하므로 문제에서 이미 값이 주어지는 경우가 많다. 베이즈 정리에서 더 자세히 설명하겠지만, 충치와 직접적으로 관련된 또는 그렇지 않은 사람의 어떠한 진단 결과만을 가지고 그 사람이 실제로 충치를 지니고 있을 확률을 구해야 할 때, 일반적인 사람이 충지를 가지고 있을 확률처럼 관찰 또는 실험에 의해 알려진 정보인 사전 확률을 사용하는 것처럼 말이다.

 

 

조건부 확률

 

어떤 임의의 정보 $A$가 주어진(given) 상태에서 어떠한 사건 $B$가 발생할 확률을 조건부 확률이라고 하며, $P(B|A)$라고 쓴다. 이는 $A$라는 사건으로 주어진 상황을 제약하는 상태에서 사건 $B$에 관한 확률이므로 '조건부'라는 말이 용어에 나온다고 볼 수 있다. 이 $P(B|A)$를 결합 확률 항을 사용하여 다음과 같이 정의할 수 있다.

 

$$ P(B|A) = \frac{P(A \wedge B)}{P(A)}\, (\text{if} \; P(b) \ne 0) $$

 

정의를 있는 그대로 해석해보면, 정보 $A$로 제한되었을 때 사건 $B$가 발생할 확률은 정보 $A$가 일어날 확률을 분모로 제한한 상황에서 정보 $A$와 사건 $B$가 동시에 발생할 확률을 분자로 계산한 값과 같다.

이때 $A$가 새롭게 주어지는 정보인 증거(evidence)에 해당되면 $P(B|A)$는 사후 확률이다. 종종 사후 확률인 $P(B|A)$를 해석할 때 $A$를 $B$보다 나중에 발생한 사건이고 $B$가 $A$보다 먼저 발생한 사건으로 설명하는 경우가 있는데, 이는 $A$가 증거인 경우 시점인 기존에 알려진 정보 또는 이전에 발생한 사건인 $B$보다 시간(순서)상 뒤에 온다고 해석하는 관점에서 나온 것이다. 증거가 기존에 정보에서 추가로 새롭게 주어지는 정보라는 걸 고려하면 자연스러운 해석이라고 볼 수 있겠다. 주의할 점은 사후 확률과 조건부 확률은 완전히 다른 개념이라고 보기는 어렵고, 사후 확률이 조건부 확률에 속한다고 볼 수 있다. 즉, 조건부 확률에서 'given'으로 주어진 정보가 증거에 해당되면 그 조건부 확률은 사후 확률이다.

예를 들어 치통이 있다는 사건(정보)을 $\text{toothache}$라고 하고, 충치가 있다는 사건을 $\text{cavity}$라고 하자. 여기서 사건을 소문자로 쓴 것은 각 사건에 해당되는 랜덤 변수를 $\text{Toothache}$, $\text{Cavity}$처럼 대문자로 시작하는 단어로 가정할 때 각 랜덤 변수가 $true$라는 값을 지니는 걸 뜻한다. 즉, $\text{toothache}$는 $\text{Toothache} = true$이고, $\text{cavity}$는 $\text{Cavity} = true$이다. 앞으로 이 글에서 boolean 값을 도메인으로 지니는 어떤 랜덤 변수가 소문자로 시작한다면 그 랜덤 변수가 $true$라는 값을 지닌다고 이해하면 된다. 이는 이 글 시리즈 뿐만이 아니라 여러 교재에서도 암묵적인 약속처럼 쓰이는 불문율이다. 어떠한 사람이 치통이 있다는 정보를 알고 있을 때 그 사람에게 충치가 있을 확률은 $P(\text{cavity} | \text{toothache})$로 쓸 수 있고, 이것이 바로 조건부 확률이다. 만약 $\text{toothache}$가 어떠한 관찰 또는 진단에 의해 새롭게 주어진 정보이면 이는 사후 확률이다.

 

 

독립

 

그러나 새로운 정보인 증거가 무조건 기존의 정보와 연관되어 있다고 보기 어려울 수도 있다. 예를 들어 충치를 가지고 있는지 여부인 $\text{Cavity}$가 그 날의 날씨인 $\text{Weather}$와는 관계가 없을 수도 있다. 이때 "$\text{Cavity}$와 $\text{Weather}$가 서로 독립(independent)이다"라고 말하며, "서로 irrelevant하다"라고도 한다. 정확하게 어떤 두 사건 $A$와 $B$가 서로 독립인 경우를 정의하면 다음과 같다.

 

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

 

서로 독립인 사건이 각각 다른 사건의 조건부로 주어졌을 때, 조건부로 주어진 정보에서 사건의 랜덤 변수가 어떠한 값을 갖든 간에 어떠한 사건이 발생할 확률을 구하는 데는 상관이 없다는 뜻이다.

어떤 둘 이상의 사건이 서로 독립이라는 조건이 주어지면, 조건부 확률에서 항을 더 간단히 줄일 수 있다. 세 사건 $A$, $B$, $C$가 존재한다고 가정하고, $A$와 $C$가 서로 독립이라고 가정한다. 그러면 $P(A|B, C)$는 $P(A|B)$로 더 간단하게 바꿀 수 있다.

$$ P(A|B,C) = P(A|B) $$

 

 

 

 

확률에 관한 정리

 

본격적으로 베이지안 네트워크(Bayesian network)를 공부하기 전에 필수로 알아두어야 할 세 가지의 정리에 관해서 살펴보고자 한다. 이 정리들은 앞으로 확률을 공부하는 데 있어서 자주 등장하면서 사용하는 정리들이므로 스스로 여러 번 써 보면서 반드시 익힐 필요가 있다. 백 번 강조해도 모자랄 만큼 정말 중요하다.

 

 

Product Rule과 Chain Rule

 

Product Rule

 

곱의 법칙(Product Rule)은 결합 확률을 조건부 확률 항을 사용하여 나타내기 위한 용도로 사용된다. 일반적으로 문제에서 결합 확률을 알려주기보다는 조건부 확률과 사전 확률을 제시하는 경우가 많으므로 곱의 법칙은 문제를 해결하는 데 있어서 매우 중요한 성질이다.

어떠한 두 사건 $A$, $B$가 동시에 발생할 확률인 $P(A \wedge B)$를 조건부 확률인 $P(A|B)$ 또는 $P(B|A)$를 사용하여 정의하면 다음과 같다.

 

$$ P(A \wedge B) = P(A, B) = P(A | B) P(B) = P(B | A)P(A) $$

 

어렵게 생각할 필요 없이 정의를 있는 그대로 해석하여 받아들이면 된다. 사건 $A$와 $B$가 동시에 발생할 확률은 $B$가 발생한 후, 사건 $B$가 발생한 것으로 제한된 상태에서 $A$가 발생할 확률과 같다. 이와 유사한 맥락 하에서 사건 $A$와 $B$가 동시에 발생할 확률은 $A$가 발생한 후, 사건 $A$가 발생한 것으로 제한된 상태에서 $B$가 발생할 확률과 같은 것이다. 즉, 곱의 법칙은 둘 이상의 사건이 동시에 발생하는 결합 확률을 구할 때 단순히 두 사건에 관해 발생 순서를 정하여 순서대로 일어난다고 해석해도 된다.

 

 

Chain Rule

 

Chain Rule의 정의

 

이를 일반화 한 것이 바로 chain rule인데, 여러 사건에 관한 결합 확률을 구할 때 연쇄적으로 곱의 법칙을 적용한 것이라고 보면 된다. $n$개의 사건 $X_1$부터 $X_n$까지의 모든 사건이 동시에 발생할 확률을 구하는 식은 chain rule을 적용했을 때 아래와 같이 표현할 수 있다.

 

$$ \begin{align} P(X_1, \dots, X_n) &= P(X_1)P(X_2|X_1)P(X_3|X_1,X_2) \cdots P(X_n|X_1, X_2, \dots, X_{n-1})\\ &= \prod_{i = 1}^n P(X_i|X_1, \dots, X_{i-1}) \end{align} $$

 

다시 말해, 사건 $X_1$부터 $X_n$까지의 모든 사건이 동시에 발생할 확률은 $X_1$이 먼저 발생하고, $X_1$이 발생한 상황에서 $X_2$가 발생하고, $X_1$과 $X_2$가 발생한 상황에서 $X_3$가 발생하고... 이를 사건 $X_n$까지 반복하면 결과적으로 모든 사건이 동시에 발생하는 것과 같으며 이게 바로 chain rule의 의미이다.

 

 

Chain Rule이 유용한 이유

 

일부 사건이 서로 독립인 경우, chain rule을 사용하여 결합 확률 항을 조건부 확률 항으로 바꿈으로써 전체 도메인에 관해 필요로 하는 독립적인 항의 개수를 줄일 수 있다. 앞서 boolean 값을 도메인으로 지니는 세 개의 사건 $A$, $B$, $C$가 동시에 발생하는 $P(A, B, C)$에 관한 확률 분포를 구할 때 필요로 하는 최소 entry 개수는 $7$개였다. 이 $P(A, B, C)$를 chain rule을 사용하여 조건부 확률 항으로 표현하면 다음과 같이 분해된다.

 

$$ \begin{align} P(A, B, C) = P(A)P(B|A)P(C|A,B) \end{align} $$

 

만약 사건 $A$와 $C$가 독립일 때, 위처럼 분해하면 얻게 되는 이점이 무엇이 있을까? 원래 $A$, $B$, $C$ 각각의 랜덤 변수가 어떠한 값을 지닐지를 일일이 고려해야 하므로 그 경우의 쌍이 $2^3$처럼 지수적으로 증가했지만, chain rule을 사용하여 $P(A)$, $P(B|A)$, $P(C|A,B)$로 항을 분해함으로써 필요로 하는 entry 수를 줄일 수 있다.

또한 chain rule은 이후 시리즈 내용에서 등장할 HMM(Hidden Markov Models)에서 특정 시점의 확률을 추론할 때 사용되는 핵심적인 정리이므로 꼭 익혀두는 것을 권장한다.

 

 

Bayes 정리

 

Bayes 정리의 의미

 

Bayes 정리를 이해하기 전에 이전 글에서 정리했던 '증거'의 의미를 같이 고려하는 게 필요하다. 앞서 우리는 '증거'가 기존에 알고 있던 정보를 달라지게 할 수 있는 새롭게 주어진 정보를 의미한다는 걸 배웠다. Bayes 정리는 증거가 주어졌을 때 기존에 알고 있던 정보에 관한 믿음이 어떻게 변하였는지 그 사후 확률을 알아보기 위해 유용한 정리이며, 증거를 사건 $B$라고 하고 기존의 정보에 대응되는 사건이 $A$라고 할 때 다음과 같이 정의할 수 있다.

 

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

 

Bayes 정리는 product rule에서 쉽게 도출할 수 있다. 사건 $A$와 $B$가 동시에 발생할 확률을 발생 순서상 $A$가 먼저 발생한 후 $B$가 발생한 확률로 보는 것으로도 볼 수 있지만, 사건 $B$가 먼저 발생한 상황을 가정한 후 그 이후에 사건 $A$가 발생한 확률을 구하는 관점에서도 바라볼 수 있다. 즉, Bayes 정리는 새롭게 정의된 정리이기 보다는 기존의 product rule의 관점을 해석하는 관점을 바꾼 것이다.

 

$$ P(A, B) = P(A) P(B|A) = P(B) P(A|B) $$

 

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

 

 

Bayes 정리와 Normalization

 

Bayes 정리에서 $P(A|B)$를 정확한 값으로 계산해야 하는 경우도 존재하지만, 아래처럼 $P(B)$ 값을 직접 사용하지 않고 normalization term인 $\alpha$를 사용하여 정리하는 경우도 적지 않다.

 

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

 

 

증거에 관한 확률이 명확히 정해진 경우 또는 해결해야 하는 문제에서 $P(A|B)$ 값을 정확히 구해야 하는 경우는 normalization term을 사용하지 않고 직접 계산하여 구한다. 그러나 normalization term을 사용하는 경우는 $P(B)$ 값을 직접 고려하지 않고 사건이자 랜덤 변수인 $A$가 가질 수 있는 값에 따라 확률 값이 어떤지 그 확률 분포를 구하겠다는 의미를 갖고 있다. 즉, 사건 $A$가 가질 수 있는 값에 따라서 나타나는 확률 분포에서 각 확률 값을 모두 합했을 때 1이 되도록 정규화 하겠다는 것이다.

여기서 왜 normalization term을 사용하는 것인지 의문이 들 수 있다. 사건 $B$가 발생한 것을 전제로 할 때 그 사건 $B$가 발생했을 확률 자체가 중요할 수도 있지만, 이미 사건 $B$가 발생했다고 가정한 상황에서 굳이 사건 $B$가 얼만큼의 확률로 발생을 했는지를 고려할 필요가 없는 경우도 존재한다. 왜냐면 사건 $B$는 이미 전제로서 발생했다고 가정하고 그 전제 하에서 사건 $A$가 지닐 수 있는 값에 따라 어떠한 확률 분포를 보이는지만 찾아도 되는 상황이 있기 때문이다. 그래서 HMM(Hidden Markov Models)에서 filtering, smoothing, Viterbi 알고리즘 등 HMM을 응용할 때 bayes 정리를 사용하면서 normalization term을 같이 쓸 때가 많다. 이는 추후 다른 글에서 관련 문제를 풀어볼 때 확인해 볼 것이다.

 

 

Marginalization

 

마지막으로 확률에서 자주 사용하는 정리 중 하나인 marginalization이 있으며, 'summing out'이라고도 말한다. Marginalization은 어떤 사건에 관한 확률을 구해야 하는데 그 자체로 확률 값을 계산하기 어려운 경우 쓰이는 정리이며, 구하고자 하는 사건과 연관된 숨겨진 hidden variable이 지닐 수 있는 모든 값에 관한 결합 확률의 합($\sum$)을 이용한다. 이 정리도 마찬가지로 product rule을 응용한 것인데, 어떠한 두 사건에 관한 결합 확률이 사전에 주어진 경우 다른 한 사건에 관한 확률은 그 외의 사건이 지닐 수 있는 결합 확률의 값을 합한다.

확률을 구하고자 하는 사건을 $Y$라고 하고, 사건 $Y$와 다른 어떤 사건 $Z$에 관한 결합 확률이 사전에 주어졌다고 가졍하자. 그러면 $P(Y)$를 구하는 식은 다음과 같이 정리할 수 있다.

 

$$ P(Y) = \sum_{z}P(Y, z) = \sum_{z}P(z)P(Y|z) $$

 

이 정리를 언제 사용하는지 잘 감이 안 온다면 앞서 나온 예시를 다시 한 번 들어보자.

 

$\text{Weather}$ $\text{sunny}$ $\text{rain}$ $\text{cloudy}$ $\text{snow}$
$\text{Cavity} = true$ $0.144$ $0.02$ $0.016$ $0.02$
$\text{Cavity} = false$ $0.576$ $0.08$ $0.064$ $0.08$

 

위의 예시에는 두 개의 사건 $\text{Weather}$과 $\text{Cavity}$가 존재한다. 만약 우리가 $P(\text{Weather} = \text{sunny})$ 값을 구해야 한다고 가정한다. 그러나 위의 결합 확률 분포표에서 $P(\text{Weather} = \text{sunny})$ 값 자체를 찾을 수는 없다. 그래서 우리는 사건 $\text{Weather}$와 연관된 $\text{Cavity}$라는 hidden variable을 사용하여 marginalization을 수행한다.

 

$$ \begin{align} P(\text{Weather} = \text{sunny}) &= \sum_{\text{Cavity}}P(\text{Weather} = \text{sunny}, \text{Cavity})\\ &= P(\text{Weather} = \text{sunny}, \text{Cavity} = true) + P(\text{Weather} = \text{sunny}, \text{Cavity} = false)\\ &= 0.144 + 0.576 = 0.72\end{align} $$

 

$P(\text{Weather} = \text{sunny})$ 값을 구하기 위해 hidden variable인 사건 $\text{Cavity}$가 가질 수 있는 값을 모두 summing out한 식으로 바꿔서 구한 과정이다.

Marginalization은 product rule과 같이 사용되면서 bayesian network, HMM 등 다양한 정리에서 응용되어 사용되므로 익숙해질 필요가 있다.

 

 

이제까지 배운 내용을 간단히 노트로 정리해보면 다음과 같다.

 

Contents

글 주소를 복사했습니다

부족한 글 끝까지 읽어주셔서 감사합니다.
보충할 내용이 있으면 언제든지 댓글 남겨주세요.