본문 바로가기
ML&DL

Likelihood(가능도)와 MLE(Maximum Likelihood Estimation)란?

by cuda 2022. 7. 22.

 

통계학에서, 가능도(可能度, 영어: likelihood) 또는 우도(尤度)는 확률 분포의 모수가, 어떤 확률변수의 표집값과 일관되는 정도를 나타내는 값이다. 구체적으로, 주어진 표집값에 대한 모수의 가능도는 이 모수를 따르는 분포가 주어진 관측값에 대하여 부여하는 확률이다. 가능도 함수는 확률 분포가 아니며, 합하여 1이 되지 않을 수 있다.
-Wikipedia-


위키피디아에서 Likelihood를 검색하면 위의 정의가 나온다. 그러나, 도통 무슨 말인지 알 수가 없다. 누구나 likelihood를 잘 이해할 수 있게 풀어서 이야기해보려고 한다.

 

Likelihood란?

Likelihood(가능도)란, 주어진 확률 분포$\theta$가 데이터를 얼마나 잘 설명하는지 나타내는 정도이다.

가능도를 더 잘 이해하기 위해, 우리는 확률과 가능도의 차이에 대해서 알아봐야 한다.

 

Probability(확률)와 Likelihood(가능도)의 차이

Probability(확률)이란, 어떤 조건 속에서 특정한 사건일 일어날 가능성을 의미한다. 즉, 주어진 확률 분포 속에서 특정한 값이나 구간을 가질 확률인 것이다.

 

Likelihood(가능도)란, 어떤 확률분포로부터 나온 sample들이 있을 때, 특정한 확률 분포가 이 sample들을 잘 설명하는지에 대한 수치이다.

 

Probability(확률)에서는 확률 분포가 고정된 상태에서 sample들이 달라지며 해당 sample들에 대한 수치가 산출된다면,

Likelihood(가능도)는 sample은 고정된 상태에서 확률 분포가 달라지며 해당 확률 분포에 대한 수치가 산출되는 것이다.

 

글로만 보면 이해가 잘 안되기 때문에 예시와 함께 설명해보겠다

하나의 축에 다음과 같은 데이터들이 있다고 가정해보자.

다음과 같이 두 개의 정규 분포가 주어진다고 했을 때, 빨간 점들을 잘 나타내주는 분포는 어떤 분포일까?

직관적으로 봤을 때, 빨간 데이터들은 초록 분포보다, 파랑 분포에서 추출되었을 가능성이 커보인다. 빨간 데이터들의 분포가 파랑 분포의 중심에 가깝기 때문이다. 즉, 파랑 분포가 초록 분포보다 빨간 데이터들을 더 잘 설명하고, 가능도가 높다는 것이다.

그렇다면 가능도를 구하는 방법은 어떻게 될까? 정규분포의 parameter를 $\theta = \{\mu,  \sigma\}$라고 하면

$$ Likelihood(\theta) = \prod_{i=1}^{N}p(x_i;\theta) $$

라는 수식으로 표현될 수 있다 즉,

빨간 점선들의 길이의 곱이 가능도인 것이다. 이는 각 data들이 확률분포에 들어갔을 때 확률밀도의 곱이다.

따라서 Likelihood를 출력하는 Likelihood function은, 확률분포의 parameter가 입력이고, 각 데이터들이 확률 분포에 들어갔을때의 밀도의 곱이 출력인 함수이다.

 

 

Log-Likelihood

Likelihood를 계산하기 위해서는 확률 값을 계속해서 곱해줘야만 한다. 이러한 경우, 확률 값은 0과 1사이의 값들이기 때문에 가능도 값이 너무 작아지는 문제가 발생한다. 따라서 각각의 확률 값에 log를 취해준 다음, 곱하는 과정을 더하는 과정으로 변경해준다.

이렇게 산출되는 값이 바로 Log-Likelihood이다. log의 성질에 따라 수식은 다음과 같이 변화한다.

