기계학습/인공지능및기계학습개론정리

Logistic Regression + Gaussian Naive Bayes

H_erb Salt 2020. 8. 27. 10:43

 

- binomial 혹은 multinomial에 적용 가능한 확률론적 분류기(probabilitic classifier)

 

- 로지스틱 회귀는 시그모이드의 특별한 형태

f(x)=11+ex

 

 

- 로지스틱 회귀를 역함수 형태로 만들면 로짓 함수(logit function)이라 하며, 이는

f(x)=log(x1x)

로 표현함.

 

 

- linear regression에서 첫 항을 더미변수 1로 놓았을 때, ^f(x)=Xθ로 표현함.

여기서, logistic regression을 위한 베르누이 분포의 pmf (우리가 궁극적으로 찾아야 할 식)는

P(y|x)=μ(x)y(1μ(x))1y

 

한편, μ(x)를 logistic function에 대입시키면

μ(x)=P(y=1|x)=11+eθTx=eXθ1+eXθ

 

 

- 여기서, μ(x)를 linear regression에 의한 추정이 아닌 logistic function에 의해서 regression을 해보겠다고 시도하는 것이 logistic regression이 됨.

 

 

- MLE로 θ를 찾아나감. 다만, Y는 input feacture X가 주어진 상태(given)에서 추정하는 것이므로 그냥 MLE가 아닌 MCLE(Maximum Conditional Likelihood Estimation)이 되고, 이를

ˆθ=argmaxθ1iNP(Yi|Xi;θ)

로 표현함.

 

 

- 여기서 베르누이 pmf를 대입하여 식을 정리(로그를 씌우고 식을 정리한 뒤 θ에 대해 미분하여 최적값을 찾아나감)하면, 최종형태는 

 

θj{1iNYiXiθlog(1+eXiθ)}=1iNXi,j(YieXiθ1+eXiθ)=1iNXi,j(YiP(Yi=1|Xi;θ))=0

 

로 표현됨.

 

 

- 위의 식에서 θ가 0이 되는 지점이 결국 θ를 optimize 하는 것인데, θ에 관해서 풀어내는 것이 쉽지 않다. (참고로, linear regression의 경우에는 θ=(XTX)1XTY)θ에 대해 딱 떨어짐)

따라서, θ를 직접 계산하는 것이 아니라 방법을 우회하여 점점점점 approximation 하는 방향으로 진행하게 된다.

 

 

- 이 때 쓰이는 방법이 우리들이 흔히 알고 있는 Gradient Method(Gradient Descent/Ascent)

 Gradient Method에 기존 스터디 자료가 있으므로 참고할 것(여기)

 해당 자료는 간단한 개요

 

 

- Gradient Method를 위해 테일러 전개를 통해 실제 식을 근사한 식으로 표현한 뒤, 초기값(x1)을 잡고 방향벡터와 그 크기(x=x1+hu)를 가정 (h는 learning rate로 휴리스틱하게 잡는다)

f(x1+hu)=f(x1)+hf(x1)u+h2O(1)

 

 

- 여기서, 뒤에 식은 Big-O notation관련 내용이며 별도로 정리하지 않음. h를 매우 작게 낮추면 뒤에 식은 제곱으로 커지므로 거의 없는셈 치는게 가능하므로,

f(x1+hu)f(x1)hf(x1)u

로 정리됨.

 

- 위의 식에서 방향벡터 u를 조정하여 값을 낮추거나 높이는 방향으로 Gradient Method가 진행된다.

u*=argminu{f(x1+hu)f(x1)}

 

 

 

- NaiveBayes를 Logistic Regression으로 표현 후 비교한 것 정리

 

 

- 결론

나이브 베이즈에서, 여러 가정을 추가하면 결국 로지스틱 리그레션과 똑같아진다.

그 형태가 gaussian navie bayes가 되는데, 연산량도 가정도 logistic regrssion보다 많다.

 

그렇다고 gnb가 무조건 나쁘다고 볼 수 있는가? 그건 아니다.

왜냐하면 prior정보를 gnb에서 설정할 수 있기 때문이다. 즉 사전 정보를 가지고 추정하는게 가능한 형태이기 때문에 적절히 사용하는 것이 중요하다.

 

sklearn에서의 구현은 

여기

참고할 것