본문 바로가기

Theory/Statistics

Maximum Likelihood Estimation & Maximum A Posteriori

반응형

Maximum likelihood estimation (MLE)

MLE (최대우도법)은 주어진 데이터셋 $D$에 대해 $D$를 가장 잘 설명하는 (likelihood) 모델의 파라미터 $w$를 찾는 방법입니다. Likelihood 란 특정한 파라미터로 정의된 모델의 분포가 데이터에 대해 얼마나 잘 들어맞는지에 대한 통계적인 정의로 확률은 단순히 정의된 확률분포 상에서의 값을 말하지만 likelihood 는 데이터 분포에 모델 분포가 얼마나 잘 들어맞는지를 뜻합니다. 즉, MLE는 likelihood 함수 $p(D|w)$ 가 최대화되는 $\hat{w}$를 찾는 방법이고 보통 로그를 취해 negative log-likelihood (NLL) 를 최소화하는 방향으로 식을 변환합니다.

$\hat{w}=argmax_w \{ p(D|w) \}=argmin_w \{ -log(p(D|w))\}$

로그를 취해줌으로서 서로 독립적인 샘플에 대해 확률곱으로 이루어진 원래의 식을 로그의 더하기로 바꿔줄 수 있습니다. $n$개의 데이터로 이루어진 $D$에 대해서 다음과 같이 정의됩니다.

$\hat{w}=argmax_w \{ \prod_{i=1}^n p(D_i|w)\}=argmin_w\{ -\sum_{i=1}^n log(p(D_i|w))\}$

예를 들어 간단한 선형회귀 함수 $y_i=w^T x_i +\epsilon_i$ ($epsilon$은 평균이 0인 정규분포) 에 대해서 다음과 같이

$p(y_i | x_i, w) = \frac{1}{\sqrt{2\pi}} exp (-\frac{(w^T x_i -y_i)^2}{2})$ 

Gaussian likelihood 함수를 정의할 수 있고 이 식에 negative log 를 취한 뒤 최소화하면 least square 수식과 같아집니다. 즉, 우리가 알고 있는 회귀를 위한 least square 수식은 Gaussian likelihood 를 최대화하는 것과 동일한 것이죠.

$f(w) = -\sum_{i=1}^n log (p(y_i|w, x_i))=-\sum_{i=1}^n log (\frac{1}{\sqrt{2\pi}} exp (-\frac{(w^T x_i -y_i)^2}{2}))$

$= (constant) + \frac{1}{2} \Vert wX -y\Vert^2$

여기서 주의할 점은 우리는 likelihood $p(y, X|w)$가 아닌 입력 $X$에 대한 조건부 likelihood $p(y|X, w)$를 최대화시킨다는 것입니다. $p(y, X|w)$는 데이터셋 자체를 생성하는 모델로 generative model 이고 $p(y|X, w)$는 입력 $X$로부터 $y$를 잘 설명하는 $w$를 구하는 discriminative model 입니다. 더 나아가 만약 likelihood 함수를 Laplace 분포로 $p(y_i|x_i, w)=\frac{1}{2}exp(-|w^T x_i -y_i|)$ 와 같이 정의한다면 이는 $\Vert Xw -y\Vert_1$ 의 absolute error 를 최소화 시키는 것과 동일합니다. 즉, likelihood 함수를 어떻게 정의하느냐에 따라 목적함수가 달라진다는 것이죠.


첨언하자면 Labplce 분포로 유도되는 L1 norm 은 이상치에 (outlier) 더 강건합니다. 밑의 그림과 같이 정규분포는 평균으로부터 멀어지면 확률이 급격히 작아지는 'light tail' 분포이고 Laplace 분포는 평균으로부터 멀어도 확률이 어느 정도 높은 'heavy tail' 분포를 띄게 되는데요, 이상치가 존재할 경우 Gaussian 분포로부터 유도된 L2 norm 은 차이의 제곱만큼 페널티를 가하기 때문에 이상치에 대해 영향을 많이 받습니다. 이에반해 Laplace 분포나 Student-t 분포같은 heavy tail 분포는 이상치에 대해서 이미 어느정도 높은 likelihood 를 부여하기 때문에 이상치의 영향력이 적어집니다.

Normal distribution vs Laplace distribution

Logistic regression

Sigmoid 함수 $h(z)=\frac{1}{1+exp(-z)}$는 선형함수를 [0, 1] 사이의 확률로 변환하는 함수로 logistic regression (이진 분류) 에서 사용됩니다. $y\in \{1, 0\}$에 대해서 $y=1$의 사후분포 $p(y=1|z)=h(z)$라 정의하면 $p(y=0|z)=1-h(z)$ 이므로 이를 베르누이 확률분포로 다음과 같이 likelihood 함수를 정의할 수 있습니다. ($z=w^T x$)

