히비스서커스의 블로그

[기계학습 4강] Logistic Regression 본문

Theory/Machine Learning

[기계학습 4강] Logistic Regression

HibisCircus 2021. 4. 10. 14:57
728x90

 내용들은 (KAIST Open Online Course)의 인공지능 및 기계학습 개론 1 Chap. 4강 내용을 기반으로 재구성하였음을 먼저 밝힙니다.

 

 

저번 시간에 이어 이번에는  Sigmoid function 중 하나인 Logistic Function에 관하여 알아보자. 먼저 Sigmoid function이 가지는 특징에 대하여 살펴보면

 

  • 경계를 가진다.
  • 차별화할 수 있다. (부드럽게 되어 있어)
  • 실제 함수이다.
  • 모든 실제 입력값에 대해 정의된다. x들은 -에서 +에 되어 있고 combine되어 있어야 한다. 
  • 양의 미분값을 가진다. (증가함수여야 한다.)

 

Logistic Function 은 결과값이 0과 1 사이의 값을 가지는 함수이다. Logistic Function의 역함수는 Logit Function으로 아래와 같은 모양을 가진다. 사실 Logistic Function이 자주 활용되는 분야는 사회학에서 인구증가 모델링이나 생물학에서 미생물의 성장곡선(Growth Curve) 나타낼 때 주로 쓰인다.

 

 

  • $Logistic Function$ :: $f(x) = \frac{1}{1 + e^{-x}}$
  • $Logit Fuction$ :: $f(x) = log(\frac{x}{1-x})$

 

Logstic Function을 선호하는 이유는 크게 2가지 인데 첫번째로 Sigmoid Function의 조건을 만족한다는 것이다. 두번째는 미분을 구하기 쉽다는 것이다. 미분이 쉽다는 의미는 Optimization을 할때 미분값을 구하여 최적값을 구하기 편하다는 의미이므로 Optimization의 최적값을 구하기에 유리하다.

 

 

 

Logisitic Function Fitting


이제 Logistic Function을 Fitting 해보자. 먼저 앞서 배운 Logstic Function의 역함수인 Logit Function을 살펴보자.

 

Logit Function

$f(x) = log(\frac{x}{1-x})$

 

우리는 단지 Logit Function을 사용하려고 가져온 것이기 때문에 $f(x), x$ 모두 아직은 어떤 값(우리가 활용하려는 값 $A_{15}$이나 가능도 p 등)의 의미를 가지지 않는다. 우리는 이 함수에 우리가 활용하려는 값들의 범위에 맞춰서 fitting할 것이다.

 

Logit Function의 $x$의 값이 가지는 범위가 가능도의 값(= $p$, $0 \leq p \leq 1$)이 가지는 범위와 같음을 이용해서 $x$를 가능도로 하여 p의 값을 넣어보자. 또한, Logit Function의 $f(x)$가 가지는 범위는 실수값 전체가 되는데 이는 우리가 넣으려는 입력값 $A_{15}$와 같음을 이용해서 $x$(우리가 넣으려는 입력값)으로 넣어보면 다음과 같아진다.

 

가로축이 x, 세로축이 p

 

$x = log(\frac{p}{1-p})$

 

입력값의 범위만 맞춰준다고 fitting이 되는 것이 아니다. 정확하게 맞춰주려면 세부적인 조정이 필요하다. 이를 위해서 $x$에 상수 a를 곱해주자. 이 경우 S자의 모양이 좌우로 압축되거나 늘리는 정도의 교정을 해주는 역할을 한다. 추가적으로 곱하여 만들어진 $ax$에 상수$b$를 더하여 주자. 이 경우 S자 모양을 그대로 유지한 채 좌우로 움직이는 정도의 교정을 해주는 역할을 한다. 이를 식으로 나타내면 다음과 같다.

 

$ax + b = log(\frac{p}{1-p})$

 

왼쪽 식의 형태를 잘 살펴보면 일차 함수 모양이고 Linear Regression의 가설 함수 형태($\hat{f} = X\theta$)로 나타낼 수 있다. 예를 들어 x가 n변량 변수라고 한다면

 

$X = \begin{pmatrix} 1 & x_1 & ... & x_{n} \end{pmatrix}$, $\theta = \begin{pmatrix} b \\ a_{1} \\ ... \\ a_{n} \end{pmatrix}$

 

와 같이 하여 $\hat{f} = X\theta$로 나타낼 수 있는 것이다. 이를 적용하여 위의 식을 최종적으로 나타내보면 다음과 같다.

 

$X\theta = log(\frac{p}{1-p})$

 

 

 

