아이공의 AI 공부 도전기

Likelihood ('가능도' 혹은 '우도')와 MLE (Maximum Likelihood Estimation)

 

     

Likelihood ('가능도' 혹은 '우도')

 

Likelihood관측된 데이터 집합 $\mathcal{D}$를 기반으로 하는 모델의 매개변수 $\theta$에 대한 함수라고 표현할 수 있습니다. 이렇게만 들으면 잘 이해가 가지 않으니 조금 더 풀어서 설명해보면 가능도 함수는 분포나 모델에 대한 매개변수 $\theta$에 대해 관측된 데이터 샘플들이 얼마나 그렇게 나타날 가능성이 있는지를 표현하는 함수입니다.

 

이래도 어려울 수 있어 또 다른 식으로 표현하면 어떤 사건 혹은 현상이 존재하고 어떤 분포에서 어느 정도의 확률인지를 보는 것입니다. 물론 여기서의 분포는 모델이 될 수도 있습니다.

 

위에서 설명한 딱딱한 정의를 내렸는데 이것만으로는 이해하기 난해할 것입니다.

 

이에 식과 함께 풀어서 설명해보도록 하겠습니다.

 

likelihood의 기본 전제는 관측된 데이터 샘플 혹은 관측된 무엇인가가 존재한다는 것입니다. 저는 여기서 다수의 $x_i$로 구성된 $\mathcal{D}$ 데이터 샘플 집합이 존재한다고 표기해보겠습니다.

 

$$\mathcal{D}= \{ x_1,\ x_2,\ \ldots , x_N \}$$

이 그림에서 데이터 샘플은 x=17, 20, 23를 $\mathcal{D}$로 표기할 수 있습니다.

 

여기에서 모델 혹은 분포가 존재하고 그 모델이나 분포를 설명하기 위한 매개변수가 존재합니다. 저는 여기서 이 매개변수를 $\theta$라 적겠습니다. 여기서 생각을 잘 하셔야하는 것이 우리는 매개변수 $\theta$를 적었지만 결국 이 $\theta$가 궁극적으로 의미하는 것은 이 $\theta$를 활용하여 구성된 모델 혹은 분포라는 것입니다.

 

가령 위 그림에서는 정규분포(Normal/Gaussian Distribution) 3개가 그려져 있는데 이 때 사용하는 파라미터 $\theta$는 각 정규분포별 $\mu , \sigma$를 의미할 것이고 이것이 파라미터 $\theta$가 될 것입니다. 만약 이것이 회귀 모델이라면 회귀 모델에 맞는 $y=ax+b$ 중 $a$와 $b$를 의미할 것입니다. 딥러닝의 구조 모델이라면 각 layer별 weight를 의미하는 $w$가 $\theta$를 의미할 것입니다.

 

여기까지 따라오셨다면 이제 가능도를 표기해보고 해석해보겠습니다.

맨 위에서 우리는 가능도를 관측된 데이터 집합 $\mathcal{D}$를 기반으로 하는 모델의 매개변수 $\theta$에 대한 함수라고 설명했습니다. 이를 그대로 식으로 풀어 쓰면 다음과 같습니다.

 

$$ \mathcal{L} (\theta ) = \mathcal{L} (\theta | \mathcal{D}) = p(\mathcal{D} | \theta )$$

 

만약 데이터가 i.i.d (identically independent distribution)이라면 각 데이터별로 얻은 확률의 곱으로 likelihood를 정의할 수 있습니다.

 

$$\mathcal{L} (\theta | \mathcal{D}) = p(\mathcal{D} | \theta ) = \prod_{i=1}^n p(x_i | \theta )$$

 

위 그림으로 따지면 빨간색 정규 분포에 대해 x=17, 20, 23에 대한 확률을 구해 각각 곱한 것을 의미합니다.

 

$$p(x_i | \theta ) = \frac{1}{ \sqrt{2\pi \sigma_{red}^2} } exp \{- \frac{(x_i - \mu_{red})^2}{2 \sigma_{red}^2} \} $$

 

물론 주어진 $\theta$인 $\mu , \sigma$가 녹색 정규 분포를 의미하면 그것에 대한 각각의 곱을 하고 황색에 대해서도 마찬가지입니다.

 

여기서 구한 likelihood를 잠깐 비교해보았을 때 $\mathcal{L} (\theta_{red}) < \mathcal{L} (\theta_{green})$이라면 녹색에 해당하는 likelihood가 빨간색에 비해 더 모수에 가깝다는 것을 의미합니다.

 

이것이 가능도입니다. 물론 Likelihood는 $\theta$에 대한 확률 분포가 아니기 때문에 모든 가능도의 합이 1이 되지 않을 수도 있습니다.

 

MLE (Maximum Likelihood Estimation) 최대 가능도 추정

 