$$\sum_{i=1}^{n}\log P_\theta(X=x_i)$$

 

 

 

MLE(Maximum Likelihood Estimation)란?

MLE(Maximum Likelihood Estimation)은 쉽게 말해서, Likelihood의 최댓값을 찾는 것이다. Likelihood가 높다는 것은, 해당 확률분포가 데이터를 잘 설명한다는 뜻이니, Likelihood를 최대화하는 분포를 찾게 된다면 해당 분포는 데이터를 가장 잘 설명하는 분포인 것이다.

그렇다면 MLE는 어떤 방식으로 진행해야할까?

경사 상승법(gradient ascent), 혹은 경사하강법(gradient descent)이 하나의 방법이 될 수 있다.

지금부터, 확률 분포를 parameter $\theta$라고 가정하고, Log Likelihood Function을 $L(\theta)$라고 하겠다.

만약 확률분포가 베르누이 분포이면 $\theta$는 $\{p\}$가 될 것이고, 정규 분포이면 $\{\mu, \sigma\}$가 될 것이다.

그렇다면, 다음과 같은 경사상승법을 통해 $L(\theta)$를 최대화하는 $\theta$를 찾을 수 있다.

$$ \theta \leftarrow \theta +  \alpha \frac{ \partial  L(\theta)}{ \partial  \theta} $$

경사하강법을 적용해야하는 경우에는, 목적 함수를 Log Likelihood Function에서 Negative Log Likelihood Function으로 변경한 이후, 경사하강법을 적용시키면 된다.

 

 

DNN(Deep Neural Network)에서의 MLE

특정한 분포 $P(X)$로부터 샘플링한 데이터 $x$가 주어졌을 때, 우리는 최대한 원래 분포의 parameter와 비슷한 DNN의 parameter $\theta$를 찾으려고 한다. 이때, MLE를 이용하여 NLL(Negative Log-Likelihood)를 최소화하는, 즉 데이터를 가장 잘 설명하는 $\theta$를 찾을 수 있다.

데이터셋 $D$가 다음과 같다고 해보자.

$$D = \{(x_i, y_i)\} $$

$x_i$는 가상의 확률분포함수 $P(X)$에서 sampling 된 값들이고, $y_i$는 확률분포함수$x_i \sim P(Y|x_i)$에  $x_i$를 넣어서 수집한다.

따라서 다음과 같이 표시할 수 있다.

$$x_i \sim P(X)$$

$$y_i \sim P(Y|x_i)$$

위와 같은 데이터를 N개를 수집하여 데이터셋을 구축한다.

이후, MLE를 이용하여 NLL(Negative Log-Likelihood)를 최소화하는, 즉 데이터를 가장 잘 설명하는 $\theta$를 찾을것이다.

$$\hat{\theta} = argmin-\sum_{i=1}^{N}\log P(y_i|x_i;\theta)$$

parameter $\theta$를 가지는 Neural Network에 $x_i$를 입력했을 때, $y_i$가 나올 확률값은 다음과 같다.

$$\hat{y_i} = f_\theta(x_i)$$

위 식은 parameter $\theta$를 가지는 DNN의 softmax layer 결과값을 나타낸 것이다.

즉, $y_i$가 나올 확률은 다음과 같이 표현할 수 있다.

$$y_i^T\cdot \hat{y_i}$$

 

그렇다면, MLE 수식은 다음과 같이 표현할 수 있다.

$$-\sum_{i=1}^{N}\log P(y_i|x_i;\theta) = -\sum_{i=1}^{N}y_i^T\cdot\log \hat{y_i}$$

 

그런데, 우항의 수식을 어디서 많이 본 것 같지 않은가? 바로 Cross-Entropy에 N을 곱한것과 동일한 것을 볼 수 있다.

따라서, 이 과정을 통해 NLL을 최소화하는것이 Cross-Entropy를 최소화하는것과 같음을 확인할 수 있다.

 

 

 

 

 

댓글