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이 되지 않을 수도 있습니다.
우리는 앞서 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 )$$
가령 가우시안에 대한 파라미터 $\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$$
가령 예를들어 동전 던지기와 같은 독립 시행이 보장되는 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}$$
만약 $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$를 찾기가 되는 것입니다.
여기서 한 단계 더 나아가서 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를 쓰는 것입니다.
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를 쓰는 것입니다.
https://hyeongminlee.github.io/post/bnn001_bayes_rule/
https://hyeongminlee.github.io/post/bnn002_mle_map/
https://blog.naver.com/ivivaldi/221947736910
https://angeloyeo.github.io/2020/07/17/MLE.html
https://en.wikipedia.org/wiki/Likelihood_function#Background_and_interpretation
https://rpubs.com/Statdoc/204928
0000