[Study, Math] Bayes' Theorem

minbrass·2025년 3월 21일

Study_Math

목록 보기
1/1
post-thumbnail

의료 진단이나 스팸 필터링, 추천 시스템과 같은 실무 문제들은 확률 데이터에 잠재된 불확실성을 다루어야 하므로, 오직 확률에 대한 직관적인 이해만으로는 적절한 데이터 처리 방법을 설계하기 어렵다.

따라서 베이즈 정리를 기반으로 한 확률적 추론 관점에 익숙해지는 것이 매우 중요하다고 여겼고, 정리해보는 기회를 갖게 되었다.



1. Definition of Bayes' Theorem


베이즈 정리는 어떤 사건 BB가 발생했을 때, 그 사건의 원인인 AA가 일어날 확률을 추론하는 방법으로, 조건부 확률에 기반을 둔 식으로 표현된다. 두 사건 AABB가 있을 때, 베이즈 정리는 아래와 같이 표현할 수 있다.

P(AB)=P(BA)P(A)P(B)P(A \mid B) = \frac{P(B \mid A)\,P(A)}{P(B)}
  • P(A)P(A): 사건 AA가 일어날 사전 확률(prior probability).
  • P(AB)P(A|B): 사건 BB라는 정보가 주어졌을 때 AA가 일어날 사후 확률(posterior probability).
  • P(BA)P(B|A): 우도(likelihood)라 부르며, AA가 참일 때 BB가 관측될 확률.
  • P(B)P(B)는 주변 확률(marginal probability) 혹은 관측 가능 확률로, BB가 전체적으로 관측될 비율을 의미.

베이즈 정리가 중요한 이유는 이미 확률 계산이 완료 된 이후에도, 새로운 정보가 주어진다면 사후 확률을 반복적으로 갱신할 수 있다는 점에 있다.

관측 결과 BB가 관찰되었다고 할 때, 기존에 가지고 있던 가설 AA의 확률 P(A)P(A)P(AB)P(A|B)로 업데이트하여, 점진적으로 가설에 대한 믿음의 정도를 보정해 나갈 수 있는 것이다. 이는 기계학습 과정에서 모델이 데이터를 통해 가설(모델 파라미터 등)을 수정해 가는 과정을 수학적으로 표현한 것이기도 하다.

추가적으로, 사건 BB가 여러 개의 독립된 하위 사건 B1,B2,,BnB1, B2, …, Bn으로 구성되어 있을 수 있다.

일반 베이즈 정리는

P(AB1B2Bn)=P(B1B2BnA)P(A)P(B1B2Bn)P(A \mid B_1 \cap B_2 \cap \dots \cap B_n) = \frac{P(B_1 \cap B_2 \cap \dots \cap B_n \mid A)\,P(A)}{P(B_1 \cap B_2 \cap \dots \cap B_n)}

과 같이 확장된다. 이를 계산하는 과정에서 하위 사건들이 서로 독립이라는 가정이 있다면,

우변의 P(B1B2BnA)P(B1 ∩ B2 ∩ … ∩ Bn|A)P(B1A)×P(B2A)××P(BnA)P(B1|A) × P(B2|A) × … × P(Bn|A) 로 단순화되어 계산이 쉬워진다. 이런 전제가 바로 뒤에서 설명할 나이브 베이즈 분류기의 원리이다. (바로 이걸 하기 위해 베이즈 정리를 공부하고 있는 것이다.)



2. 두 가지 관점에서의 Bayes' Theorem


근본적으로는 두 Bayes' Theorem이 같은 의미를 내포하고 있기는 하지만, 두 가지 큰 관점에서 Bayes' Theorem의 역할을 구분해 볼 수 있다.

2.1. 역확률 문제

베이즈 정리는 역확률(inverse probability)을 구하는 핵심 도구로 소개된다. 역확률은 P(BA)P(B|A)를 알고 있을 때, P(AB)P(A|B)를 구하고자 하는 관점을 가리킨다. 더 자세하게 살펴보도록 하자.

