히비스서커스의 블로그

[기계학습 3강] Naive Bayes Classifier 본문

Theory/Machine Learning

[기계학습 3강] Naive Bayes Classifier

HibisCircus 2021. 4. 6. 23:34
728x90

 내용들은 (KAIST Open Online Course)의 인공지능 및 기계학습 개론 1 Chap. 3강 내용을 기반으로 재구성하였음을 먼저 밝힙니다.

 

 

여러 개 feature를 가진 X가 주어졌을 때 label Y를 어떻게 결정할 것인가에 대해 우리는 아래의 예시를 가정하여 Classifier를 생각해보았다. 이번에는 Optimal Classifier 중에서 가장 간단한 모델인 Naive Bayes Classifier에 대해 알아보자.

 

 

Dataset


 

위의 자료에 대해 다음과 같음을 먼저 배운 바가 있다.

 

X :: Sky ~ Forecst

Y :: EnjoySpt

D :: Dataset (위의 표에서 X와 Y를 제외한 나머지 관측값들 전체)

 

 

Optimal Classifier는 아래의 식을 만족해야했다.

$f^{*} = argmax_{Y=y} P(X=x | Y=y) P(Y=y)$

 

여기서 $P(X=x | Y=y)$와 $P(Y=y)$에 대해 하나씩 살펴보자.

 

$P(X=x|Y=y)$ => $P(x_1 = sunny, x_2 = warm, x_3 = normal, x_4 = strong, x_5 = warm, x_6 = same | y =yes)$

$(2^d-1)k$개의 파라미터가 필요하다. 그 이유는 하나의 Feature에 대해 2가지 클래스가 있고 Feature가 d개 존재할 때의 모든 경우의 수($2^d$)에서 1를 빼준 만큼을 고려해주어야 하기 때문이다. 1을 빼주는 이유는 $2^d -1$개의 값을 구하였을 때 나머지 하나는 자동 결정되어(전체 확률 1에서 나머지 것들 빼주면 결정된다. 자유도와 같은 개념) 1를 빼주는 것이다. 거기에 class(label)이 k개의 값을 가질 때에 대한 경우의 수도 곱해주어야 하므로 $(2^d-1)k$가 되는 것이다. (위의 예시에 대해 계산해보면 $(2^6-1) * 2$이다.) 식에서도 느껴지듯이 이 부분은 많은 양의 데이터(관측치)가 필요하다.

 

$P(Y=y)$ => $P(Y=yes)$

$k-1$개의 파라미터가 필요하다. (위의 예시에 대해 계산해보면 1이다.) 적은 파라미터를 필요로 하기 때문에 이 부분은 구하기가 쉽다.

 

 

 

 

Conditonal Independent Assumption


X의 feature들(Sky, Temp, ... , Forecst 등)이 독립이라고 가정하고 문제를 풀어보자. 이럴 경우 독립의 성질에 의하여

$P(X = <x_1, x_2, ..., x_i> | Y = y) => \prod_{i} P(X_i = x)i | Y = y)$

와 같이 나타내진다. 이를 사용하는 이유는 위에서 $P(X=x | Y=y)$에서 계산해야 하는 파라미터의 수가 $2^d-1$개로 매우 많기 때문에 이를 줄이기 위함이다. Conditional Independent를 가정한다면 이 파라미터의 수가 줄어들어 적은 양의 데이터로도 $P(X=x | Y=y)$의 값을 구할 수 있게 된다.

 

그렇다면 Conditional Independent라는 개념이 무엇일까?

$x_1$이 y가 주어졌을 때 $x_2$에 대해 Conditional Independent라는 것은 $P(x_1 | x_2, y) = P(x_1 | y)$을 만족하는 것이다. 이를 자세히 알아보기 위해 Marginal Independence와 비교해보며 알아보자.

 

 

 

 

Conditional vs Marginal Independence


Conditional Independence를 조금 더 정확하게 이해하기 위해서 Marginal Independence와 비교하여 알아보자. 아래의 그림을 보며 이해해보자.

 

Commander($Y$)는 OfficerA($X_1$)와 OfficerB($X_2$)에게 앞으로 가라는 명령을 내리는 사람이고 OfficerA($X_1$)와 OfficerB($X_2$)는 Commander($Y$)의 명령을 따르는 사람이다. 이제 상황을 가져보자. Commander가 OfficerA와 OfficerB에게 명령을 내리는 것을 OfficerA가 들었다면 OfficerB가 가든 말든 상관없이 앞으로 갈 것이다. 하지만 Commander의 명령을 못들었을 때는 OfficerB가 앞으로 가는 행동이 OfficerA의 행동에 영향을 줄 수 있다.

 

 