우리는 Linear Regression에서 가설함수형태($\hat{f} = X\theta$)에 $P(Y|X)$를 아래와 같이 fitting 하였었다. 

 

$X\theta = P(Y|X)$

 

이와 달리 logisitic Regresion에서는 가설함수형태($\hat{f} = X\theta$)에 $P(Y|X)$를 아래와 같이 fitting 하는 것이다.

 

$X\theta = log(\frac{P(Y|X)}{1-P(Y|X)})$

 

 

 

 

Logistic Regression


확률적인 Classifier으로 binomial 이나 mulinomial 결과에 대해 예측할 수 있다. 우리는 binomial 결과에 대해서만 살펴보자. Binomial Distribution의 근간이 되는 베르누이 시행에서의 조건부 확률은 다음과 같이 나타냈었다.

 

$ P(y|x) = \mu(x)^y (1-\mu(x))^{1-y}$

 

참고) 베르누이 확률변수($X$)의 확률질량함수 (성공확률이 p일 때)

$f(x) = P(X = x) = p^{x}(1-p)^{1-x}$ (단, $x = 0, 1$ )

$= \left\{\begin{matrix} 1-p & ,x =0\\ p & ,x=1 \end{matrix}\right.$

 

Regression을 할 때 어떤 Regression을 할 건지에 따라서 $\mu(x)$의 함수를 정한다. 우리는 Logistic Regression을 할 것이므로  $\mu(x)$를 Logistic Function으로 모델링을 해주어 나타내면

 

$\mu(x) = \frac{1}{1 + e^{-\theta^{T} x}}$

 

이다. 여기서 $-\theta^{T}x$가 나타내는 것은 하나의 instance에 대한 $X\theta$이다.

 

 

 

그렇다면 왜 $\mu(x)$를 Logistic Function으로 모델링을 해줄까? 

 

이는 위에서 구했던 

$X\theta = log(\frac{P(Y|X)}{1-P(Y|X)})$를 $P(Y|X)$에 대해 나타내주면


$ e^{X\theta} = \frac{P(Y|X)}{1-P(Y|X)}$

$ e^{X\theta}(1-P(Y|X)) = P(Y|X)$

$ e^{X\theta} = (e^{X\theta} + 1)P(Y|X)$

$ P(Y|X) = \frac{e^{X\theta}}{e^{X\theta} + 1} = \frac{1}{1 + e^{-\theta^{T}X}}$

로 나타냄을 확인할 수 있다.

 

베르누이 시행에서의 조건부 확률 $ P(y|x) = \mu(x)^y (1-\mu(x))^{1-y}$ 에 대해 우리는 Logistic Regression을 해줄 것 인데 y=1일 때를 살펴보면 

 

$P(y=1 | x) = \mu(x) = \frac{1}{1 + e^{-\theta^{T}x}}$

 

와 같이 나타내지는 것으로 이해할 수 있다.

 

 

이제 Logistic Regression이 위와 같이 나타남을 알게 되었다. 그렇다면 우리에게 주어진 것은 무엇이고 구해야하는 것이 무엇인지 확인해보자. 우리는 $X$(= $A_{15}$)와 Y(= p, 가능도)는 얻을 수 있다. 하지만 $X$의 가중치라고 할 수 있는 $\theta$(= a, b)는 우리가 추정해야(최적화해야) 하는 대상인 것이다.

 

 

 

 

 

Finding the parameter, $\theta$


우리는 $\theta$에 대해 추정하는 방법으로 MLE(Maximum Likelihood Estimation)를 사용해본적이 있다. 이때 아래의 방식과 같이 추정하였는데

 

$\hat{\theta} = argmax_{\theta} P(D|\theta)$, (이때 $D$는 Dataset 으로 $X$(= input feature)와 $Y$(=class variable) 구분하지 않은 것)

 

 

이는 Conditional 한 상황에서도 가능하다. 이를 MCLE(Maximum Conditional Likelihood Estimation)이라 하며 아래와 같이 추정한다.

 

$\hat{\theta} = argmax_{\theta} P(D|\theta) = argmax_{\theta} \prod_{1 \leq i \leq N} P(Y_{i}|X_{i} ; \theta)$, (위에서와 동일하게 $Y$(=class variable)에 대한 확률을 모델링하는 것과 $\theta$는 추정해야 한다는 것은 같다. 하지만, $X$(= input feature)가 주어졌을 때를 구하는 것이다. )

 

 

이제 위의 식에서 $\theta$를 하나의 최적의 값으로 추정하기 위해 여러가지 방법들을 적용해보자. 먼저 함수들의 곱으로 이루어져 있으므로 $log$ 함수를 취해주자. (저번에 MLE를 구하는 과정에서 언급했듯이 $log$는 증가함수이므로 $log$를 취해준에도 최적의 $\theta$의 값은 변하지 않는다.)

 

$\hat{\theta} = argmax_{\theta} P(D| \theta) = argmax_{\theta} \prod_{1 \leq i \leq N} P(Y_i | X_i ; \theta) $

$ = argmax_{\theta} log(\prod_{1 \leq i \leq N} P(Y_{i} | X_{i} ; \theta)) = argmax_{\theta} \sum_{1 \leq i \leq N} log( P(Y_i | X_i ; \theta))$

 

 

더 이상의 진행은 쉽지 않아보인다. P자체를 내용을 풀어놓고 해야 진행이 될 듯 하다. P자체 내용은 베르누이 시행이었다. 이를 고려하여 $P(Y_i | X_i ; \theta)$를 풀어보면

 

$P(Y_i | X_i ; \theta) = \mu(X_i)^{Y_i} (1-\mu(X_i))^{1-Y_i}$

 

가 되므로 이를 위의 식에 대입하여 또 진행해보자.

 

$log(P(Y_i | X_i ; \theta)) = Y_i log(\mu(X_i)) + (1 - Y_i) log(1 - \mu(X_i))$

$= Y_i \left \{ log(\mu(X_i)) - log(1 - \mu(X_i)) \right \}  + log(1 - \mu(X_i))$

$= Y_i log(\frac { \mu(X_i)}{1 - \mu(X_i) }) + log(1 - \mu(X_i))$

$= Y_i X_i \theta + log(1 - \mu(X_i))$, $\because X\theta = log(\frac{P(Y|X)}{1 - P(Y|X)})$, $P(Y|X) = \mu(X)$


참고)