조건부 확률 P(BA)P(B|A)가 알려져 있을 때, 우리가 원하는 것은 반대로 P(AB)P(A|B)이다.

예를 들어, 질병 AA를 가지고 있는 사람이 양성으로 나타날 확률이 90%라고 할 때, 질병 AA에 대해 양성 판정을 받은 사람이, 실제로 질병 AA를 갖고 있을 확률은 얼마인지가 궁금해진다. 이런 상황에서 베이즈 정리를 사용하면 아래와 같이 역방향 확률을 구할 수 있다.

P(A양성)=P(양성A)P(A)P(양성)P(A \mid \text{양성}) = \frac{P(\text{양성} \mid A)\,P(A)}{P(\text{양성})}

여기서 P(A)P(A)는 질병에 걸릴 사전 확률이다. 예를 들어, 전 세계 인구 중 특정 질병을 가진 사람이 1%라고 가정하면 P(A)=0.01P(A) = 0.01이 된다.

P(양성A)=0.9P(양성|A) = 0.9로 두면, 실제로 양성 판정을 받은 사람이 이 질병에 걸렸을 사후 확률은 사전 확률, 우도, 주변 확률을 모두 고려해야 한다. 만약 검사 자체의 양성·음성 정확도가 높아 보이더라도, 실제로는 전체 인구 중 해당 질병을 가진 사람이 매우 적다면 사후 확률이 생각보다 낮아질 수 있다. 이것이 베이즈 정리가 역확률 문제를 해결하는 과정에서 자주 언급되는 이유다.


2.2. 사후 확률의 추정

또 한 가지의 관점은, 새로운 근거(입력 데이터)가 들어왔을 때 기존에 가지고 있던 사전 확률을 어떻게 사후 확률로 갱신할지 알려준다.

간단히 말해, “처음에 어떤 사건 AA가 일어날 확률이 얼마라고 추정하고 있었는데, 이제 사건 BB가 새로 관찰되었으니 AA가 일어날 확률을 다시 계산해보자”라는 접근이다.

예를 들어, 이메일 필터링을 떠올려보자. 사전 확률 P(A)P(A)는 아직 메일 내용을 분석하기 전에 메일이 스팸일 것이라고 미리 생각하는 확률이라고 할 수 있다. 예컨대, 한 회사의 전체 이메일 중 약 60%가 스팸이었음을 이전 기록으로부터 알고 있다면, 스팸에 대한 사전 확률 P(A)P(A)는 0.6이 될 것이다. 이제 실제 메일 내용에서 특정 단어들이 다수 등장하거나 의심스러운 링크가 포함되는 등 “스팸일 가능성을 높여주는 증거(BB)”가 관측된다면,

P(스팸B)=P(B스팸)P(스팸)P(B)P(\text{스팸} \mid B) = \frac{P(B \mid \text{스팸}) \, P(\text{스팸})}{P(B)}

라는 형태로 사후 확률을 구하여 “이메일이 정말 스팸일 가능성”을 업데이트하게 된다.

  • P(스팸)P(스팸): 사전 확률(과거 데이터를 통해 추정한 스팸 메일의 비율)
  • P(B스팸)P(B|스팸): 스팸 메일에서 해당 의심 단어(또는 패턴)가 등장할 확률(우도)
  • P(B)P(B)는 전체 메일에서 그 의심 단어(또는 패턴)가 등장할 확률(주변 확률)이다.

이렇게 베이즈 정리를 적용하면, 새로운 증거(B)가 들어올 때마다 기존에 가지고 있던 사전 확률을 ‘사후 확률’로 갱신할 수 있다. 만약 스팸 단어가 여러 개라면, 그것들을 독립적이라고 가정하는 나이브 베이즈 방식으로 결합하거나(“모두 합쳐서 P(B1|스팸) × P(B2|스팸) × …”), 실제로는 상호 의존성이 있다면 더 정교한 방법으로 처리하게 된다.