$p(y|x, w) = \prod_i^n (h(z))^{y_i} (1-h(z))^{1-y_i}$

따라서 로그와 음수를 취한 NLL 은 다음과 같이 정의할 수 있습니다.

$-\sum_i^n y_i log(h(z))+(1-y_i) log (1-h(z))$

만약, $y\in \{1, -1\}$ 이라면 $p(y=1|z)=\frac{1}{1+e^(-z)}, p(y=-1|z)=\frac{1}{1+e^z}$ 로 표현할 수 있으므로 $p(y_i|z)=\frac{1}{1+e^{-y_i z_i}}$ 로 표현가능하여 이것의 NLL은 다음과 같이 흔히 알려진 logistic loss 가 됩니다. 즉, likelihood 를 sigmoid 함수로 표현하였을 때 NLL은 logistic loss 와 같다는 것이죠. 따라서 잘 분류된 데이터라면 $-y_i z_i$가 음수 방향으로 클 것이므로 loss 가 작고 잘못 분류된 데이터라면 $-y_i z_i$가 양수 방향으로 클 것이므로 loss 가 크게 됩니다.

$-\sum_i^n log (\frac{1}{1+exp(-y_i z_i)})=\sum_i^n log(1+exp(-y_i z_i))$

이진 분류를 위한 목적함수로는 logistic regression loss 이외에도 SVM 에서 사용하는 hinge loss 가 있습니다. Hinge loss 는 $max(0, 1-y_i z_i)$로 정의되며 $y_i=1$에 대해 $z_i=w^T x_i \leq 1$인 벗어나는 데이터에 대해서 페널티를 가하는 방식으로 동작합니다. 둘의 가장 큰 차이점은 logistic loss 는 sigmoid 함수를 통한 확률분포로 모델링되어 확률적인 해석이 가능하지만 hinge loss 는 각 클래스의 차이인 마진에 의해 정의되고 이를 최대화하는 방식으로 동작하니 확률적인 해석이 불가능하다는 점입니다. 또한 밑의 그림처럼 hinge loss 는 명확히 미분이 불가능한 지점이 존재하지만 logistic loss 는 모든 구간에서 미분 가능합니다. (첨언하면 확률 분포의 비율로부터 (probability loss) 그 비율이 특정 상수보다 크다는 조건을 이용하면 hinge loss 를 유도할 수 있습니다.)

Hinge loss vs Logistic loss

 

Maximum a posteriori

MLE $p(D|w)$를 생각하면 $w$가 주어졌을 때 $D$가 최대가 되도록 하는 $w$를 구합니다. 하지만 MLE는 주어진 데이터를 단순히 암기하는 $w$를 생성하는 과적합이 발생할 수 있고 우리는 실질적으로 $D$가 주어졌을 때의 확률이 제일 높은 $w$를 찾고자 합니다. MAP는 MLE와 달리 $\hat{w}=argmax_w \{ p(w|D)\}$를 찾습니다. Bayes rule 에 의해 $p(w|D)=\frac{p(D|w)p(w)}{p(D)}\propto p(D|w)p(w)$ 와 같이 표현되므로 MAP 최대화는 likelihood $p(D|w)$ 곱하기 prior $p(w)$를 최대화하는 것과 같습니다. 여기서 prior 분포는 우리가 데이터를 보기 전 $w$가 이럴 것이다라는 사전에 정의한 분포를 말합니다. 이것도 마찬가지로 로그와 음수를 취하면 다음과 같이 표현할 수 있고 negative log-prior 를 우리가 흔히 사용하는 regularizer 라고 생각할 수 있습니다.

$\hat{w}=argmin_w\{ -\sum_i^n [log(p(D_i|w)] -log(p(w))$

즉, 우리가 흔히 사용하는 $L2$ 정규화는 모델 파라미터의 제곱을 목적함수에 추가합니다. 만약, $w$가 평균이 0고 분산이 $1/\lambda$로 정의된 Gaussian 분포에서 샘플링되었다고 가정하면 $p(w)=\prod_j^d exp(-\frac{\lambda}{2}w_j^2)$=$exp(-\frac{\lambda}{2}\sum_j^d w_j^2)$로 표현할 수 있고 이것을 위의 negative log-prior 수식에 대입하면 $-log(p(w))=constant+\frac{\lambda}{2}\Vert w\Vert$로 표현할 수 있습니다. 즉, L2 정규화는 모델 파라미터의 Gaussian prior 분포를 정의하였을 때 MAP와 같다는 것이죠. 정리하면 likelihood 함수는 loss 와 연결되고 prior 함수는 정규화와 연결됩니다.

반응형