Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

ML & AI

Logistic Regression 에서의 Regularization

머신러닝 초보자인 나는 지금 introdution to Machine Learning with Python이라는 책을 보고 있다.

책을 보던 중 지도학습 파트의 선형 이진 분류기 부분에서, Logistic Regression 과 SVM 내용이 나오는데, 여기서 

regularization 의 개념이 나온다. 

 

물론 Lasso 와 Ridge regression에서의 regularization의 개념은 배운 바 있지만, 

Logistic Regression에서의 규제는 어떻게 적용하는지 들어본 바 없었다.

 

로지스틱 회귀에서의 규제항?





로지스틱 회귀를 자세히 봐보자.

 

GLM 구성요소에 따라 이를 분석해보면,

 

  • Random Component : Y ~ BP -> y는 확률이 p인 이항분포를 따른다.
  • Systemic Component : 성공확률 p와  Regressor의 선형결합 Bo + B1X1 + B2X2 + .......... 사이의 연관성 존재
  • Link Function : Logitp =  Bo + B1X1 + B2X2 + .......... 

 

이 때, 회귀계수 Bo, B1, B2 ,,, 는 maximum likelihood estimation 에 의해 추정된다.

 

 

사실. Regularization의 원리는 Ridge, Lasso의 그것과 완전히 동일하다. 즉, 

 

Cost function + Regularizaton 이 가장 작아지도록 하는 Coefficient를 찾아내면 된다.

 

그럼 Logistic Regression에서의 Cost Function만 알면 궁금증 해결이다. 

 

P(Y=(y1,y2,y3,......)=πy1+..+ykx(1π)1y1+..1yk

 

양변에 로그를 취하면, Log Likelihood Function을 구할 수 있다.

 

Loglikelihood=Nk=1Yilog(π/1π)+Nlog(1π) 

 

이 때, Log likelihood를 최대로 만드는 Coefficients 를 구하면 된다.

 

이를 비용함수로 사용하기 위해서 음의 부호를 곱해주자 Costfunction

 

$$ Cost function =  -Log likelihood = - \sum_{k = 1}^N Y_i logπ/1π - Nlog1π $$

 

즉 우리가 구하는 Regularization이 추가된 Logistic Regression은 

 

 

$$  -\sum_{k = 1}^N Y_i logπ/1π - Nlog1π   +  Regularization $$