꺼내먹는지식 준

머신러닝 정리 9 - Naive Bayes vs Logistic Regression 본문

AI/머신러닝

머신러닝 정리 9 - Naive Bayes vs Logistic Regression

알 수 없는 사용자 2022. 11. 2. 10:43

들어가며 

머신러닝에서 learning 이란? 

 

parameter inference, 즉 파라미터를 특정 데이터에 맞춰 최적화

강한 hypothesis 를 기준으로 참과 거짓, rank, category, 군집 등을 결정하는 등의 목적이 있는데, 이를 위하여 데이터 셋을 기준으로 특정 모델의 parameter 조정한다. (다시 말하면 모델이 정해져있기 때문에 우리가 조정할 수 있는 건 parameter 밖에 없다.)

 

logistic regression 에서 probability likelihood 를 최대한 높히기 위하여 gradient ascent 를 통해 $\theta$ 를 업데이트 하여 $P(Y|X)$ 계산식이 도출되었기 때문에 learning 이 되었다. 

 

이번 글에서는 Naive Bayes의 개념을 점검할 겸, Logistic Regression 과의 관계를 확인해보려고 한다.

 

Gussian Naive Bayes

Naive Bayes 는 그냥 사용하면 logistic regression 과 비교할 수 없다. 

Naive Bayes 는 categorical input을 받는다. (해당 input은 0,1 로 정의를 했었다.)

 

반면, logistic regression 은 housing information 을 사용했었기에 numerical variable 이 많았다. 

 

그렇기 때문에 Naive Bayes 를 continuous features 를 활용하는 방식으로 수정한다. 

 

Naive Bayes Classifier 

 

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

(d 는 Input feature 개수)

 

Continuous random feature 

 

  • 일단 어떤 분포를 따를지를 결정해야 한다. (ex. Poisson ...)
  • $X_i | Y$가 Gaussian distribution 을 따른다고 가정 

 

$(X_i = x_i |Y = y)$ 개별 class variable 로 sorting 한 상태에서 mean 과 variance 를 가진다. 

 

1. $P(X_i | Y, \mu, \sigma^2) = \frac{1}{\sigma\sqrt{2\pi}}e^{\frac{(X_i-\mu)^2}{2\sigma^2}}$

 

※ $P(X_i | Y)$ 는 확률, 확률 밀도함수에서 뽑아낼 수 있음이 당연 

 

어차피 하려는 건 결국 classification 이다. 이에 따라 Y 는 categorical value 가 된다. 

이에 따라 prior 부분은 Guassian distribution 처럼 만들지 않아도 된다. 

 

2. $P(Y=y) = \pi_1$ 로 표현한다. 

 

1, 2 번 공식을 Naive Bayes Classifier 공식에 대입하여 다음과 같이 정리할 수 있다. 

(feature 개수만큼 곱한 형태)

 


※ 다음 개념을 들어가기 전에 

 

Logistic Regression 은 discrimitive mode, Naive Bayes 는 generative model 이다. (아래 글 참고)

 

https://itforfun.tistory.com/253

 

머신러닝 정리 7.5(1) - Discriminative model vs Generative Model

Naive Bayes Model은 Generative Model 이고 Logistic Regression 은 Discrimitive Model 이다. Generative Model은 GAN 과 Diffusion 으로 접해봤는데 Naive Bayes 가 Generative 라니 어떤 의미인지 직관적으로 와닿지 않았다. 이에

itforfun.tistory.com

https://itforfun.tistory.com/254

 

머신러닝 정리 7.5(2) - Naive Bayes는 Generative Model

Naive Bayes 가 Generative model 인 것을 확인하기 위하여 이전 글 에서 Generative Model에 대한 간략한 소개글을 작성했다. 해당 글을 원할하게 읽기 위해서는 이전 글을 간단하게 살펴보는 것을 추천한다.

itforfun.tistory.com


Naive Bayes 가정과 함께

 

