Estimation에 대해 알기 전에 읽어두면 도움이 되는 글 : https://normal-engineer.tistory.com/191
Estimation을 공부하다보면 무조건 나오는 것이 Maximum Likelihood Estimator와 Maximum A-Posterior Estimator다.
이 두 개 개념을 정확히 해놓으면 나중에 칼만 필터와 같은 이론을 공부할 때도 매우 도움이 된다.
추정 이론을 공부하려면 수학과의 probability & statistics 내용을 기본적으로 알고 있어야 한다.
0. Estimation for what?
추정론을 할 때 가장 기본적인 생각은 "무엇"을 추정하고자 하는지 명확하게 해야한다는 것이다. 대부분은 데이터가 있고, 그 데이터를 예측하기 위한 모델의 "파라미터"를 추정하겠다, 라는 것이 그 골자이다.
그럼 모델은 무엇인가?
머신러닝에서 처음 시작할 때 확률론적인 가정이 없다면 linear regression을 할 때
$$y = w^{\top}x + b$$
다음과 같은 모델에서 $w,b$가 deterministic하다고 생각하고 $w,b$를 추정하는 문제를 만든다.
그러나 우리가 얻는 결과값이 정해지는 게 아니라 확률적인 것이라 생각하면 그 문제의 formulation이 조금 달라진다. - 결론적으로는 최적화 문제로 귀결되어 최적화 알고리즘을 적용하게 되는 경우가 많지만, 문제의 가정과 모델링에 따라 그 formulation이 달라진다.
내가 알고 싶은 값이 random variable이라 하자. (Random variable이 무엇인가? 확률론에 기반한 설명보다는 여기서는 간단하게 특정 확률 분포를 갖는 어떤 스칼라값이라고 하자.) 그러면 그 random variable에 대해 알고 싶다할 때 그 random variable의 확률 분포를 특정 파라미터가 포함된 모델이라 가정하고 데이터를 기반으로 파라미터를 추정할 수 있다. 예를 들어 random variable이 가우시안 분포라고 가정한다면 평균과 분산을 추정함으로써 그 random variable의 분포를 예상할 수 있다.
그렇다면 우리가 알고 싶은 파라미터를 가장 "그럴 듯한" 값으로 추정해보고 싶은데 어떻게 해야할까?
1. Maximum likelihood estimator (MLE)
누군가는 주어진 데이터를 보고 어떤 파라미터를 적용하면 그 데이터가 나올 확률이 가장 높은 것이 가장 좋은 파라미터라고 생각할 수 있다. 직관적이고 그럴 듯하다. 이 방법을 Maximum likelihood estimator라고 한다.
$$\hat{\theta}_{mle}=\arg\max_\theta L(\theta;x_1, \ldots, x_N) $$
다음과 같이 Likelihood를 정의하고 그 값이 최대가 되는 파라미터 $\theta$를 구한다. 일반적으로는 log를 씌워서 log-likelihood로 만들어서 구하기도 한다. log는 단조증가함수이기 때문에 함수의 최대값이 변하지 않기 때문이다.
$$\hat{\theta}_{mle}=\arg\max_\theta \log L(\theta;x_1, \ldots, x_N)= \arg\max_\theta \ell(\theta;x_1, \ldots, x_N) $$
이 때 데이터가 $x_1, x_2, \ldots, x_N$가 존재하므로 joint distribution를 구해야한다.
MLE는 사실 예시가 두 개 정도 정해져있고 직관적으로 이해하기도 편하다. 왜냐하면 솔루션을 수식으로 표현할 수 있기 때문이다.
Example : free throw shooting
어떤 코인을 던졌을 때 앞면(Head)가 나올 확률이 $\theta$, 뒷면(Tail)이 나올 확률이 $1-\theta$이라고 하자. N번의 observations이 주어질 때 ($x_1,x_2,\ldots,x_N$) MLE로 $\theta$를 추정해보자.
처음 Likelihood를 작성하면서 시작한다. 앞면일 때의 observation을 $x=1$, 뒷면일 때 $x=0$이라 한다면 각 observation의 확률은 $\theta^x \times (1-\theta)^x$가 된다. $x=1$일 때 $\theta$, $x=0$일 때 $1-\theta$로 확률이 일치한다.
$$L(\theta; x_1,\ldots,x_N) = \prod_{n=1}^{N} \theta^{x_n} (1-\theta)^{1-x_n}$$
각 observation이 독립이라고 가정한다면 $x_1$부터 $x_N$이 동시에 일어날 확률을 단순 곱으로 표현할 수 있다.
$S_N=\sum_{n=1}^{N}x_n$라고 둔다면
$$L(\theta;x_1,\ldots,x_N) =\theta^{S_N} (1-\theta)^{N-S_N}$$
이므로
$$\ell(\theta; x_1, \ldots, x_N)= S_N \log \theta + (N - S_N)\log(1 - \theta)$$
여기서 최대값을 구하기 위해 $\theta$에 대해 미분한다.
$$\frac{d\ell(\theta; \cdot)}{d\theta} = \frac{S_N}{\theta} - \frac{N - S_N}{1 - \theta}$$
$$\frac{d^2\ell(\theta; \cdot)}{d\theta^2}= -\frac{S_N}{\theta^2} - \frac{N - S_N}{(1 - \theta)^2}$$
첫 번째 식이 0이 되는 $\theta$가 곧 MLE다. 대신 최대값인지 확인하기 위해 Second derivative까지 확인해야한다.
$$\theta_{mle} = \frac{S_N}{N}=\frac{1}{N}\sum_{n=1}^{N}x_n$$
즉, 내가 나온 Head의 개수의 평균이 곧 $\theta$라는 것을 알 수 있다.
2. Maximum A-posterior Estimator
MLE는 굉장히 유용한 방법이기는 하지만 우리가 어느정도 사전지식을 갖고 있을 때는 이를 반영해줄 필요가 있다. 예를 들어 위의 예시에서 코인이 있는데 어느정도 코인이 살짝 구부러져있어서 앞면이 더 나올 가능성이 높다는 걸 알고 있다해보자. 그렇다면 MLE를 적용하기보다는 이를 고려한 추정기가 훨씬 그럴 듯할 것이다.
사실 칼만 필터 역시 우리가 dynamics를 알고 있을 때, 이전 스텝의 state가 이후 스텝의 state에 영향을 준다는 사실을 알고 있다. 그래서 이전 정보를 활용해서 정확한 현재 state를 추정할 수 있는 것이다. 따라서 우리는 Bayesian estimator를 사용함으로써 더 정확한 추정치를 알 수 있다. 그래서 이번 장에서는 Bayesian estimator를 적용함으로써 추정 결과가 어떻게 바뀌는지를 확인할 것이다.
A-posterior를 구하기 위해 우리는 궁금한 파라미터 $\theta$가 a random variable이라고 가정한다. 따라서 $\theta$를 추정하는 문제가 deterministic이 아니라 probabilistic 문제로 바뀌는 것이다. $\theta$가 고정된 값이 아니기 때문에 $\theta$에 대한 확률 분포가 필요하다.
$\Theta \~ f_{\Theta}(\theta)$
보통 $\Theta$를 random variable이라고 한다면 $\theta$는 그 realization이다. 즉, $\Theta=1$일 때 $\theta$는 1이라는 값을 대변하기 위한 변수이다.
우리가 관찰한 데이터 $X$는 $Theta$에 따라 확률이 달라진다고 하자.
$$X \~ f_{X}(x|\Theta=\theta).$$
이 때 특정 관찰 데이터 $x$가 주어질 때 우리가 궁금한 파라미터 $\Theta$가 $\theta$일 확률은 다음과 같이 구할 수 있다.
$$f_{\Theta}(\theta | X=x) =\frac{f_{X}(x|\Theta=\theta) f_{\Theta}(\theta)}{f_{X}(x)}$$
우리가 구하고자 하는 $f_{\Theta}(\theta)$은 관찰 결과가 있기 전에 존재하는 확률 분포이므로 prior, 관찰값 $x$를 보고 추정하는 확률 분포 $f_{\Theta}(\theta|x)$는 posterior라고 한다.
따라서 maximum a-posterior estimator는 posterior 확률을 극대화하는 $\theta$를 구하는 추정 문제를 풀어야 한다.
참고로 normalizing factor인 $f_{X}(x)$는
$$f_{X}(x)=\int_{\theta \in \mathcal{T}} f_{X}(x|\Theta=\theta)f_{\Theta}(\theta)d\theta$$와 같이 적분으로 구해줘야한다.
$\Theta$가 discrete variable인 경우에는
$$f_{X}(x)= \sum_{\theta \in \mathcal{T}} f_{X}(x|\Theta=\theta)P(\Theta=\theta) $$
Example : free throw shooting
이제 이전과 동일한 free throw shooting 문제를 $\theta$에 대한 확률분포 $f_{\Theta}(\theta)$를 도입해서 풀어보자.
우리가 알고 싶은 것은 동전이 앞면이 나올 확률($\theta$)이다. (뒷면이 나올 확률은 자연히 $1-\theta$가 된다.)
만약 우리가 동전을 만드는 공정을 다 알고 있어서 동전의 확률이 $\theta=1/2$에서 1이고 나머지는 0이라는 것을 안다면 maximum a-posterior estimator는 어떠한 observations이 있어도 $\theta=1/2$를 출력할 것이다.
지금은 $f_{\Theta}(\theta)=\text{Uniform}([0,1])=1 \; \forall \theta=[0,1]$라고 하자.
그러면 이 정보를 바탕으로 $X_1 =1$일 때 posterior를 구해보자.
$$f_{\Theta}(\theta \mid X_1 = 1)=\frac{f_X(X_1 = 1 \mid \Theta = \theta)\, f_{\Theta}(\theta)}{f_X(X_1 = 1)}$$
$$f_X(X_1 = 1)=\int_{0}^{1} \theta \, f_{\Theta}(\theta)\, d\theta=
\int_{0}^{1} \theta \, d\theta=
\left[ \frac{\theta^2}{2} \right]_{0}^{1}
=
\frac{1}{2}
$$
$$f_{\Theta}(\theta \mid X_1 = 1)
=
\frac{\theta \cdot 1}{1/2}
=
2\theta
$$
따라서 $f_{\Theta}(\theta \mid X_1=1)$을 최대화하기 위한 $\theta$는 1이 된다. ($\theta \in[0,1]$)
만약 우리가 더 많은 관찰 결과를 가진다면 ($X_1, X_2, X_3, X_4,...$) 그 확률은 달라질 것이다.
예를 들어 $ X_1=1,X_2=0,X_3=1,X_4=1$일 때,
$$f_{\Theta}(\theta|X_1=1,X_2=0,X_3=1,X_4=1)=\frac{f_{X}(X_1=1,X_2=0,X_3=1,X_4=1|\Theta=\theta)}{f_{X}(X_1=1,X_2=0,X_3=1,X_4=1)}$$
다음 식에서 우변을 구해야한다.
분자의 경우 $\theta^3(1-\theta)$로 쉽게 나오지만 분모를 구하려면 $$\int_0^1 \theta^3(1-\theta)d\theta$$를 계산해야하므로 좀 더 복잡하다. 이 경우 감마함수를 사용하면 구할 수 있다. 하지만 MAP를 적용하는 관점에서 $f_X$는 $\theta$와 무관한 값이기 때문에 구할 필요가 없다. 즉, 분자만 따졌을 때는 이전에 구했던 MLE 문제와 크게 다르지 않다는 결론이 나온다.
왜 이런 결론이 나왔을까? 우리가 $\theta$의 분포를 uniform하다고 가정했기 때문이다.
즉, $\theta$에 대한 사전 정보에 따라서 MAP 결과가 달라질 수 있다.
3. 종합
MLE와 MAP 외에도 MMSE 등 다른 Estimator가 있는데 이는 나중에 기회가 되면 더 설명하고자 한다.
중요한 것은 MLE와 MAP에서 $\theta$에 대한 가정을 달리함으로써 다르게 추정할 수 있음을 이해하는 것이다.