MLE (Maximum Likelihood Estimation)


1. Likelihood

Likelihood는 한문으로 가능도(可能度) 또는 우도(尤度)라고 표현하며 '특정 사건들이 일어날 가능성'을 의미합니다. 또는 '샘플들과 확률분포의 일관된 정도'를 의미합니다.

likelihood-01.png

연속확률분포에서 확률은 왼쪽 그림과 같이 $x_1$ 과 $x_2$ 사이의 넓이를 의미합니다. Likelihood는 $x_1$ 과 $x_2$의 확률분포의 값 $f(x_1;\theta)$, $f(x_2;\theta)$의 곱을 의미합니다. 여기서 $\theta$는 확률분포의 파라미터로 정규분포의 경우는 평균 $\mu$과 표준편차 $\sigma$를 의미합니다. Likelihood를 수식으로 표현하면 다음과 같습니다.

$$\mathcal{L} (\theta \vert x) = f(x_1, x_2, ..., x_n;\theta) = \prod_i^n f(x_i;\theta)$$

likelihood-03.png

이산확률분포에서 확률은 왼쪽 그림과 같이 $x_1$, $x_2$의 값을 의미합니다. Likelihood는 $x_1$ 과 $x_2$의 확률값 $p(x_1;\theta)$, $p(x_2;\theta)$의 곱을 의미합니다. 여기서 $\theta$는 확률분포의 파라미터 입니다. Likelihood를 수식으로 표현하면 다음과 같습니다.

$$\mathcal{L} (\theta \vert x) = p(x_1, x_2, ..., x_n;\theta) = \prod_i^n p(x_i;\theta)$$

간단한 예를 들면 아래 그림과 같이 샘플 $a=(a_1, ..., a_n)$ 와 $b=(b_1, ..., b_n)$의 likelihood를 비교해 보면 샘플 $a$가 확률분포를 더 잘 반영하고 있어서 $\mathcal{L} (\theta \vert a) > \mathcal{L} (\theta \vert b)$입니다.

likelihood-02.png


2. Maximum Likelihood Estimation

Maximum Likelihood Estimation은 샘플로부터 likelihood를 최대화하는 확률분포를 추정하는 방법입니다. 예를 들어 랜덤하게 선택된 중학교 3학년 10명의 키가 아래와 같다고 가정해 보겠습니다.

mle-01.png

학생들의 키는 정규분포를 따른다고 가정을 하고 아래와 같이 3가지 경우로 확률분포를 추정했다면 $p(X;\theta_2)$가 가장 likelihood가 가장 높고 중학교 3학년 10명의 샘플에 대한 확률분포를 잘 추정했다고 볼 수 있습니다.

mle-02.png

Maximum Likelihood Estimation을 수식으로 표현하면 아래와 같습니다. 수식의 의미는 likelihood를 최대화하는 $\theta$를 찾는 것입니다.

$$\hat{\theta} = \underset{\theta}{\mathrm{argmax}} \mathcal{L}(\theta \vert x)$$

정규분포에서 표준편차를 5로 고정하고 평균만 160에서 180까지 1단의로 변화시키면서 likelihood를 확인해보면 아래와 같습니다. 168에서 최댓값을 보이고 있습니다.

mle-03.png


3. Log Likelihood

Log Likelihood를 likelihood에 log를 취한 값입니다. Log Likelihood의 수식은 아래와 같습니다. 곱셈의 더하기로 변경되어서 컴퓨터 계산이 좀 더 단조로워졌습니다.

$$\log \mathcal{L} (\theta \vert x) = \sum_i^N \log f(x_i;\theta)$$

이제 log likelihood를 최대화하는 확률분포를 추정하는 수식은 아래와 같습니다. Log는 단조증가함수이므로 log를 취해도 크기의 순서는 변하지 않습니다.

$$\hat{\theta} = \underset{\theta}{\mathrm{argmax}} \log \mathcal{L}(\theta \vert x)$$

정규분포에서 표준편차를 5로 고정하고 평균만 160에서 180까지 1단의로 변화시키면서 log likelihood를 확인해보면 아래와 같습니다. Likelihood와 동일하게 168에서 최댓값을 보이고 있습니다.

ll-01.png


4. Negative Log Likelihood

Negative Log Likelihood는 log likelihood에 음수를 취한 값입니다. Negative Log Likelihood의 수식은 아래와 같습니다.

$$- \log \mathcal{L} (\theta \vert x) = - \sum_i^N \log f(x_i;\theta)$$

Log Likelihood를 최대화하는 문제에서 negative log likelihood를 최소화하는 문제로 변경되었습니다. Negative Log Likelihood 최소화 화는 확률분포를 추정하는 수식은 아래와 같습니다. 이제 negative log likelihood를 loss로 사용하면 딥러닝의 gradient descent를 이용하여 최솟값을 찾을 수 있습니다.

$$\hat{\theta} = \underset{\theta}{\mathrm{argmin}} - \log \mathcal{L}(\theta \vert x)$$

정규분포에서 표준편차를 5로 고정하고 평균만 160에서 180까지 1단의로 변화시키면서 negative log likelihood를 확인해보면 아래와 같습니다. 168에서 최솟값을 보이고 있습니다.

nll-01.png

많은 딥러닝 모델이 negative log likelihood를 loss로 사용해서 loss를 최소화하도록 학습합니다.