결국 이 과정은 “초기에 60% 정도로 스팸이라고 믿었는데, 새로운 증거가 나타났으니 이제는 x%로 믿겠다”처럼, 데이터에 따라 자신의 믿음(확률)을 유연하게 바꾸는 확률적 추론의 전형적인 예시다. 이렇게 사후 확률을 구하는 흐름이 바로 베이즈 정리가 불확실성을 다루는 핵심 방식이며, 실제 의사결정(스팸 필터링, 질병 진단, 금융 사기 탐지 등)에서 끊임없이 활용된다.

앞서 나온 두 항목은 얼핏 보면 같은 식을 다루고 있어서 "결국은 같은 이야기가 아닌가"라는 의문을 가질 수 있지만,

  • 역확률 문제는 "기존에 P(BA)P(B|A)를 알고 있을 때, 거꾸로 P(AB)P(A|B)를 구하고 싶다는 이야기"로, 베이즈 정리 자체가 순 논리구조의 역방향인 확률을 수학적으로 구할 수 있게 해주는 tool 이라는 점을 강조하는 것이고,
  • 사후 확률 추정은 "새로운 정보가 들어왔을 때, 사전 확률을 어떻게 사후 확률로 업데이트할 수 있나?" 라는, 베이즈 확률에서의 추론 절차에 초점을 두는 것이다.

    사실 똑같은 사례를 두 관점에 대해 각각 해석하더라도 이론상으로는 전혀 문제가 없는 것이다. "관점의 차이"를 인지하고 다양한 방법으로 해석할 수 있음을 알면 그걸로 되는 것이다.



3. Naive Bayes' Classifier


Naive Bayes' Classifier는 위에서 말한 베이즈 정리를 기반으로 하여, 여러 특성(feature)이 독립적이라고 가정(나이브)함으로써 분류 문제를 간단하고도 효과적으로 풀어내는 알고리즘이다.


3.1. 기본 원리

나이브 베이즈 알고리즘은 입력 x=(x1,x2,,xn)x = (x_1, x_2, \dots, x_n)이 주어졌을 때, 특정 클래스 CkC_k에 속할 사후 확률 P(Ckx)P(C_k \mid x)를 계산한다. 일반 베이즈 정리에 따르면,

P(Ckx)=P(xCk)P(Ck)P(x)P(C_k \mid x) = \frac{P(x \mid C_k)\,P(C_k)}{P(x)} 인데, x=x1x2xnx = x_1 \cap x_2 \cap \dots \cap x_n 일 수 있으므로 P(xCk)P(x \mid C_k)를 직접 계산하기 어렵다.

그러나 특성 x1,x2,,xnx_1, x_2, \dots, x_n이 조건부 독립이라고 가정하면,

P(xCk)=P(x1Ck)P(x2Ck)P(xnCk)P(x \mid C_k) = P(x_1 \mid C_k)\,P(x_2 \mid C_k)\,\dots\,P(x_n \mid C_k) 와 같이 단순화할 수 있다. 따라서

P(Ckx)  =  P(x1Ck)P(x2Ck)P(xnCk)P(Ck)P(x)P(C_k \mid x) \;=\; \frac{P(x_1 \mid C_k)\,P(x_2 \mid C_k)\,\dots\,P(x_n \mid C_k)\,P(C_k)}{P(x)} 가 된다.

분모 P(x)P(x)는 모든 클래스에 대해 공통이므로, 분류 시에는 P(Ckx)    P(Ck)i=1nP(xiCk)P(C_k \mid x) \;\propto\; P(C_k)\,\prod_{i=1}^{n} P(x_i \mid C_k) 에 비례한다.

-> 결국 분류는 위 식의 값을 최대화하는 k를 찾는 문제로 귀결된다.

(앞서 선보인 식들이랑 전혀 다를 것 없다. 거의 말만 다른 수준이고 이를 그대로 분류문제에도 적용할 수 있다는 것이다!)


