본문 바로가기

통계학 기초

베이지안 기초2. 베이지안 Classification의 이해

반응형

 

목차
1. 기본적인 Bayesian 수식
2. Bayesian by Likelihood & Prior
3. Conditional Independence Density
4. Final Naive Bayesian Function

 

 

1. 수식을 통한 Bayesian의 이해

 

 

들어가기 전에 기본 수식만 보면 이해가 안 갈 테니, 이해하기 쉬운 예제와 함께 보려고 한다. 

 

우리가 소풍을 간다 안 간다를 예측하기 위해서, 여러가지 날씨 변수를 계산하다고 생각해보자.

 

우리가 날씨, 온도, 습도, 풍량, 수온, 일기 예보 정보를 알고 있을 때, 소풍을 갈지 안 갈지를 결정하는 상황이라고 이해해보자.

 

그러면 여기서 Y는 "소풍가기"가 될 것이고, 각 변수들은 X1 ~ X6까지 고려되어야 한다. 

 

우선 소풍갈 확률은 편리하게 50%라고 두고, 각 변수는 Binary(0과 1) 변수라고 단순하게 가정한다. 

 

 

(1) 기본적인 수식 소개

 

 

수식의 풀이

- argmax: Y=y로 분류될 확률이 가장 크도록, 함수를 구성한다. 

- P(Y=y | X=x): 우리가 앞으로 알아야 할 Posterior

 

따라서 Posterior 값을 최대화시킬 수 있는 Classification 함수를 만들어야 한다. 

그래서 모델 오차를 가장 최소화 할 수 있는 방법이 가장 우선시해야 하고, 이를 다른 말로 MLE와 MAP를 가장 낮게 모델 파라미터를 조정해야 한다는 것이다. 

 

 

(2) Posterior by Likelihood & Prior


이전 포스팅에서 배웠던 기초 베이지안 수식을 다시 생각해보자. 

Caculating Posterior by Likelihood & Prior Information

위에서 말한 기초적인 수식과 베이지안의 논리를 통해 수식은 아래와 같이 치환할 수 있을 것이다. 

 

 

 

- P(X=x | Y = y): Likelihood로 이때까지 우리가 관측한 데이터이다.

- P(Y=y): Prior로 우리가 사전에 숙지하고 있는 정보이다. 

 

그렇다면 예측을 잘하기 위해서는 분자의 수치를 높여야 할 것이다. 근데 P(Y=y)는 이미 알고 있는 지식으로 변동할 수 있는 부분이 아니다. 따라서 최대치로 높여줘야 하는 것은 우리가 관측하는 데이터인 Likelihood가 되어야 한다

 

위의 예시를 통해 Likelihood를 조금 더 뜯어보자. P( X=x | Y= 소풍간다)는 사실보다 복잡한 뜻을 담고 있다. 

소풍 예시를 통한 베이지안 Likelihood의 이해

관측행 1~3번을 통해 Likelihood를 표현하면 다음과 같이 Likelihood를 볼 수 있다. 

- 1번행: P(X1= 맑음, X2 = 높음, X3 = 낮음, X4 = 강함, X5 = 높음, X6 = 일치 | Y = 소풍 간다)

- 2번행: P(X1= 강수, X2 = 낮음, X3 = 높음, X4 = 약함, X5 = 낮음, X6 = 변화 | Y = 소풍 간다)

- 3번행: P(X1= 맑음, X2 = 높음, X3 = 높음, X4 = 약함, X5 = 높음, X6 = 변화 | Y = 소풍 안 간다)

 

따라서 우리가 만약에 Xn들 간 모든 경우의 수를 따지려면, (2^6-1) 가지 수를 학습해야만 한다. 

이것을 조금 더 수학적으로 말하면, Binary 변수를 한 번 학습을 할 때 마다

번 학습을 해야 한다. 

 

그렇다면 조금 더 현실적으로 봤을 때, 독립변수 당 가질 수 있는 경우의 수가 100개라면, 2라는 숫자에 100이 들어갈 것이고, 실제 상황이라면 n이 될 것이다. 따라서 학습에 대한 부담이 엄청나게 증가하여 실질적으로 모델링을 수행할 수 없을 수도 있다. 

 

따라서 베이지안 모델링을 하기 위해서는 위와 같은 문제를 해결해야 할 것이다. 

 