우리는 앞서 likelihood가 파라미터 $\theta$에 대해 특정 모델이나 분포의 value 값을 찾았고 이를 통한 가능도를 확인했습니다. 그런데 잘 생각해보면 가능도 중에서도 높은 가능도가 있는 것이 있을 것이고 우리가 제공한 데이터 샘플에 가장 잘 맞는 모델이나 분포의 파라미터 $\theta$가 존재할 것으로 예상됩니다. 여기서 우리는 likelihood를 maximum할 수 있는 estimation 즉, MLE를 진행하고 싶은 것입니다. 다시 말하면 최적의 파라미터 $\theta$를 찾고싶은 것입니다.

 

MLE : 주어진 데이터를 제일 잘 설명하는 모델을 찾기

 

$$\hat{\theta} = argmax_{\theta } \mathcal{L} (\theta | \mathcal{D}) = argmax_{\theta } \prod_{i=1}^n p(\mathcal{D} | \theta )$$

 

이때 계산의 편의성을 위해 log를 취함으로써 log likelihood를 구성하여 MLE를 진행합니다.

 

Log Likelihood

$$ln \mathcal{L} (\theta) = ln \mathcal{L} (\theta | \mathcal{D}) = \sum_{i=1}^n ln p(\mathcal{D} | \theta )$$

 

MLE with Log Likelihood

$$argmax_{\theta } ln \mathcal{L} (\theta) = argmax_{\theta } ln \mathcal{L} (\theta | \mathcal{D}) = argmax_{\theta } \sum_{i=1}^n ln p(\mathcal{D} | \theta )$$

 

MLE with Gaussian distribution

가령 가우시안에 대한 파라미터 $\theta$ $\mu , \sigma$를 활용하는 분포를 likelihood라고 가정하면 다음과 같은 log likelihood를 적을 수 있습니다.

 

$$ln p (x | \mu , \sigma^2) = - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i - \mu)^2 - \frac{n}{2} ln \sigma^2 - \frac{n}{2} ln (2 \pi )$$

 

이를 이제 $\mu , \sigma$에 대한 미분을 진행하여 MLE를 구합니다. 기본적으로 미분으로 최대값을 구할 수 있기 때문입니다.

 

$$\mu_{ML}$$

$$ {\partial ln p (x | \mu , \sigma^2) \over \partial \mu} = \frac{1}{\sigma^2} \sum_{i=1}^n (x_i - \mu_{ML}) = 0 $$

$$\sum_{i=1}^n x_i = n\mu_{ML}$$

$$\mu_{ML} = {1 \over n} \sum_{i=1}^n x_i$$

 

$$\sigma_{ML}^2$$

$${\partial ln p (x | \mu , \sigma^2) \over \partial \sigma} = {1 \over \sigma^3}\sum_{i=1}^n (x_i - \mu_{ML})^2 - \frac{n}{\sigma}=0 $$

$$\sigma_{ML}^2 = {1 \over n} \sum_{i=1}^n (x_i - \mu_{ML})^2$$

 

MLE with Bernoulli distribution

가령 예를들어 동전 던지기와 같은 독립 시행이 보장되는 Bernoulli distribution에서의 MLE는 다음과 같이 정의될 것입니다.

 

$$\hat{\theta} = argmax_{\theta } \mathcal{L} (\theta | \mathcal{D}) = argmax_{\theta } \prod_{i=1}^n P(\mathcal{D} | \theta ) $$

$$= \prod_{i=1}^n p(x_i | p ) = _{n}\mathrm{C}_{m} p^m (1-p)^{(n-m)}$$

 

Log likelihood

 

$$ln P (x | p) = _{n}\mathrm{C}_{m} (m ln p + (n-m) ln (1-p))  $$

$${\partial ln P (x | p) \over p } =  _{n}\mathrm{C}_{m} m {1 \over p} - _{n}\mathrm{C}_{m} (n-m) {1 \over 1-p} = 0$$

$$p = {m \over n}$$

 

번외) 딥 러닝 신경망 구조에서의 Likelihood와 MLE

 

만약 $y$ 정답이 존재하는 데이터 샘플이 주어졌을 때 신경망 모델의 가능도는 어떻게 표기할까요

 

$$x = \{ x_1,\ x_2,\ \ldots , x_N \} ,\ y = \{ y_1 ,\ y_2 ,\ \ldots ,\ y_N \}$$

$$\mathcal{D}= \{ (x1,y1),\ (x2,y2),\ \ldots ,\ (x_N, y_N) \}$$

 

$$ \mathcal{L} (\theta ) = \mathcal{L} (\theta | \mathcal{D}) = p(y|f_\theta (x)) $$

 

$f_\theta$ : $\theta$를 파라미터로 가지는 모델 혹은 분포 함수의 출력값

 

이때의 Likelihood 해석은 파라미터 $\theta$를 가지는 신경망에서의 예측값 혹은 출력이 나올 확률입니다. 

 

이를 MLE 관점에서 확장해서 해석하면 네트워크의 출력값 ($f_\theta$)이 있을 때 우리가 원하는 정답 $y$가 높기를 바란다입니다. 

 