$(log(1 -\frac{1}{1 + e^{-\theta^{T}X}}))$ , $\because \mu(X) = \frac{1}{1 + e^{-\theta^{T}X}}$

$(= log(\frac{e^{-\theta^{T}X}}{1 + e^{-\theta^{T}X}}))$

$(= log(\frac{1}{e^{X\theta}+1}))$

$(= -log(e^{X\theta} + 1))$


$= Y_i X_i \theta - log(1 + e^{X_i \theta})$

 

 

이제 특정 $\theta$에 대해 편미분을 적용하여 찾아보도록 하자.

 

$\frac{\partial}{\partial \theta_j} \left \{\sum_{1 \leq i \leq N} Y_i X_i \theta - log(1 + e^{X_i \theta}) \right \}$

$= \left \{\sum_{1 \leq i \leq N} Y_i X_{i, j} \right \} + \left \{\sum_{1 \leq i \leq N} - \frac{1}{1 + e^{X_i \theta}} e^{X_i \theta} X_{i , j} \right \}$, (자세한 부분은 아래를 참조)

$= \sum_{1 \leq i \leq N} X_{i, j} (Y_i - \frac{e^{X_i \theta}}{1 + e^{X_i \theta}})$ 

$= \sum_{1 \leq i \leq N} X_{i, j} (Y_i - P(Y_i = 1 | X_i; \theta)) = 0$

 

참고) 위에서 삼중 함수를 미분한 것이므로 다음과 같이 진행된 것이다.

$\left \{f(g(h(\theta))) \right \}' = f'(g(h(\theta))) g'(h(\theta)) h'(\theta)$

$f(\theta) = log_{e}(\theta), g(\theta) = 1 + e^{\theta}, h(\theta) = x_i \theta $

$f'(\theta) = \frac{1}{\theta}, g'(\theta) = e^{\theta}, h'(\theta) = x_i$

$\left \{f(g(h(\theta))) \right \}' = \frac{1}{1 + e^{X_i \theta}} e^{X_i \theta} X_{i, j}$

 

 

위에서 최종적으로 구한 $\sum_{1 \leq i \leq N} X_{i, j} (Y_i - P(Y_i = 1 | X_i; \theta)) = 0)$에서 $\theta$에 대해 하나에 대해 딱 떨어지는 것이 아니라 (= closed form solution을 갖는 것이 아니라) 목표 값에 대해 점점 다가가는 approximate하게 구해야 한다. (= open form solution을 갖는다.) 따라서, 어떻게 approximation을 할 수 있는지 배워야 더 진행해 추정할 수 있게 된다. 이는 다음 시간에 배워보도록 하자.

 

 

 

-히비스서커스-

728x90