Marginal Independence의 조건 :: $P(X_1) = P(X_1 | X_2)$

먼저 Marginal Independence에 대해 살펴보자. Marginal Independence라면 $ P(X_1) = P(X_1 | X_2)$을 만족해야 한다. 위의 상황에서 Commander가 가라는 명령을 OfficerA가 못 들었을 경우 OfficerB가 가는 행동이 OfficerA가 가는 것에 영향을 줄 수 있다. ('명령은 직접적으로 못들었지만 옆에 OfficerB가 가는걸보니 가야하나?'의 영향을 주기 때문) 따라서, $X_1$과 $X_2$는 Marginal Independence하지 않는다. (Marginal Independence하다는 것은 결국 Independence하다는 것과 같다. 그 이유는 다음과 같다. 두 사건 $X_1$과 $X_2$가 독립이면 $P(X_1 \cap X_2) = P(X_1)P(X_2)$을 만족한다. 조건부확률 $P(X_1 | X_2) = \frac{P(X_1 \cap X_2)}{P(X_2)}$에서 $P(X_1 \cap X_2) = P(X_1 | X_2)P(X_2) = P(X_1)P(X_2)$ 가 되므로 Marginal Independence의 조건을 만족하기 때문이다.)

 

 

Conditional Independence의 조건 :: $P(X_1 | X_2, Y) = P(X_1 | Y)$

다음으로 Conditional Independence에 대해 살펴보자. Conditional Independence라면 $P(X_1 | X_2, Y) = P(X_1 | Y)$을 만족해야 한다. 위의 상황에서 Commander가 가라는 명령을 OfficerA가 들었을 경우에 OfficerB의 행동은 OfficerA의 행동에 영향을 주지 않는다. Commander의 명령만 들으면 되기 때문이다. 따라서, Commander의 명령이 주어진 상황에서는 $X_1$과 $X_2$는 Conditional Independence을 만족한다.

 

 

Naive Bayes Classifier


Naive Bayes Classifier에서는 Feature들끼리 label이 주어졌을 경우 Conditional Independence하다는 것을 가정한다고 하였으므로 아래의 식과 같이 나타난다.

 

$f_{NB}(x) = argmax_{Y=y} P(Y=y) \prod_{1 \leq i \leq d} P(X_{i} = x_{i} | Y = y)$

 

이를 통하여 $P(X=x | Y=y)$에서 필요한 파라미터의 수가 $(2^d-1)k$에서 $(2-1)dk$가 된다. 그 이유를 알아보자. Feauture들 각각의 확률을 구하는 과정에서 Feature들의 경우의 수(=2)에서 하나만 주어지면 나머지는 구해주므로 1를 빼주어 (2-1)이 된다. 이 경우가 Feature들의 개수 d에 대해 적용해주어야 하므로 $(2-1)d$가 된다. 마지막으로 우리가 Y가 주어졌다고 했을 때의 조건부 확률이었기 때문에 Y(label)이 가지는 개수 k에 대해서 모두 구해주어야 하기 때문에 최종적으로 $(2-1)dk$가 되는 것이다. 이는 Conditional Independence를 가정할 때 더 적은 데이터(관측치)가 있더라도 사용할 수 있다는 의미이다.

 

그렇다면 Optimal Classifier일까? 맞다. 왜냐하면 bayes risk를 줄이려는 Classifier이기 때문이다.

 

 

Naive Bayes Classifier는 P를 제대로 계산만 할 수 있다면 쉽게 구할 수 있다.

 

Problem of Naive Bayes Classifier


문제 1. Naive Assumption

Feature들끼리에는 상관관계는 존재할 수 밖에 없기 때문에 생기는 문제이다.

 

문제 2. Incorrect Probability Esimations

MLE는 관측되지 않은 것에 대해서는 예측하지 못하기 때문에(확률값을 주지 못하기 때문에) MAP를 사용하는 것이 좋은데 MLE와 MAP 둘 다 추정량이기 때문에 실제값과는 차이가 존재한다.

 

문제2는 MLE와 MAP를 쓰게 되면 항상 존재하는 것이라 해결할 수 없는 일이다. 하지만 문제1은 Naive Bayes를 사용하기 위해 Feature들의 독립에 대한 가정에 의해 도입된 것이다. 따라서, 문제 1을 해결하기 위해서는 다른 방법(Logistic Classifier)을 사용하는 것이 좋다.

 

 

 

-히비스서커스-

728x90