인공지능/Etc

MLE (Maximum Likelihood Estimation)

xeskin 2019. 10. 12. 18:52
반응형

Intro

우리는 흔히 머신러닝 공부를 하다보면 MLE, MAP를 접해보게 될 기회가 많습니다. 다른 기초가 없이 공부를 할 때 MLE, MAP와 같은 것을 접한다면 꽤나 난감합니다. 머신러닝, neural network를 갖고 우리가 원하는 것은 training data를 갖고 그게 DNN, CNN, RNN이든 뭐든간에 적당한 함수를 하나 잘 근사하는 것입니다. 하지만 이걸 확률의 관점으로 본다면 우리는 true probability distribution을 찾는 과정으로 생각을 할 수가 있습니다. 그러면 우린 여기서 이 distribution을 표현하는 parameter를 어떻게 찾을 것인가에 대한 need가 생기는데, 여기서 MLE나 MAP라는 방법론을 사용합니다.

MLE

압정을 던졌을 때 압정이 어느 면이 나오는지 맞히면 돈을 벌게 되는 도박을 한다고 생각을 해봅시다. 만약 우리가 압정이 앞면이 나오게 되는 확률, 뒷면이 나오게 되는 확률을 정확하게 안다면 도박에서 높은 수익을 낼 수 있을 것입니다. 압정을 던지는 시행은 Binomial Distribution을 따르므로 이를 다음과 같이 표현할 수 있습니다.

 

$\displaystyle{P(D|\theta)={\theta^{a_H}}{(1-\theta)}^{a_T}}$

$D : data, \theta : parameter$

$a_H : 압정에서 head가 나오는 횟수$

$a_T : 압정에서 tail이 나오는 횟수$

 

여기서 $P(D|\theta)$는 likelihood function이라고 부릅니다. 이는 parameter가 $\theta$라면 우리가 관찰한 데이터 $x_1, x_2, ... , x_n$이 나올만한 가능성이 얼마나 큰 가를 나타내주는 함수입니다. 즉 likelihood function은 parameter space에서 real number space로 가는 함수가 되고 우리는 likelihood function을 최대화할 수 있는 $\theta$값을 찾는다면 해당 데이터를 잘 설명하는 parameter를 찾았음을 알 수 있습니다. 이 방법이 바로 "MLE(Maximum Likelihood Estimation)" 입니다. 이는 다음과 같이 표현할 수 있습니다.

 

$\hat{\theta}=argmax_{\theta}P(D|\theta)$

 

여기서 우리가 정의한 문제에 대입해서 풀어보고 싶지만 ${\theta^{a_H}}{(1-\theta)}^{a_T}$ 를 최대로 하는 $\theta$를 찾기란 참 어려운 일입니다. 그래서 우리는 이 식에 $log$를 취하여 변형시켜줍니다.

 

$\hat{\theta}=argmax_{\theta}logP(D|\theta)$

$=argmax_{\theta}log{\theta^{a_H}}{(1-\theta)}^{a_T}$

$=argmax_{\theta}\{log{\theta^{a_H}}{(1-\theta)}^{a_T}\}$

 

여기서 극대, 극소를 구하면 우리는 $\hat{\theta}$을 구할 수 있게 됩니다. 이는 다음과 같습니다.

 

$\hat{\theta}=\frac{a_H}{a_H+a_T}$

 

우리가 구한 $\hat{\theta}$이 사실 true parameter는 아닙니다. Likelihood function의 maximize하는 optimal parameter를 찾은 것이지요. 그럼 이게 true parameter와는 얼마나 비슷하냐. 얼마나 믿을만한 parameter이냐는 질문이 생기는데요. 우리는 이를 Hoeffding's inequality라는 부등식을 통해 알 수 있습니다. 이는 위키의 링크로 대체하도록 하겠습니다. 이 부등식을 통해서 우리가 구한 parameter가 높은 확률로 주어진 모델이 작은 error를 가진다는 식의 분석을 할 수 있는데요. 우리는 이를 PAC learning(Probably Approximately Correct Learning)이라고 부릅니다. 

 

자 우리는 지금까지 MLE를 배웠습니다. MLE는 주어진 데이터를 통해 Likelihood를 maximize시키는 parameter를 찾는 방법이었습니다. 다만 이 방법은 주어진 데이터만을 이용하여 parameter를 추정하기 때문에 training data 혹은 observation에 민감하게 변한다는 단점을 갖고 있습니다. 극단적이 예로, 압정을 10번 던졌을 때 10번 모두 앞면이 나오게 된다면 앞면이 나오는 확률은 1로, 뒷면이 나오는 확률은 0으로 추정할 것입니다. 이 단점을 커버해주기 위해서는 주어진 데이터를 쓸 뿐만 아니라 우리가 기존에 갖고 있던 지식(압정을 던지면 대강 몇번 정도 앞면이 나오고 뒷면이 나온다는 식의 지식)을 사용할 수 있다면 주어진 데이터에 덜 민감하게 parameter를 추정할 수 있을텐데요. 이러한 방법을 보고 우리는 MAP(Maximum a Posteriori Estimation)이라고 부릅니다. 다음에는 MAP를 포스팅 해보도록 하겠습니다.

 

반응형

'인공지능 > Etc' 카테고리의 다른 글

[CV] Receptive Field  (0) 2020.06.11
Epoch, Step, Batch size  (0) 2020.05.17
CNN 모델 간단 정리  (0) 2020.01.19
Information Theory  (0) 2019.08.04