Logisitic Regression 에서는 $P(Y = y|X)$ 형태 자체를 모델링 하려고 했었다. (참고글)

 

P(Y|X) 가 logistic function의 모양을 따르겠다는 가정하에 logistic function에다가 regression을 하는 형태로 logistic regression model을 설계했었다. 즉 별다른 작업을 거칠 필요가 없었다. (Discriminative Model 자체가 컨셉이 더 간단하다보니, 유도 과정 자체도 더 단순해질 수 밖에 없는 것 아닌가 하는 생각이 든다.)

 

반면 Generative Model 은 위 공식유도와 같이 Bayes theorem 형태로 바꿔서 적용하려고 노력한다. 

 

보통 $P(X)$ 는 normalize constant term 으로 제하고서 $P(Y =y |X) \propto {P(X|Y = y)P(Y=y)}$ 로 본다. 

 

그리고 이 중 $P(Y=y)$ prior 로,  $P(X|Y = y)$ 를 likelihood로 보곤한다. 여기서 $P(X|Y = y)P(Y=y)$ 부분을 추정해서 classification model 을 만든다. 이것이 Naive Bayes 모델의 기본 형태이다. 

 

하지만 지금은 equal 관계를 모델링 하는 것이기 때문에 분모 부분을 생략하지 않고 deriviation 한다.

 

여기서는 categorical value 가 아니라 numerical, continuous value 를 다룬다. 여기에 Gaussian 가정을 덧붙여서 Gaussian Naive Bayes 로 만들었다. 

 

정리하자면 Generative model 은 $P(Y|X)$ 를 bayes theorem 을 활용해 prior 와 likelihood로 만들어준 다음에 posterior 를 그대로 측정하는 것이 아니라 prior 와 likelihood를 개별적으로 learning 하거나 parameter 를 넣어 만드려고 한다. (만들고나니 MLE, MAP 와 유사해보인다.)

 

지금 여기서의 목표는 Naive Bayes 에서 Logistic Regression 이 유도가 된 다는 것을 보이고자 하는 것이다. 

물론, Bayes theorem 에 의해 성립이 되긴 하지만,  $f_{NB}(x) = argmax_{Y=y} P(Y=y)\prod_{1 \leq i \leq d} P(X_i = x_i | Y = y)$ 형태, 여기서도 Gaussian 가정이 가미 된 아래 형태에서 

 

 

logistic regression 으로 바꿔주면 어떻게 될지 살펴보자. 

 

 

$P(X)$ 는 아래와 같은 모든 X를 포함해 줘야 하므로 Y 가 포함 될 때의 X, Y가 포함 되지 않을 때의 X 모두 더해준다. 

 

$P(X|Y = y)P(Y=y)$ 는 X 가 여러개가 되었을 때 parameter 의 수가 exponential 하게 증가하기 때문에 Naive Assumption 을 이용해서 개별 feature 들의 multiplication 형태 $P(Y=y)\prod_{1 \leq i \leq d}P(X_i |Y=y)$로 만들어주었다. 분모도 동일하게 적용해 주었다.

 

또한, Gaussian 가정을 했기에, 이에 맞춰 모델 형태를 변화시킨다. 

((Y= y, n) 인걸 통해서 X 가 continuous variable 인 것과 관련없이 output 이 Yes, No 로 나뉘는 classifier 인 것임을 기억하자.)

 

분자와 분모가 겹치는 부분이 있어서 약분해주고 아래와 같이 정리한다. 

 

 

또 추가적으로 가정을 해본다. $a_2^i = a_1^i$ 

 

총 가정이 3가지이다. 

1. Gaussian Assumption 

2. Naive Assumption

3. input feature 가 나타내는 각 클래스간의 variance 가 동일

 

이로 인해 부분적으로 더 간략하게 정리가 되었다. 

 

$e^1 \cdot e^2 = e^{1+2}$ 지수의 곱이 합이 되는 특성을 이용하여 정리 

 

