본문 바로가기

그 외 지식

최대 우도 추정(Maximum Likelihood Estimation, MLE)

최대 우도 추정(MLE)는 한글인데 한글같지 않은, 개인적으로 참 더럽다고 생각되는 단어입니다. 자연어 처리를 공부하게 되면서, 다시 한 번 이 단어를 마주하게 되었는데, 최대한 깔끔히 정리해둬보겠습니다.

우도(Likelihood)와 추정(Estimation)

 최대 우도 추정을 이해하기 위해서 당연히 우도와 추정에 대해서 생각해봐야겠죠. 이를 위해서, 확률밀도함수에 대해 먼저 이해할 필요가 있습니다. 통계학의 관점에서, 어떤 확률변수 X에 대한 확률 모형은 확률밀도함수 f에 의해 정의되는데, 이는 확률 밀도 함수 f(x;θ)와 같이 보통 표기합니다. x는 확률변수의 실수값이며 θ는 확률 밀도 함수의 Parameter 집합을 뜻합니다. 예를 들어, 확률변수 X가 정규 분포를 따른다면, θ=(μ,σ^2) 이 될 수 있겠지요.

 쨋든, 일반적으로 완성된 확률밀도함수는 θ는 이미 결정된(고정된) 상태이며, x(변수)값을 넣고 y(확률)을 뽑아낼 수 있는 함수입니다. 그런데, 실제로 어떤 확률변수 X가 어떤 분포를 갖는지는 모르겠죠. 이게 정규 분포인지 포아송 분포인지 뭔 이상한 분포인지.. 그래서 현실 데이터 X를 통해 θ를 역으로 찾을 수 있다면 참 좋을 것 같습니다. 그리고 이런 행위가 바로 추정입니다. 결정된 θ를 통해 변수 x를 넣으면 y를 찾을 수 있는 수식에서, 결정된 x를 통해 변수 θ를 말 그대로 추정해보는거죠.

 그럼 우도는 뭘까요. 우도는 우리가 알고있는 표본 x들로 계산해 봤을 때, 추정했던 θ에 대한 추정이 얼마나 그럴듯한지를 비교하는 척도입니다. L(θ)=f(x|θ)로 계산할 수 있습니다. 우도가 클 수록 파라미터에 대한 추정이 그럴듯했다라는 의미가 되겠죠.

최대 우도 추정(MLE)

 우도와 추정을 알았으면, 사실 끝났습니다. 당연하게도 우리는 가지고 있는 데이터 x로 추정한 파라미터가 그럴듯하기를 원하고, 그럼 최대 우도를 갖는 파라미터를 찾으면 되겠다. 그게 최대 우도 추정입니다.

 다만, 생각해보면, 이항분포와 같은 그래프는 미분이 가능합니다. 그렇다면, 그냥 미분값이 0인 포인트를 찾으면, 최대 우도를 갖는 파라미터를 바로 구할 수 있겠죠. 하지만 미분이 불가능한 함수들도 존재합니다. 그런 경우는 Iteration 방법론, 그러니까 Gradient descent등의 접근으로 파라미터를 찾아나가야겠죠. 

 또 실제 경우에서는, 이 우도를 그대로 사용하는 것이 아니라, 로그를 취해 사용하는데 이는 복수 x를 통해 확률을 계산할 경우, 곱셈연산을 취해 결과를 내야하는데, 로그를 취하게 되면 덧셈연산을 취하면 되니, 계산 효율이 좋아지기 때문입니다.

마지막으로, 이러한 최대 우도 추정은 머신러닝 내부 파라미터를 최적화하는데도 자주 사용됩니다. 머신러닝은 대개 X를 통해 y를 출력하는 f의 파라미터를 구하는 문제이기 때문에, 위에서 말한 우도 추정 문제와 굉장히 유사하죠. 흔히 얘기하는 Cross-entrophy를 최소화하는 것과 우도를 최대화하는 것은 본질적으로 같습니다.

'그 외 지식' 카테고리의 다른 글

객체(Object)  (0) 2020.03.29
데이터 타입(Data Type)  (0) 2020.03.11
박스 플롯(Box Plot), 바이올릿 플롯(Violin Plot)  (0) 2020.03.10
P-NP 문제  (0) 2020.03.08
휴리스틱(Heuristic)  (0) 2020.03.07