베이지안 통계를 한다는 것은
우리가 익히 잘 아는 베이즈 정리(Bayes' theorem)는 다음과 같습니다:
$$ P(A \mid B) = \frac{P(B \mid A)P(A)}{P(B)}. $$
$B$라는 사건이 일어난 상태에서 $A$가 발생할 확률을 계산하는 방법인데, 여기선 단순히 이 식에 대한것이 아니라 베이지안 통계 그리고 추론을 한다는 것의 의미를 알아보도록 합시다.
보통 우리가 사용하는 통계적 추론은 빈도 확률론자(frequentist)의 관점을 사용합니다. 시행의 결과를 보고, 가장 그럴듯한 확률을 추정하는 방법이죠. 그러나 때로는 어떤 확률값이 어때야 한다, 같은 일종의 선입견을 갖고 있는 상태에서 확률을 계산하고 싶을수도 있습니다. 이러한 '선입견'을 수치화 해서 계산에 포함시키고자 하는게 베이지안 확률론자의 관점이 가지고 있는 기본 철학이라고 볼 수 있습니다.
여러가지 예시를 들 수 있지만, 약간 복잡하면서도 확실하게 두 관점을 구분할 수 있는 문제를 소개해볼게요. 동전을 10번 던졌을때 나온 결과를 기록한걸 $r$이라고 해봅시다. 예를들어 앞면이 연속으로 8번 나오고 그 뒤로 뒷면이 2번 나왔다면 $r = \text{HHHHHHHHTT}$ 가 됩니다. 그리고 $\mu(p)$을 $P(H) = p$인 동전이라고 합시다. 즉, $p$는 확률값이고 $0 \leq p \leq 1$ 를 만족하겠죠? 우리가 원하는건, 과연 이 동전이 대체 무슨 모양이길래 이 $r$이라는 결과가 나왔는가? 하는 것을 알아보는 문제입니다. 이를 수식으로 써보면 다음과 같이 됩니다:
$$ \hat{p} = \underset{p}{\text{argmax}} \, P(r \mid \mu(p)). $$
수식을 다시 천천히 읽어볼까요? $\mu(p)$이라는 동전을 던졌을때 그 결과가 $r$일 확률이 가장 높은 $p$을 구한다, 즉 $r$이라는 결과를 만들어내는 동전은 대체 무슨 모양이냐? 하는것입니다.
단순하게 생각해서, 가령 $r$이 앞면 8번, 뒷면 2번의 결과로 기록되었다면, 대략 $\hat{p} = 0.8$이 적절한 값임을 유추해볼 수 있습니다.
최댓값을 계산할때는 미분해서 0이 나오는 점을 찾으면 되겠죠? 실제로 $\hat{p} = 0.8$이 나오는지를 계산 해봅시다. 어떤 $r$에서 앞면이 $i$번, 뒷면이 $j$번 나왔다고 했을때 다음의 과정을 진행해볼 수 있습니다:
$$ \begin{align} P(r \mid \mu(p)) &= p^{i} (1 - p)^{j} \\ \frac{d}{dp} P(r \mid \mu(p)) &= i p^{i - 1} (1 - p)^{j} - j p^{i} (1 - p)^{j - 1}, \end{align} $$
$$ \begin{align} 0 &= i p^{i - 1} (1 - p)^{j} - j p^{i} (1 - p)^{j - 1} \\ \Rightarrow 0 &= i (1 - p) - j p \\ \Leftrightarrow 0 &= i - ip - jp \\ \Leftrightarrow 0 &= i - (i + j)p, \end{align} $$
$$ \therefore \hat{p} = \frac{i}{i + j}. $$
예시 상황대로 $i = 8, j = 2$를 대입해보면 $p = 0.8$이 잘 나옵니다.
굉장히 당연한 계산처럼 보이지만, 사실 우리는 앞면이 나올 확률이 80%씩이나 되는 동전이 흔하게 존재할리 없다는것을 알고 있습니다. 이러한 '선입견'을 어떻게 계산식에 넣을 수 있을까요?
우리가 미분해서 얻은 저 $\hat{p}$라는 값은, 단순히 가장 그럴싸한 것을 추정 (최대 가능도 추정 혹은 maximum likelihood estimation, 일명 MLE라고도 합니다) 한 것입니다. 다시 말하자면, "10번 던져서 8번씩이나 앞면이 나온 동전의 모양은 보나마나 $\mu(0.8)$일 것이다" 하고 추정한 것이죠.
여기서 '선입견'의 개념을 살짝 넣어서 위 문장을 다시 쓰면: "10번 던져서 8번씩이나 앞면이 나온 동전의 모양을 $\mu(0.8)$로 추정을 했는데, 이런 모양의 동전이 있는건 크게 이상한 일이 아니므로 이렇게 추정하는것에는 별 문제가 없다"가 됩니다. 뒷 부분을 잘 보면 그동안 우리는 선입견을 반영하지 않고 단순하게 미분만 했다는걸 얼추 알 수 있습니다.
좀 더 극단적인 예시를 들어볼까요? 동전을 100번 던졌는데 앞면이 100번 나왔다고 합시다. 이때 위와 같은 방법으로 추정을 하면 $\hat{p}$의 값은 1이 될텐데, 이를 글로 길게 풀어서 써보면 다음과 같습니다: "100번이나 던졌는데 모두 앞면이 나온 결과를 봐선 이 동전은, 비록 앞면과 뒷면이 모두 있지만, 아무리 던져봤자 앞면밖에 안나오는 마법의 동전이고, 내가 살고 있는 이 세계에선 이런 마법의 동전이든 앞면 뒷면 나올 확률이 각각 반반이 동전이든 어느것도 그다지 신기한 동전은 아니며, 다시 말하자면 자판기에서 콜라를 사고 거스름돈으로 받은 동전이 $\mu(1)$일 확률이나 $\mu(0.5)$일 확률이나 모두 같다 (uniform distribution). 따라서 보통 어떤 동전이 가장 많은지에 대한 선입견(prior) 없이, 결과만 보고 가장 그럴싸한 $\hat{p}$의 값을 바로 선택(MLE)하는건 정당한 추론이다."
이렇게 생각해보면 위에서 사용한 방법으로 $\hat{p}$의 값을 구하는게 좀 이상하긴 합니다. 우리의 이 '선입견' 상으로는, 세상에는 앞면 뒷면 나올 확률이 얼추 반반인 동전이 아무래도 가장 많습니다. 앞면 뒷면이 모두 있는데 어떻게 던져도 무조건 앞면만 나오는 동전이 있을리 없으니까요. 누군가에게 동전을 받았다면 그 동전이 $\mu(0.5)$일 확률이 $\mu(1)$일 확률보단 아무래도 높지 않을까요? 즉, 이 동전의 모델 $\mu(p)$는 $p$에 대해 어떠한 분포를 갖고 있을것입니다!
이를 확률밀도함수(probability density function, 일명 PDF) $f$로 표현해봅시다. 좋은 모델은 아니지만 대략 다음과 같이 모델링을 해볼 수 있습니다:
$$ P(\mu(p)) = f_{\mu}(p) = 6p(1 - p). $$
이 함수는 $p = 0.5$일때 값이 가장 높으며, 0부터 1까지, 즉 $p$의 전체 범위에서 적분한 값이 1입니다 (직접 해보세요!) 따라서 일단은 확률밀도함수의 조건을 만족합니다. 게다가 우리의 선입견을 어느정도는 반영 해줬습니다: "세상에는 앞면 뒷면 나올 확률이 얼추 반반인 동전이 아무래도 가장 많을 것이다!"
그럼 이제 이러한 선입견을 사용해서 다시 $\hat{p}$ 값을 추정해봅시다.
문제를 약간 바꿔야하는데, 위에선 "어떤 동전이길래 이런 결과가 나왔지? 어떤 동전으로 가정해야 이런 결과가 가장 높은 확률로 나오지?"를 묻는 문제고, 여기선 "이런 결과가 나왔는데, 세상에 존재하는 동전의 분포도 같이 고려해 봤을때 어떤 동전일 확률이 가장 높지?"가 됩니다. 둘 다 정당하게 $\hat{p}$를 추정하는 식이지만, 상황이 다르기 때문에 다르게 계산을 합니다. 참고로 후자처럼 선입견을 반영해서 추정을 하는 과정을 최대 사후 확률 추정(maximum a posteriori, 일명 MAP)라고 합니다.
저 위에 있는 MLE식과 다른 점은, 동전 자체의 확률값을 같이 고려해야한다는 점입니다.
잠깐! 사실 이 MAP는 MLE의 상위호환 같은 개념이 아닙니다. MLE는 말 그대로 시행 결과의 가능도(likelihood)가 가장 높게 나올 경우를 추정하는 것이고, MAP는 "어떤 선입견이 있는채로 시행을 했는데, 그 결과를 보고 선입견을 수정하는 과정"에 가깝습니다. 그래서 이름도 "사후 확률 추정"이구요. 따라서 실제로 구하고 싶은 값은 수정해야할 선입견(prior)이고, 다음과 같이 표현됩니다:
$$ \hat{p} = \underset{p}{\text{argmax}} \, P(\mu(p) \mid r). $$
다만 이 식은 직접 계산하기가 까다롭죠. 어디서부터 출발을 해야겠는지 모르는 식입니다. 그래서 베이즈 정리를 사용합니다:
$$ P(\mu(p) \mid r) = \frac{P(r \mid \mu(p))P(\mu(p))}{P(r)}. $$
고맙게도, $r$은 이미 시행의 결과입니다. 따라서 $P(r)$의 값을 상수라고 볼 수 있는것이죠 (다만, 직접 구하는게 가능합니다. 한번 해보세요! 힌트: 베이지안 정리를 사용합니다). 그래서 다시 식을 정리했더니 (위에 잠깐 썼던) 다음의 식으로 귀결되는 것입니다:
$$ \hat{p} = \underset{p}{\text{argmax}} \, P(r \mid \mu(p))P(\mu(p)). $$
이 식은 MLE와 마찬가지 요령으로 미분해서 0이 나오는 점을 찾으면 되겠죠? $\mu(p)$에 대한 확률밀도함수도 적당한것을 가정했으니, 직접 계산을 할 수 있습니다. 계산 과정은 생략하겠습니다 (직접 해보세요!)
이 MAP로 추정한 결과는 $\hat{p} = 0.75$가 나옵니다. MLE로 했을때보다는 조금 낮은 수치죠? 아무래도 $\mu(0.8)$ 보단 $\mu(0.75)$가 세상에는 더 많이 존재할거라고 믿었기 때문입니다. 극단적으로, 만약 세상에 $\mu(0.5)$ 말고 다른 형태의 동전이 존재하지 않는다고 강한 선입견을 가지고 있다면, 1000번 던져서 1000번 앞면이 나오더라도 MAP의 추정 결과인 $\hat{p}$은 항상 0.5로 나올겁니다.
한편으론, 평범한 동전을 가정하고 시행을 했는데 1000번 중 앞면이 999번쯤 나왔으면, 이제는 평범한 동전이 아니라고 의심을 해봐야합니다. 위에서 MAP를 할때는 $\text{argmax}$를 써서 $\hat{p}$의 값을 구했으나, 실제로 MAP라는 과정을 수행 할때는 보통 이런식으로 $\hat{p}$의 값을 확정짓지 않고 "시행 결과를 보고 수정한 선입견" 자체를 그대로 사용합니다. 즉, 이 상황 이후에 또 한번 추정을 할 일이 있다면, 이제는 $P(\mu(p))$를 사용하지 않고 $P(\mu(p) \mid r)$을 사용하는 것입니다. 이렇게 시행을 여러번 하면서 차츰 선입견을 업데이트 하는 과정을 베이지안 갱신(Bayesian update)라고 합니다. 그리고 이게 바로 통계적 머신러닝에서의 "학습"입니다.
🐍 여담1. 보통 선입견은 정규 분포로 모델링을 자주 합니다. 선입견의 대표값(평균값)과 그 강도(표준편차)를 모델링하기 쉽기 때문입니다.
🐍 여담2. 여기서 선입견의 '강도'라는 개념이 기이한 현상을 불러일으키는데요, 일명 false positive paradox라 불리우는 현상입니다. 요약하면, 어떤 질병을 검사하는 키트의 정확도가 매우 높다 하더라도, 그리고 그 키트의 결과가 양성이라고 나왔더라도, 정말로 검사 받은 사람이 질병에 걸렸을 확률은 생각보다 낮을 수 있다는 것입니다. 왜냐면 우리의 '선입견' 상으로 그 질병은 걸릴 확률이 낮으니까요 (관련 글).
이런 식으로 우리는 기존에 가지고 있었던 어떠한 '선입견'의 개념을 수치화해서 계산에 넣을 수 있습니다. 이러한 사고방식을 바로 베이지안 통계학이라고 부르며, 다양한 머신러닝 알고리즘의 근간을 이루고 있습니다. 통계적 머신러닝이란 결국 이 베이지안 통계학의 원칙 하에서, 선입견을 조금씩 수정하는 과정이라고 볼 수 있습니다.
🐍 마지막 여담. 통계에 익숙한 사람이라면 MLE, MAP, EM(expectation-maximization) 등을 자유자재로 다루고, 다양한 분포를 사용해서 사후 확률을 추정해보고, 켤레 사전 분포(conjugate prior distribution)를 활용해서 편리한 모델링을 해보는 과정을 많이 겪으셨을 것입니다. 이는 통계적 머신러닝의 밑바탕이기 때문에, 통계만 공부해봤고 머신러닝은 안해봤다면, 당장 시도해봐도 좋을것입니다. 가끔 농담으로 머신러닝을 '중고급통계응용'이라고 부르기도 합니다. 반면 딥러닝으로 시작을 했으나 머신러닝 관련 커리어를 길게 이끌고 싶다면, 틈틈히 통계 공부를 하는것이 장기적으로 도움이 될 것입니다.