3.2. 활용 예시

(앞이랑 같은 예시를 활용하므로 간단하게 효과만 언급하고 넘어가겠다.)

  • 이메일 필터링 문제에서 각 단어가 등장했는지 여부를 독립적인 사건이라고 가정하면, 스팸 클래스 C스팸C_{\text{스팸}}와 정상 메일 클래스 C정상C_{\text{정상}} 각각에 대해 P(xC스팸)P(x \mid C_{\text{스팸}}), P(xC정상)P(x \mid C_{\text{정상}}) 을 계산한 뒤, 더 큰 값을 주는 클래스로 분류한다.

  • 이때 P(C스팸)P(C_{\text{스팸}})은 전체 메일 중 스팸 메일의 비율(사전 확률), P(xiC스팸)P(x_i \mid C_{\text{스팸}})은 스팸 메일 중 단어
    xix_i가 등장할 확률(우도)에 해당한다. 이렇게 단순한 가정에도 불구하고, 실무 현장에서 뛰어난 정확도를 자주 보인다는 점이 Naive Bayes' 의 특징이다.


3.3. 확장된 형태

나이브 베이즈 분류기는 흔히 단어 출현 여부나 단어 빈도처럼 이산형 특성에만 사용되는 것처럼 보이지만, 실제로는 연속값도 간단히 다룰 수 있다. 예를 들어, 각 클래스에서 특성들이 가우시안(정규) 분포로부터 생성된다고 가정할 수 있는데, 이를 가리켜 "Gaussian Naive Bayes"라고 부른다.

구체적으로, 클래스 CC에 속하는 어떤 특성 xx가 평균 μC\mu_C와 분산 σC2\sigma_C^2를 갖는 정규 분포에서 나왔다고 가정한다면,

P(xC)  =  12πσC2exp ⁣((xμC)22σC2).P(x \mid C) \;=\; \frac{1}{\sqrt{2\pi\,\sigma_C^2}} \exp\!\Bigl(-\,\frac{(x - \mu_C)^2}{2\,\sigma_C^2}\Bigr).

이 식은 한 가지 특성에 대한 확률 분포이고, 여러 특성에 대해서는 나이브 베이즈의 “독립 가정”을 적용해 곱으로 결합한다.(앞에서 했던대로!)

이렇게 하면, 연속값 특성도 나이브 베이즈의 사후 확률 계산 틀 안에서 쉽게 다룰 수 있게 된다.

정리하자면, 나이브 베이즈의 뼈대는 “각 클래스마다 특성들이 어떤 분포에서 독립적으로 생성된다”는 가정이다. 이 뼈대만 유지한다면, 가우시안(정규) 분포 외에도 상황에 맞춰 다항분포, 베르누이 분포 등 다양한 확률 분포를 적용할 수 있다. 이렇게 확장하면 "단어 유무" 같은 단순 이진 특성뿐 아니라, 센서의 연속 측정값, 문서 내 단어 빈도(횟수) 등 다양한 형태의 데이터를 나이브 베이즈로 처리할 수 있다.

물론 실제로는 각 분포에 대한 평균이나 분산(파라미터)을 학습 데이터로부터 구해야 하고, 특성들 간에 독립 가정이 얼마나 성립하는지도 고민해야 한다. 그래도 나이브 베이즈 방식은 구조가 간단하기 때문에, 연속형 데이터를 다루더라도 여전히 빠르고 효과적인 분류 방법이 될 수 있다.



4. Reference


[1] 머신러닝 / 13. 머신러닝 학습 방법(part8) - Naive Bayes

[2] 베이즈 정리(Bayes' Theorem)의 정리와 의미

[3] 베이즈 정리와 분류기

[4] 베이즈 정리 / 딥러닝 입문 / MLP - 베이즈 정리

profile
인공지능 대학원 진학을 희망하는 학부생의 정리노트

0개의 댓글