$$\hat{\theta} = argmin_{\theta } [- log(p(y|f_\theta (x))]$$

 

주어진 데이터를 제일 잘 설명하는 모델을 찾기 -> 모델에 맞는 파라미터 $\theta$를 찾기가 되는 것입니다. 

 

1) Gaussian

 

여기서 한 단계 더 나아가서 Gaussian distribution을 기반으로 보면 likelihood는 다음과 같습니다.

$$p(y_i | \mu_i, \sigma_i) = \frac{1}{ \sqrt{2\pi \sigma_{i}^2} } exp [- \frac{(y_i - \mu_{i})^2}{2 \sigma_{i}^2} ]$$

Log likelihood

$$ln p(y_i | \mu_i, \sigma_i) = ln \frac{1}{ \sqrt{2\pi \sigma_{i}^2} } - \frac{(y_i - \mu_i)^2}{2\sigma^2} $$

여기서 $\sigma =1$이라 가정하면

$$-ln p(y_i | \mu_i) \propto \frac{(y_i - \mu_i)^2}{2} $$

와 같이 표현이 가능합니다.

잘 보시면 Mean Square Error의 구조를 많이 닮아 있습니다.

다시 설명하면 log likelihood를 Gaussian으로 해석해서 MLE를 하면 MSE를 minimize하는 것과 같은 말이 된다는 것을 의미합니다.

 

역으로 생각하면 우리가 출력하고자 하는 $y$가 Gaussian distribution을 따른다면 MSE를 쓰는 것이 맞다고 해석할 수 있습니다. 그 때문에 continuous value에서는 MSE를 쓰는 것입니다. 

2) Bernoulli

Bernoulli 역시 마찬가지입니다. 

$$p (y_i | p_i) = p_i^{y_i} (1-p_i)^{1-y_i}$$

$$ln p (y_i | p_i) = y_i ln p_i + (1-y_i) ln (1-p_i)$$

$$-ln p (y_i | p_i) = -[y_i ln p_i + (1-y_i) ln (1-p_i)]$$

 

이 역시 Cross entropy를 닮아 있습니다.

즉, 다시 설명하면 log likelihood를 Bernoulli로 해석해서 MLE를 하면 Cross entropy를 minimize하는 것과 같은 말이 된다는 것을 의미합니다.

 

역으로 생각하면 우리가 출력하고자 하는 $y$가 Bernoulli distribution을 따른다면 Cross entropy를 쓰는 것이 맞다고 해석할 수 있습니다. 그 때문에 discrete value에서는 Cross entropy를 쓰는 것입니다.

 

Multinoulli에 대해서는 softmax를 쓰는 것입니다.

 

 

 

Reference

 

https://hyeongminlee.github.io/post/bnn001_bayes_rule/

 

Bayes Rule (베이즈 룰) | Hyeongmin Lee's Website

Bayes Rule은 Bayesian Deep Learning에서 가장 기본이 되는 개념입니다. 어떤 값을 예측하기 위한 수단으로서 딥러닝 이전부터 굉장히 많이 쓰여 왔던 방식이기 때문에 Bayesian Deep Learning이 아니더라도 알

hyeongminlee.github.io

https://hyeongminlee.github.io/post/bnn002_mle_map/

 

Maximum Likelihood Estimation(MLE) & Maximum A Posterior(MAP) | Hyeongmin Lee's Website

Bayes Rule을 이용한 방식의 가장 큰 단점들 중 하나는 Likelihood의 Probability Distribution을 알아야 한다는 점입니다. 물론 앞선 포스팅에서는 관찰을 통해 Likelihood를 얻었지만, 여간 귀찮은 일이 아닐

hyeongminlee.github.io

 

https://stats.stackexchange.com/questions/2641/what-is-the-difference-between-likelihood-and-probability

 

What is the difference between "likelihood" and "probability"?

The wikipedia page claims that likelihood and probability are distinct concepts. In non-technical parlance, "likelihood" is usually a synonym for "probability," but in statistical usage there is a

stats.stackexchange.com

 

https://blog.naver.com/ivivaldi/221947736910

 

Likelihood, Prior & Bayes

Variational AutoEncoder(VAE)의 개념[4]을 잘 이해하기 위해 먼저 likelihood, bayes theorem, baye...

blog.naver.com

 

https://angeloyeo.github.io/2020/07/17/MLE.html

 

최대우도법(MLE) - 공돌이의 수학정리노트

 

angeloyeo.github.io

 

https://en.wikipedia.org/wiki/Likelihood_function#Background_and_interpretation

 

Likelihood function - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Function related to statistics and probability theory The likelihood function (often simply called the likelihood) describes the joint probability of the observed data as a function of

en.wikipedia.org

 

https://youtu.be/o_peo6U7IRM

 

 

https://rpubs.com/Statdoc/204928

 

RPubs - 통계강의록 1: 확률(Probability) vs 가능도(Likelihood)

 

rpubs.com

 

 

 

 

0000 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading