본문 바로가기

Machine Learning/Business Analytics 1

Logistic Regression : Learning

자료 출처

 

Estimating the coefficients

두 개의 서로 다른 로지스틱 모델이 있다고 가정해보자. 각 모델은 아래와 같이 동일한 데이터 세트에 대해 예측한다. 어떤 모델이 더 좋은가?

모델 A가 정답 레이블에 대해 더 높은 확률을 예측하기 때문에 더 좋은 모델이라고 할 수 있다.

 

Likelihood function

  • 개별 객체에 대한 우도(likelihood)는 올바른 클래스로 분류될 것으로 예상되는 확률이다.
    • Glass 1의 우도 : 0.908
    • Glass 2의 우도 : 0.799
  • 객체가 독립적으로 생성된 것으로 가정하는 경우 전체 데이터 세트의 우도는 모든 객체의 우도의 곱이다.
  • A, B가 독립일 경우 P(A|B) = P(A)P(B)
  • 우도 같은 경우 [0, 1] 범위의 값을 가지기 때문에 데이터셋이 크다면 전체 데이터 세트의 우도는 0에 가까워질 것이다. 그래서 일반적으로 로그우도를 사용한다.

  • 모델 A와 B를 비교하였을 때 로그우도의 값이 A가 더 크다. 따라서 로그우도의 값이 큰 모델이 더 좋은 모델이라고 할 수 있다. 반대로 음의 로그우도의 경우는 더 작은 쪽이 더 좋은 모델이라고 할 수 있다.
  • 좋은 모델을 만들기 위해서는 로그우도를 최대화 하거나 음의 로그우도를 최소화해야 한다.

Maximum likelihood estimation(MLE)

데이터셋의 우도를 최대화 하는 계수를 찾는 것

 

어떤 객체 i에 대한 우도는 다음과 같이 수식으로 정리할 수 있다. $\sigma (x_i|\beta)$는 이전 글에서 정리했듯이 예측 값이 1일 확률이다.

$y_i$값이 0 또는 1이기 때문에 위의 식은 다음과 같이 다시 쓸 수 있다.

모든 객체가 독립적으로 생성되었을 경우 전체 데이터셋에 대한 우도는 다음과 같다.

양변에 로그를 취하면 다음과 같다.

$\log L(X, y|\beta) = \sum_{i=1}^N \log (y_i \sigma (x_i|\beta)) + \log ((1-y_i)(1- \sigma (x_i|\beta)))$

 

결과적으로 우도는 coefficient에 대해 비선형이므로, 자명한 해가 존재하지 않는다. 따라서 경사 하강법 등의 최적화 알고리즘을 통해 솔루션을 찾아야 한다.

 

Gradient Descent

경사 하강법에 대한 설명은 이전 포스트에서 다룬적이 있어서 추가적인 내용으로 이론적 배경만 다룬다.

2023.09.13 - [책/밑바닥부터 시작하는 딥러닝] - 4장 신경망 학습 (1)

 

Taylor expansion

만약 $\Delta w$가 작다면 2차 도함수 부터의 항을 0으로 날리고 1차 도함수 만으로 근사할 수 있다.

 

1차 도함수 값이 0이 아니라면 우리는 1차 도함수의 반대 방향으로 $w$를 이동시켜 함수 값을 감소시킬 수 있다.

$\alpha$는 우리가 흔히 알고 있는 학습률이다.

 

이렇게 하면 새로운 $w$에 대한 함수 값은 이전보다 항상 작아진다.

 

 

경사 하강법을 적용하는 예시를 살펴보자.

손실 함수는 간단하게 오차 제곱을 사용한다.

chain rule을 사용하여 손실 함수의 가중치에 대한 미분값을 계산한다.

여기서 눈여겨 보아야 할 것은 $w_i$이다. 즉 각 가중치별로 기울기를 계산하는 것이다.

 

추가적으로 업데이트된 가중치에 대해 이해해보면 다음과 같다.

예측값과 실제값이 매우 다르면 coefficient가 더 업데이트 된다.

coefficient에 대응하는 input varible이 클 수록 coefficient가 더 업데이트 된다. ← 개인적으로 이부분이 매우 중요하다고 생각함

 

이진 분류에서 cut-off 결정

실제 프로젝트에서 minority한 클래스를 positive class로 설정하여 cut-off 값을 낮추는 경우가 일반적이라고 한다.

 

또한 어떤식으로 의사 결정을 할지에 따라 예를 들면, 정확도를 최대화, sensitivity를 최대화, false-positive를 최소화, 오분류에 대한 cost 기대값을 최소화 하는 등 cut-off 값을 결정해야 한다.