본문 바로가기

딥러닝기초

[Density Estimation]ML과 MAP로 파라미터 추정

Density Estimation

밀도추정이란,

어떤 점 x에서 데이터가 발생할 확률,
즉 확률분포 $P(x)$를 구하는 문제이다.

예를들어 현재와 같은 분포에서는
$P(x_1)>P(x_2)>P(x_3)$이겠다.
$x_1$쪽에는 밀집된만큼, 발생할만하고
$x_3$쪽에는 전혀 없어 발생가능성이 현저히 적다.

 

분포를 어떻게 구하냐에 따라서 다음과 같이 나뉜다.

  • Parametic Methods(단순한 분포를 가정하고 유한한 파라미터를 구하자)
    • ML(Maximum Likelihood) Estimation
    • MAP(Maximum A Posteriori) Estimation
  • Non-Parametic Methods(복잡한 분포를 가정하자)

 

 

Parametic Methods

 

우리는 평균과 분산값 이렇게 두 가지만 있으면 가우시안 분포를 그려낼 수 있다.

이와 같이 유한한 파라미터로 그릴 수 있는 분포를 따른다고 깔고가는 것이다.

 

그렇게 다른 파라미터 값을 세팅해서 분포를 만들어냈을 때 어떤 것이 더 수학적으로 잘 나타냈느냐를 표현해보자.

 

$X =  \left\{x_1, x_2, \cdots , x_n \right\}$일 때

가우시안같은 단순한 확률분포 $P(X|\theta)$를 따른다고 가정하고

$P(X|\theta)$를 결정하기 위한 파라미터 $\theta$를 구한다.

 

어떤 $\theta$를 설정해야 주어진 데이터 $X$를 잘 표현할 수 있을까?

파라미터 추정 방법으로 ML EstimationMAP Estimation가 있다.

 

 

 

ML(Maximum Likelihood) Estimation

 

다음과 같이 샘플이 6개가 있다.

분산은 일정하고 평균이 다른 $\theta_1, \theta_2$ 가우시안 분포 두개를 그렸다고 하자.

이때 어떤 분포가 더 데이터를 잘 설명했는가?

직관적으로 딱봐도 $\theta_1$ 분포가 데이터 $X$를 잘 설명하였다.

그렇다면 이를 수식적으로 표현해보자.

 

 

주어진 데이터셋 $X =  \left\{x_1, x_2, \cdots , x_n \right\}$가 최대로 관측될 수 있는 파라미터 $\theta$를 찾는다.

즉 likelihood를 최대화하는 파라미터를 찾는다.

$$\hat{\theta} = \textrm{arg }  \underset{\theta}{max}P(X|\theta)$$

 

 

보통 sample 간에는 독립적이므로

$$P(X|\theta) = P(x_1, x_2, ..., x_n|\theta) = P(x_1|\theta)P(x_2|\theta)...P(x_n|\theta)=\prod\limits_{i=1}^{n}P(x_i|\theta)$$

 

1 이하의 값을 지니는 확률값을 계속 곱하게 된다면 점점 0과 가까워지면서 사라지겠다.

그래서 log를 붙여주어서 곱셈을 덧셈으로 바꾸는 전략을 사용한다.

$$L(\theta) = log P(X|\theta) = log\left\{P(x_1|\theta)P(x_2|\theta)\cdots P(x_n|\theta) \right\} = \sum\limits_{i=1}^{n}log P(x_i|\theta)$$

 

 

 

 

정규분포로부터 {$x_1, x_2, \cdots, x_n$} n개를 표본 추출했을 때

이들로부터 가우시안 분포의 평균 $\mu$와 분산 $\sigma^2$는 외워서 알고 있다.

 

우리가 익히 고등학생 때 배운 모평균의 추정값은

$$\hat{\mu} = \frac{1}{n}\sum_{i=1}^{n}x_i$$



모분산의 추정값은

$$\hat{\sigma}^2 = \frac{1}{n}\sum_{i=1}^{n}\left(x_i-\mu\right)^2$$





이를 Maximum Likelihood로 구해보고 확인하자.

 

 

$$\frac{\partial L(\theta)}{\partial \mu} 
=\frac{1}{\sigma^2}\sum_{i=1}^{n}(x_i-\mu) = \frac{1}{\sigma^2}\left(\sum_{i=1}^{n}x_i-n\mu\right) = 0$$

 

$$\frac{\partial L(\theta)}{\partial \sigma} =-\frac{n}{\sigma}+\frac{1}{\sigma^3}\sum_{i=1}^{n}\left(x_i-\mu\right)^2 = 0$$

 

 

 

결국 미분값이 0이되는 지점을 찾아서 말그대로

"최대 우도"(Maximum Likelihood)를 만들어주는 모평균과 모분산을 표본으로부터 추정하는 것이다.

 

 

 

MAP(Maximum A Posteriori) Estimation

 

  • Prior Probability(사전확률) $P(\theta)$ : 파라미터 $\theta$가 정답일 확률
  • Posterior Probability(사후확률) $P(\theta|x)$ : 샘플 X가 발생(관측) 시 $\theta$가 정답일 확률
  • $P(\theta|X) = \dfrac{P(X|\theta)P(\theta)}{P(X)}$

이때 $\theta$를 바꾼다고 $P(X)$값에 영향을 미치지는 않는다.

 

그러므로 $P(X|\theta)P(\theta)$를 최대화하는 $\theta$를 찾으면 되겠다.

$$\hat{\theta} = \textrm{arg } \underset{\theta}{max}P(\theta|X) = \textrm{arg } \underset{\theta}{max}P(X|\theta)P(\theta)$$

 

 

MLE와 같이 각 샘플 $x_i$ 발생 확률이 보통은 서로 독립적이라 다음의 특성을 사용한다.

$$P(X|\theta) = P(x_1, x_2, ..., x_n|\theta) = P(x_1|\theta)P(x_2|\theta)...P(x_n|\theta)=\prod\limits_{i=1}^{n}P(x_i|\theta)$$

 

 

그러면 MLE에 $logP(\theta)$ 항이 더 붙은 꼴로 나온다.

$$logP(X|\theta)P(\theta) = logP(X|\theta) + logP(\theta) = \sum\limits_{i=1}^nlogP(x_i|\theta) + logP(\theta)$$

 

 


 

결국 여기서 알 수 있는 것은 사전확률 $P(\theta)$의 영향에 따라서 MLE와 MAP의 결과가 같을 수도, 다를 수도 있다.

 

 

 

 

데이터와 MLE 혹은 MAP 방법을 통해서 모델에 사용되는 파라미터 $\theta$를 구할 수 있다.

이때 MLE는 관측된 데이터만을 이용하여 최대가 되게 하고,

MAP는 관측된 데이터 뿐 아니라 사전확률을 통해서 편향된 데이터에 대하여 대응을 해준다.

그렇기 때문에 사전확률만 제대로 알 수만 있다면  MAP가 올바른 decision이라고 말할 수 있겠다.