🔗 관련 문서: Wikipedia - 베이즈 정리
베이즈 정리(Bayes' Theorem)는 새로운 증거(evidence)가 주어졌을 때, 어떤 사건이 일어날 확률을 갱신(update)하는 방법을 알려주는 확률 이론이다. 18세기 영국의 수학자 토마스 베이즈(Thomas Bayes)의 이름에서 유래했다.
인공지능은 대부분 불확실성(uncertainty)이 있는 상황에서 판단을 내려야 한다. 스팸 메일인지 아닌지, 이 환자가 병에 걸렸는지 아닌지, 이 이미지가 고양이인지 아닌지 등은 100% 확신할 수 없는 문제들이다. 베이즈 정리는 이러한 상황에서 사전에 가지고 있던 믿음(사전확률)을 관찰된 데이터(증거)로 보정하여 더 정확한 결론(사후확률)에 이르도록 해 준다.
\[ P(A \mid B) = \frac{P(B \mid A)\, P(A)}{P(B)} \]
이 식은 "사건 B가 관찰되었을 때, 사건 A가 일어날 확률"을 구하는 공식이다. 말로 풀어 쓰면 다음과 같다.
베이즈 정리의 공식 \( P(A \mid B) = \dfrac{P(B \mid A)\, P(A)}{P(B)} \)에 등장하는 네 가지 확률은 각각 다음과 같은 의미를 가진다.
\[ P(B) = P(B \mid A)\,P(A) + P(B \mid \lnot A)\,P(\lnot A) \]
베이즈 정리가 실제로 어떻게 쓰이는지, 의료 검진 상황을 예로 들어 처음부터 끝까지 계산해 보자.
비율(%)만으로는 감이 잘 안 올 수 있으니, 사람 10,000명이 있다고 가정하고 실제 인원 수(자연빈도, natural frequency)로 바꾸어 그려 보면 훨씬 이해하기 쉽다.
[Step 1] 기호와 주어진 값 정리
\( D \): 질병에 걸린 사건, \( + \): 검사 결과가 양성인 사건이라고 하면, 문제에서 주어진 값은 다음과 같다.
\[ P(D) = 0.005 \; (\text{유병률}), \qquad P(+ \mid D) = 0.98 \; (\text{민감도}), \qquad P(- \mid \lnot D) = 0.90 \; (\text{특이도}) \]
민감도(sensitivity)는 "실제 환자 중 검사에서 양성이 나올 확률", 특이도(specificity)는 "실제로 병이 없는 사람 중 검사에서 음성이 나올 확률"을 뜻한다. 우리가 최종적으로 구하려는 값은 사후확률 \( P(D \mid +) \), 즉 "양성 판정을 받은 사람이 실제로 병에 걸려 있을 확률"이다.
[Step 2] 거짓양성률(false positive rate) 구하기
특이도가 90%라는 것은, 병이 없는 사람 중 10%는 검사에서 거짓으로 양성이 나온다는 뜻이다.
\[ P(+ \mid \lnot D) = 1 - P(- \mid \lnot D) = 1 - 0.90 = 0.10 \]
[Step 3] 전체 양성률 \( P(+) \) 구하기 — 전체확률의 법칙
양성 판정은 "실제 환자가 양성으로 옳게 나온 경우"와 "건강한 사람이 양성으로 잘못 나온 경우" 두 가지로 나뉘어 발생한다.
\[ P(+) = P(+ \mid D)\,P(D) + P(+ \mid \lnot D)\,P(\lnot D) \] \[ = (0.98)(0.005) + (0.10)(0.995) = 0.0049 + 0.0995 = 0.1044 \]
[Step 4] 베이즈 정리 적용 — 사후확률 계산
\[ P(D \mid +) = \frac{P(+ \mid D)\,P(D)}{P(+)} = \frac{0.0049}{0.1044} \approx 0.047 \]
즉, 양성 판정을 받은 사람이 실제로 이 질병을 가지고 있을 확률은 약 4.7%에 불과하다.
Q. 어떤 질병의 유병률은 0.5%이고, 이 질병을 진단하는 검사의 민감도(sensitivity)는 98%, 특이도(specificity)는 90%이다. 이 검사에서 양성 판정을 받은 사람이 실제로 질병을 가지고 있을 확률(사후확률)에 가장 가까운 값은?
정답 ②
해설
베이즈 정리를 이용해 사후확률 \( P(D \mid +) \)를 구해 보자. 유병률 \( P(D) = 0.005 \), 민감도 \( P(+ \mid D) = 0.98 \), 특이도 \( P(- \mid \lnot D) = 0.90 \)이므로 거짓양성률은 \( P(+ \mid \lnot D) = 1 - 0.90 = 0.10 \)이다.
전체 양성률은 \( P(+) = 0.005 \times 0.98 + 0.995 \times 0.10 = 0.0049 + 0.0995 = 0.1044 \)이다.
따라서 \( P(D \mid +) = \dfrac{0.0049}{0.1044} \approx 0.047 \), 즉 약 4.7%이다. 유병률이 매우 낮으면 검사 정확도가 높아도 양성 판정자가 실제 환자일 확률은 여전히 낮을 수 있음에 유의해야 한다.
나이브 베이즈(Naive Bayes)는 베이즈 정리를 이용해 데이터를 분류(classification)하는 대표적인 머신러닝 알고리즘이다. 스팸 메일 분류, 감성 분석, 문서 분류처럼 텍스트 분류(text classification)에 특히 널리 쓰인다.
데이터(예: 이메일에 등장하는 단어들 \( x_1, x_2, \ldots, x_n \))가 주어졌을 때, 각 클래스 \( C_k \)(예: 스팸 / 정상)에 대한 사후확률 \( P(C_k \mid x_1, \ldots, x_n) \)을 베이즈 정리로 계산하고, 그중 가장 큰 사후확률을 갖는 클래스를 예측 결과로 선택한다.
\[ P(C_k \mid x_1, \ldots, x_n) = \frac{P(C_k)\, P(x_1, \ldots, x_n \mid C_k)}{P(x_1, \ldots, x_n)} \]
문제는 특징(feature)이 여러 개일 때 \( P(x_1, \ldots, x_n \mid C_k) \)를 그대로 계산하기가 매우 어렵다는 점이다. 나이브 베이즈는 이를 해결하기 위해, 주어진 클래스 조건에서 각 특징들이 서로 조건부 독립(conditionally independent)이라는 강한 가정을 세운다.
\[ P(x_1, \ldots, x_n \mid C_k) \approx \prod_{i=1}^{n} P(x_i \mid C_k) \]
실제로는 단어들 사이에 서로 연관성이 있는 경우가 많음에도 이를 무시하고 "독립"이라고 가정하기 때문에, 이 순진하다는 의미로 "나이브(naive)"라는 이름이 붙었다. 이 가정 덕분에 계산이 각 특징별 확률의 곱셈으로 단순화되어, 매우 빠르고 가볍게 학습·예측할 수 있다는 장점이 생긴다.
말로만 설명하면 감이 잘 오지 않으므로, 스팸 메일 분류를 예로 들어 나이브 베이즈의 구조와 계산 과정을 그림으로 나타내 보자.
만약 학습 데이터에 특정 단어(특징값)가 특정 클래스에서 단 한 번도 등장한 적이 없다면, 그 단어에 대한 조건부확률 \( P(x_i \mid C_k) \)는 0이 된다. 나이브 베이즈는 여러 확률을 곱해서 사후확률을 계산하기 때문에, 단 하나의 확률이라도 0이면 전체 곱셈 결과가 0이 되어 다른 모든 증거를 무시해 버리는 문제가 생긴다.
라플라스 스무딩(Laplace Smoothing)은 이 문제를 완화하기 위해, 모든 단어의 등장 횟수에 작은 값(보통 1)을 더해 확률이 정확히 0이 되지 않도록 보정하는 기법이다.
\[ P(x_i \mid C_k) = \frac{\text{count}(x_i, C_k) + 1}{\text{count}(C_k) + |V|} \]
여기서 \( |V| \)는 전체 특징(어휘)의 개수이다. 분자와 분모에 각각 1과 \( |V| \)를 더해 주면, 학습 데이터에 없던 단어를 만나더라도 확률이 0이 아닌 아주 작은 값을 갖게 되어, 전체 사후확률 계산이 무너지지 않는다.
Q. 나이브 베이즈(Naive Bayes) 분류기에 대한 설명으로 옳지 않은 것은?
정답 ④
해설
나이브 베이즈 분류기의 특성에 대한 설명을 하나씩 확인해 보자.
① 나이브 베이즈는 각 클래스에 대한 사후확률을 계산하고 그중 가장 큰 클래스를 예측 결과로 선택한다는 설명으로, 옳다.
② "나이브"라는 이름은 클래스가 주어졌을 때 각 특징들이 서로 조건부 독립이라는 가정에서 비롯된 것이라는 설명으로, 옳다.
③ 라플라스 스무딩은 학습 데이터에 없던 특징값의 조건부확률이 0이 되어 전체 곱셈 결과가 0이 되는 문제를 완화하기 위해 사용된다는 설명으로, 옳다.
④ 나이브 베이즈는 오히려 조건부 독립을 가정하여 특징 간의 상관관계를 명시적으로 모델링하지 않는다. 이 가정 덕분에 계산이 단순해지지만, 특징 간 의존성이 큰 데이터에서는 성능이 떨어질 수 있다. "특징 간 상관관계를 명시적으로 모델링하여 의존성이 큰 데이터에서 강력한 성능을 보인다"는 설명은 옳지 않다.
따라서 옳지 않은 것은 ④이다.
베이즈 정리는 나이브 베이즈 분류기 외에도 인공지능 곳곳에서 불확실성을 다루는 기본 도구로 활용된다.
베이즈 정리는 사전확률 × 우도 ÷ 증거 = 사후확률이라는 간단한 식을 통해, 새로운 데이터가 들어올 때마다 우리의 믿음을 합리적으로 갱신하는 방법을 제공한다. 의료 검진 예제에서 보았듯, 검사의 정확도가 아무리 높아도 사전확률(유병률)이 낮으면 사후확률도 생각보다 낮게 나올 수 있다는 점은 데이터를 해석할 때 항상 유의해야 할 부분이다.
인공지능에서는 이 원리를 확장하여, 나이브 베이즈처럼 조건부 독립을 가정해 계산을 단순화한 분류기를 만들거나, 베이지안 네트워크·베이지안 최적화처럼 더 복잡한 확률 모델을 구성하는 데 두루 활용한다. 결국 베이즈 정리는 "불확실한 세상에서 증거를 근거로 더 나은 판단을 내리는 방법"을 수학적으로 정형화한 것이라 할 수 있다.