prior 파트인 $\pi_2, pi_1$ 도 내부로 넣게되면 log 가 붙는다. 

 

 

지수함수의 나눗셈은 뺄셈이므로 아래와 같이 더 정리 가능하다.

 

$\sum$ 이 같은 형태이므로, 합쳤다. 

 

 $a_2^i = a_1^i$  로 가정이 되었으므로 통일한다. 

 

그 후 식을 다 정리한다. 

 

 

다 정리하고 나니, logistic regression 에서 쓰이는 logistic function과 형태가 똑같아졌다. 

 

$\sum_{1 \leq i \leq d}\{ 2(\mu_2^i - \mu_1^i)X_i + \mu_1^{i^{2}} - \mu_2^{i^{2}}\} + \log \pi_2 - log\pi_1$

$\rightarrow X\theta$ 의 linear term 하고 동일하다. 

 

위 증명은 어떤 의미가 있을까?

Gaussian Naive Bayes 라는 모델은 class 로 sorting 한 경우(여기서는 Yes or No)에 같은 feature 들에서는 같은 level의 variance 를 갖는다고, 두개의 class 를 설명하는 추가 가정을 달면 그 것 자체가 즉 logistic regression 과 동일해진다는 것을 확인했다. 

 

 

결론적으로 살펴보자면 Naive Bayes는 Logistic Regression에 비해 몇가지 더 가정을 걸었다. (물론 Logistic Regression의 가장 하나가 Naive Bayes 의 가정들보다 더 좋다고 단정할 수는 없다.)

 

하지만 학계에서의 정론은 logistic regression이 Naive Bayes 보다 성능이 더 좋다고 한다. 

 

Naive Bayes는 Logistic Regression 보다 오히려 찾아야하는 parameter 의 개수도 많다. 

$\mu$ 에 대해 2개, input feature $d$ , variance 에 대해 2개 (가정으로 인해 1개로 처리)

= 2 X 2(1) X d + 1 = 4d(2d) +1(prior)

 

반면 Logistic Regression은 d + 1(prior) 으로 수가 훨씬 적다. 

 

그렇다면 Logistic Regression은 모든 상황에서 항상 더 좋을까? 

 

Naive Bayes 는 Bayes Theorem 을 기반으로 하기 때문에, prior 정보를 파라미터 추정 과정에서 추가해줄 수 있다. 

즉 조작할 수 있는 레버가 좀 더 많다. 즉, 좋은 사전 정보가 있다면 Naive Bayes 가 더 좋을 수 있는 것이다. 

 

이에 따라 주어진 문제 상황에 대해서 가장 적절한 모델이 무엇일까 생각하고 적용하는 것이 굉장히 중요하다. 

그렇기에 이러한 비교 과정을 follow up 하며 내용을 알고있는 것이 중요하다. 

 

Generative - Discriminative Pair

 

Generative model, P(Y|X) = P(X,Y) / P(X) = P(X|Y)P(Y)/ P(X)

 

Generative model 은 P(Y|X) 를 굳이 위와 같이 표현을 한다. 

  • Full probabilistic model of all variables

데이터로부터 P(X|Y), P(Y) 의 파라미터를 측정한다. 

  • Characteristic: Bayesian, Prior, Modeling the joint probability 
  • Naive Bayes classifier

Discriminative model P(Y|X)

 

관측 된 변수들의 분포를 모델링 할 필요가 없다. 

  • 데이터로부터 얻은 P(Y|X) 의 파라미터를 측정한다. 
  • Characteristics: conditional probability 를 모델링한다. 
  •  Logistic Regression 

Pros and Cons 

 

Logistic Regression is less biased 

Probably approximately correct learning: Naive Bayes learns faster

 

 

위 과정을 통해 90년도 중후반까지 사용했던 classic model 들을 살펴보았다. 

 

다음 게시물부터는 20년도 초반에 많이 활용된 SVM 에 대하여 다뤄본다. 

 

 

 

Comments