(3) Conditional Independence Density(조건부 확률 분포)

 

1) 조건부 확률의 정의

 

고등학교에서보다 조건부 확률 분포의 정의를 보다 심도 있게 이해할 필요가 있다. 

 

- 개념적 정의: Y가 주어졌을 때, Y라는 조건이 주어졌을 때 X1과 X2는 서로 영향을 받지 않는다.

 

- 수식적 정의

:

 

- 위와 동일한 수식, 보다 이해하기 쉽게 표시한 것뿐

 

- 예시를 통한 이해: 병사들은 행진할까 안 할까?

병사 1. 행진한다 or 안 한다

병사 2. 행진한다 or 안 한다

 

병사 1이 행진하면 옆에 얼타고 있던 병사 2는 행진 안 할 수도 있음. 그러나 병사 2가 그냥 따라가는 사람이라면 행진할 수도 있음. 

P(병사 1 = 행진 & 병사2 = 행진) ≠ P(병사1 = 행진) * P(병사1 = 행진)

 

이때 상관의 명령이라는 조건이 들어온다고 생각해보자. (Y = 행진 or 멈춰)

이러한 경우에는 병사들끼리의 행동은 서로 영향을 미치지 않게 된다. 그냥 상관이 가라고 하면 가는 거고, 멈추라면 멈추는 것이기 때문이다.

 

P(병사1 = 행진한다 & 병사2 행진한다 | 상관 = 가라)

= P(병사1 = 행진 | 상관 = 가라) * P(병사 2 = 행진 | 상관 = 가라)

 

따라서 병사 1과 병사 2는 서로 영향을 받지 않고 상관의 명령에 따라 행동하기 때문에 위의 수식이 성립이 된다고 이해하면 된다. 

 

 

2) 조건부 확률이 왜 필요한가? - 모델링 파라미터의 축소

 

날씨 예시로 돌아와 보자. 만약 X1 ~ X6까지 모두 상호작용을 일으키고 교집합의 확률이 달라진다면 우리는 이전에 보았다시피 너무 많은 파라미터를 계산해야 한다. 

 

그러나 X1 ~ X6까지 모두 조건부 독립 확률을 따른다고 가정하면 이 문제가 해결될 것이다. 

쉽게 생각해서 X1과 X2 만 놓고 보자.

 

P(X1 & X2 | Y) = P( X1 | Y ) * P( X2 | Y )

 

이런 식으로 Likelihood를 단순하게 계산할 수 있게 되는 것이다. 이것을 우리의 날씨 예시에 적용해보도록 하자

 

P(X1= 맑음, X2 = 높음, X3 = 낮음, X4 = 강함, X5 = 높음, X6 = 일치 | Y = 소풍 간다)

= P(X1 = 맑음 | Y = 소풍) * P(X2 = 높음 | Y = 소풍) * P(X3 = 맑음 | Y = 소풍) * P(X4 = 강함 | Y = 소풍) * P(X5 = 높음 | Y = 소풍) * P(X6 = 맑음 | Y = 소풍) 

 

즉 교집합의 고려하지 않게 되고, 모든 변수들 간 조건부 확률의 곱으로 파라미터를 절약할 수 있게 되는 것이 핵심이다.

 

 

(4) Naive Bayesian Classification - 최종

 

- Naive Bayesian Classification의 최종 수식

 

 

우리는 Likelihood에서 모든 변수가 조건부 독립 확률 분포를 보인다고 가정을 했기 때문에 위와 같이 Given Prior일 때 각 변수간 발생 확률을 곱셈으로 표현할 수 있는 것이다. 

 

 

- Naive BAyesian Classification의 단점

 

하지만 특정 조건이 주어졌을 때 모든 변수 간 독립을 가정하는 것은 다소 한계가 있다. 실제 생활에서는 그렇지 않기 때문에 Optimal 하다고 보기에 다소 한계가 있다. 

 

또한 위와 같은 수식이 어느 정도 성립하려면 정말 많은 데이터 양을 바탕으로 Likelihood를 학습해야 한다. 효과를 따지기 이전에 효율적인 방법이라고 하기에도 다소 한계가 있는 모델이다. 

 

그럼에도 불구하고 베이지안 확률론이 중요한 이유는 모든 Machine Learning 모델들이 베이지안에서 시작되었다고 봐도 과언이 아니기 때문이다. 

 

 

반응형