기계학습/ML

[ML개론] (10) Naive Bayes to Logistic Regression

Albatross 2022. 2. 20. 03:31
반응형

두괄식으로 결론부터 말하자면 NBC는 Generative model의 한 종류이며, LR은 DIscriminative model의 한 종류다. 

Generative는 joint distribution인 P(X,Y)를 학습에 활용한다. 그러나 P(X,Y)를 활용할 수는 없고 Bayes Thm으로부터 파생되는 prior * likelihood를 사용한다. NBC의 argmax function의 원소가 P(X|Y)P(Y)라는 점에서 이는 P(X,Y)를 학습하는 것과 마찬가지다. P(X,Y)는 (X,Y)라는 instance가 관찰될 확률을 뜻하는데, NBC의 경우에는 P(X=긍정적단어들, Y=긍정)과 같이 특정 X에 대해 특정 Y가 함께 관측될 확률을 학습한다.

반면 Discriminative는 사후확률인 P(Y|X)를 학습하는 것인데, 이는 가령 X라는 단어들이 주어졌을 때, 이 리뷰가 실제로 긍정적인 리뷰인지 분류할 확률을 뜻한다. 

 

가령 다음과 같은 (X,Y) 데이터가 있다고 가정하자. 

(맛나, 긍정) (별로, 부정) (맛나, 긍정) (별로, 긍정) (별로, 부정)

 

Generative Model의 관점에서 이 데이터는 다음과 같이 분류된다. 

P(X,Y) Y=긍정 Y=부정
X=맛나 2/5 0
X=별로 1/5 2/5

P(X|Y)P(Y)를 최대화하는 NBC의 경우 P(Y=긍정)=3/5로 정해져있고, given X=맛나에 대해서 P(X|Y=긍정)는 2/3이니 P(X=맛나,Y=긍정)은 2/5로 계산된다. feature 갯수가 많아지면 P(X|Y)가 많아져서 이들이 independently 곱해지고, 이 posterior를 maximizing하는 방식으로 학습이 진행된다. 

 

Discriminative Model의 관점에서 이 데이터는 다음과 같이 분류된다. 

P(Y|X) Y=긍정 Y=부정
X=맛나 1 0
Y=별로 1/3 2/3

Generative 모델의 확률과는 달리 분모가 다르다. 이는 실제 모집단의 data들이 어떠한 분포로 존재하는지에 대해선 큰 관심이 없음을 뜻한다. 그저 특정 X instance에 대해 해당 instance들 중 특정 Y label이 얼만큼 있는지만을 보인다. 따라서 이는 data 전체의 분포보다는 classifying에 좀 더 치중되어있는 모형이다. 

 

Naive Bayes Classifier와 Logistic Regression 모두 X를 입력받으면 discrete한 Class Y로 분배해준다는 점에선 같다. 그러나 NBC는 X마저 discrete/categorical하다는 것이 그 차이점이다. NBC 수식에서와 같이 P(Xi=xi|Y=y)는 p 아니면 (1-p)였다. 따라서 이번 글에선 NBC와 LR간의 직접적인 성능 비교를 위해 NBC 또한 continous variable X를 활용할 수 있도록 Gaussian Naive Bayes로 변환시켜보겠다. 

우선 input variable이 특정 분포를 따른다고 가정해야하는데 이 경우엔 Gaussian dist를 따른다고 가정했다. 

 

가령 X가 Gaussian distribution을 따른다면 그 확률 P(X|Y,μ,σ^2)은 위 식과 같이 정의된다. 이는 NBC에서 binary하게 그 발생확률이 p 아니면 1-p 였던것과는 달리 continous한 형태다. P(Y)는 여전히 discrete한 class이기 때문에 특정 class에 대한 discrete한 확률이 적용된다. 

이 둘을 NBC의 argmax 함수에 대입하면 위와 같이 도출되며, 이를 Guassian Naive Bayes라 부른다.

 

우리의 목적은 NBC를 LR처럼 만들어서 이 둘의 성능을 비교하는 것이다. 그 밑작업으로 discrete X만을 처리했던 NBC를 continous variable 또한 처리할 수 있도록 만들었다. 서두에서 언급했지만 LR은 P(Y|X)를 학습하고, NBC는 P(X|Y)P(Y)를 학습한다. 그럼 NBC의 argmax 대상이었던 P(X|Y)P(Y)를 P(Y|X)로 바꿔서 생각해보자. 기존 이를 위해선 기존에 비례관계라 날려없앴던 1/P(X)를 다시 곱해줘야한다. LOTP로 이를 분해하면 첫번째줄 수식처럼 전개된다. 

사실 class variable Y1, Y2 별로 X의 분포가 상이하기 때문에 이둘은 다른 분산값을 갖는다. 

 

그러나 계산과정의 편의를 위해 두 class간의 분산이 같다고 가정한다. 이 경우 식이 위와 같이 전개된다. 

 

식을 전개하면 마지막 수식이 전개되는데 1/(1+e^Xθ)의 LR함수의 형태가 도출된다. 

내부 수식을 잘 살펴보면 feature d까지의 X와 weight theta간의 곱이 sigma를 통해 전개되고 있음이 확인된다.

 

결국 이 식은 GNBC는 두 class의 분산이 같다는 전제 하에 LR과 똑같은 형태임을 뜻한다. 

이를 위해 우리가 가정한 것들은 다음과 같다. 

첫째, feature들간의 independence를 가정하는 naive bayes assumption

둘째, class간의 동일한 분산값을 가정하는 same variance assumption

셋째, conditional prob. P(X|Y)가 Gaussian dist를 따른다는 가정

넷째, prior prob. P(Y)가 Bernouli dist를 따른다는 가정

우리는 이 가정들을 통해서 연산과정을 단순화할 수 있었다. 그러나 많아진 가정 덕에 class(2)별로 Gaussian dist의 형태를 결정짓는 μ,σ(2)와 feature(d), 그리고 prior prob(1), 총 4d+1개의 parameter에 대해 estimation을 해줘야한다. (등분산 가정이 적용되면 2d+1개)

 

그에 반해 우리가 이 LR의 P(Y|X) 수식을 얻기 위해 세운 가정은 "LR에 dataset이 맞는다"는 것 밖에 없다. 

따라서 우리가 추정해야만하는 parameter는 feautre에 대한 weight d개와 bias 1개뿐이다. 

 

그러나 이전에 살펴봤듯이 NBC는 prior knowledge를 적극적으로 채택하는 bayes thm에 기반하고 있단 점에서, MAP를 사용해야만 하는 경우 NBC가 LR보다 더 나은 대안이 될 수 있다. 

반응형