패스트캠퍼스 데이터사이언스 스쿨 강의노트를 참고했습니다
확률적 모형
- 로지스틱 회귀 모형은 “확률적(probabilistic)”, “판별(discriminative)” 모형 중 하나이다.
- 확률적 판별 모형은, 주어진 데이터에 대해 각 카테고리(혹은 클래스)가 정답일 조건부 확률을 계산하기 때문에 확률적 모형에 속한다.
- 확률적 모형은 독립변수 $x$가 주어졌을 때, 종속변수 $y$가 될 확률 $P(y = k \mid x)$를 모두 계산하고(1), 다음으로 가장 확률이 큰 클래스를 선택한다.(2)
$$
\text{(1) }
\begin{eqnarray}
P_1 &=& P(y = 1 \mid x) \
\vdots & & \vdots \
P_K &=& P(y = K \mid x)
\end{eqnarray}
$$
$$
\text{(2) }
y = \arg\max_{k} P(y=k \mid x)
$$
- 확률적 모형은 생성모형(generative model)과 판별모형(discriminative model)로 나뉜다.
확률적 판별 모형
- 확률론적 판별 모형은 조건부확률 $p(y = 1 \mid x)$ 이 $x$ 에 대한 함수 $f(x)$ 로 표시될 수 있다고 가정하고 그 함수를 직접 찾아내는 방법이다.
- 단, 이 함수 $f(x)$ 는 확률이기 때문에, “0과 1사이의 실수”를 결과로 도출해야 한다.
로지스틱 회귀 모형: 개념
- 로지스틱 회귀(logistic regression)은 독립변수의 선형 결합을 이용하여 종속변수 발생 가능성을 예측하는 알고리즘이다.
- 선형 회귀처럼, 독립변수로 종속변수를 설명한다. 그러나 선형 회귀와 다르게 종속변수가 범주형 데이터일 때 주로 사용하기 때문에 일종의 분류(classification) 알고리즘이라고도 할 수 있다.
- 종속변수가 두 개 이상의 범주인 경우, 다항 로지스틱 회귀(multinomial logistic regression) 또는 분화 로지스틱 회귀(polytomous logistic regression) 알고리즘을 사용한다.
로지스틱 회귀 모형: 원리
- 종속변수가 베르누이 분포를 따른다고 가정하고, 모수 $\mu$를 추정한다.
- 종속변수가 베르누이 분포를 따른다면, 베르누이 분포의 모수 $\mu$는 0과 1 사이 실수이다. 왜냐하면 베르누이 확률변수의 모수 $\mu$는 1이 나올 확률을 의미하는데, 확률은 0과 1 사이의 사이의 실수이기 때문이다.
- 그런데 모수 $\mu$을 추정하기 위한, 표본 데이터 $y_1, \ldots, y_N$은 0과 1 사이의 실수가 아닌 음의 무한대와 양의 무한대 사이의 실수, 즉 모든 실수이다.
- 그러므로 모든 실수로 나오는 종속변수가, 0과 1 사이의 베르누이 분포를 띄는 종속변수로 나오도록 하기 위해서는 아래와 같은 일련의 과정이 필요하다.
(i) odds ratio를 활용하여, 0과 1 사이의 실수를 0과 양의 무한대 사이의 실수로 변환한다.
$\text{odds ratio} = \dfrac{\mu}{1-\mu}$
(ii) odds ratio를 로그 변환하여, 로지트 함수(Logit function)를 만든다.
$z = \text{logit}(\text{odds ratio}) = \log \left(\dfrac{\mu}{1-\mu}\right)$
(iii) 로지트 함수의 역함수, 로지스틱 함수(logistic function)을 만든다. 로지스틱 함수는, 음의 무한대에서 양의 무한대까지의 실수를 0부터 1사이의 실수로 변환한다.
$\text{logitstic}(z) = \mu(z) = \dfrac{1}{1+\exp{(-z)}}$
5.LL : 로지스틱 모형은 비선형 모형이기 때문에 모수 $w$ 를 추정하기 위해서는, MLE를 활용해야 한다. 아래는 MLE에서, LL(Log Likelihood).
\begin{eqnarray}
\text{LL}
&=& \log \prod_{i=1}^N \mu(x_i;w)^{y_i} (1-\mu(x_i;w))^{1-y_i} \
&=& \sum_{i=1}^N \left( y_i \log\mu(x_i;w) + (1-y_i)\log(1-\mu(x_i;w)) \right) \
&=& \sum_{i=1}^N \left( y_i \log\left(\dfrac{1}{1 + \exp{(-w^Tx_i)}}\right) + (1-y_i)\log\left(\dfrac{\exp{(-w^Tx_i)}}{1 + \exp{(-w^Tx_i)}}\right) \right) \
\end{eqnarray}
6.LL을 최대로 하는 $w$ 를 구하기 위해서 아래와 같이 미분을 하고, 두 식을 정리하면, 아래와 같은 결과가 나온다
$$
\dfrac{\partial\text{LL}}{\partial w} = \sum_{i=1}^N \dfrac{\partial\text{LL}}{\partial \mu(x_i;w)} \dfrac{\partial\mu(x_i;w)}{\partial w}
$$
\begin{eqnarray}
\dfrac{\partial \text{LL}}{\partial w}
&=& \sum_{i=1}^N \left( y_i \dfrac{1}{\mu(x_i;w)} - (1-y_i)\dfrac{1}{1-\mu(x_i;w)} \right) \mu(x_i;w)(1-\mu(x_i;w)) x_i \
&=& \sum_{i=1}^N \big( y_i (1-\mu(x_i;w)) - (1-y_i)\mu(x_i;w) \big) x_i \
&=& \sum_{i=1}^N \big( y_i - \mu(x_i;w) \big) x_i \
\end{eqnarray}
7.SGD(Steepest Gradient Descent)를 활용해서, 목적함수 $J$를 최소화하는 $w$를 구한다. 목적함수 $J$는 $-LL$이다.
\begin{eqnarray}
w_{k+1}
&=& w_{k} - \eta_k g_k \
&=& w_{k} + \eta_k \sum_{i=1}^N \big( y_i - \mu(x_i; w_k) \big) x_i\
\end{eqnarray}
로지스틱 회귀 모형: 성능 측정
- 로지스틱 회귀 성능은 McFadden pseudo R square 값으로 측정한다.
$$ R^2_{\text{pseudo}} = 1 - \dfrac{G^2}{G^2_0} $$
- $ G^2$는 deviance로, 로그 로스(log loss)라고도 하며 아래처럼 정의된다. deviance는 모형이 100% 정확한 경우 0, 모형이 성능이 나빠질 경우 값이 커진다. $G^2$ 는 현재 deviance, $G^2_0$ 는 귀무 모형으로 측정한 deviance 이다.
$$ G^2 = 2\sum_{i=1}^N \left( y_i\log\dfrac{y_i}{\hat{y}_i} + (1-y_i)\log\dfrac{1-y_i}{1-\hat{y}_i} \right) $$
$$ G^2 = - LL $$
부록: 모수 추정
- 모수 추정은 확률분포의 표본 데이터 $x_1, x_2, x_3, …, x_n$ 값은 알고 있는데, 모수를 알지 못하는 경우 활용한다.
- 모수 추정을 활용하면, 표본 데이터로 역으로 모수를 추정하고 나아가 새로운 표본 데이터를 생성할 수 있다.
- 확률변수 : 수학적으로 확률이 정의된 “표본공간의 모든 표본”을 실수인 숫자로 바꾸는 함수. 가상의 수학 세계에 존재하는 것으로, 현실 세계의 표본(sample)을 만드는 데이터생성기 역할을 한다.
- 모수 추정은 모멘트 방법, 최대 가능도 추정(MLE), 베이지안 추정 등 방법이 있다.
부록: 최대 가능도 모수 추정의 원리 (MLE)
- 최대 가능도 추정(MLE)는 표본 데이터 $x$ 에 대해 가능도를 가장 크게 하는 모수 $\theta$를 찾는 방법이다.
- 보통 확률변수 표본 수는 단수가 아닌 복수 {$x_1, x_2, \ldots, x_N$} 이므로 가능도도 복수 표본에 대한 결합 확률밀도 $p_{X_1, X_2, \cdots, X_N}(x_1, x_2, \cdots, x_N ; \theta)$ 에서 구해야 한다.
- 그런데 표본 데이터 $x_1, \ldots, x_N$ 은 확률분포에서 독립적으로 나왔으므로 결합 확률밀도함수는 아래처럼 표현한다.
$$ L(\theta; x_1, \ldots, x_N) = L(\theta; { x_i }{i=1}^N) = \prod{i=1}^N p(x_i ; \theta)$$
- 실제로 최대 가능도 추정 방법을 사용하려면, 가능도가 최대가 되는 $\theta$ 를 로그 변환하여 수치적으로 계산해야 한다. (수치적 최적화) $\hat\theta_{\text{ML}} = \arg \max_{\theta} {\text{log}} \; L(\theta; {x_i})$
- 그 이유는 (1) 로그변환을 해도, 최대 가능도 추정의 결과(모수)가 바뀌지 않고
- (2) 로그변환을 하면, 결합 확률밀도함수가 함수의 곱에서 덧셈으로 바뀌어 연산이 쉬워지기 때문이다.
부록: 베르누이 분포
- 베르누이 확률변수는 베루누이 확률변수의 결과를 실수 0 또는 실수 1로 바꾼 것이다.
두 가지 값 - 0, 1 - 중 하나만 가질 수 있으므로 이산확률변수라고도 한다.
$$\text{Bern}(x;\mu) =
\begin{cases}
\mu & \text{if }x=1, \
1-\mu & \text{if }x=0
\end{cases}$$
베르누이 확률변수는 1이 나올 확률을 의미하는 $\mu$라는 모수(parameter)를 가진다.