Maximum Likelihood Estimation(최대 우도 추정, MLE) 의 이해 (구 블로그 글 복구)
- 세상에는 내포된 실제 확률과, 관측으로 얻어낸 확률이 존재합니다.
동전 던지기의 확률은 얼마일까요?
쉽게 앞/뒤 결과를 가진 공정한 사건이라 1/2라고 할수 있겠는데,
이걸 어떻게 판단했나요?
결국 확률은,
'전체에서 일어난 사건 개수 / 전체 사건 개수'
를 뜻합니다.
우리는 전체 사건의 개수를 파악하지 못할 가능성이 큽니다.
너무 많거나, 조사에 비용이 너무 많이 드는 경우가 그러합니다.
이럴때 우리는 표본을 조사해서, 그 표본공간 안의 사건들로 확률을 유추합니다.
이렇게 표본의 확률을 사용하여 모수의 확률을 측정하려는 질문이 바로 MLE의 시작입니다.
(정확히는, 관측된 표본을 가장 잘 설명하는 모수를 찾아내는 것.)
- 확률 이해하기
어떤 항아리가 존재한다고 가정합시다.
우리는 이 내부를 모른다는 가정이지만, 실제로 이 안에는 흰돌 60개, 검은돌 40개가 들어있다고 가정합시다.
내부를 모르는 우리들은, 그 내부를 파악해보기 위해...
적어도 가장 그럴싸하게 추정해보기 위해, 표본을 10개 추출했습니다.(추출하고 넣고, 추출하고 넣고를 반복...)
다 추출할수는 없냐구요?
한번 돌을 추출할때마다 키가 1센티씩 줄어드는 마법의 항아리인지라, 힘들게 딱 10개만 가져왔습니다.
추출한 돌 10개는
검, 흰, 흰, 검, 흰, 검, 흰, 검, 흰, 흰
이었습니다.(추출한 후 다시 항아리 속에 넣었으므로 이는 독립시행입니다.)
자, 이제 우리는 더이상 손해를 보고싶지 않고,
우리가 추출한 저 표본이 항아리 내부 상황을 말해줄 것이라고 기도해야합니다.
검 : 4, 흰 : 6
의 비율이자, 발생 확률을 우리는 실제 사건을 몇번 일으켜봄으로써 알게 된 것입니다.
과연 옳을까요?
다시 말하지만 우리는 저 항아리 속의 정확한 사정을 모르고, 알수도 없습니다.
알수 있는 것은, 우리가 관측한 저 사건 뿐이고, 이를 기반으로, 이를 가장 잘 설명하는 모수의 상태를 추론해내는 것입니다.
- 표본이 발생할 확률 공식
자, 먼저 저 표본이 발생할 확률부터 알아봅시다.
??개의 돌을 가지고 있는 항아리 내에서 10개를 추출했고, 그것이 저러한 패턴으로 추출될 확률은 얼마일까요?
결국 항아리 h에서,
검(a), 흰(b), 흰, 검, 흰, 검, 흰, 검, 흰, 흰
이라는 것으로 돌이 추출될 확률은
p(a,b,b,a,b,a,b,a,b,b | h)
= p(a|h) * p(b|h) * p(b|h) * p(a|h) * p(b|h) * p(a|h) * p(b|h) * p(a|h) * p(b|h) * p(b|h)
= p(a|h)^4 * p(b|h)^6
= p(a|h)^4 * (1 - p(a|h))^6
= p^4 * (1-p)^6
입니다.
하지만 우리가 원하는 것은 검은돌과 흰돌의 비율이지 패턴이 아니기에,
검은돌 4개와 흰돌 6개가 나올 전체 확률을 구하는 것입니다.
한 패턴에 대한 단위 확률을 구하는 공식,
p^4 * (1-p)^6
를 기본으로 하여,
이 비율로 나올수 있는 조합을 구합니다.
a가 4개 검출되고, b가 6개 검출될 사건은,
fact(10) / (fact(10-4)*fact(4)) = 210 = C
입니다.
(확률에서는 경우의 수를 구하는 것이 기본이자 핵심이므로, 모르신다면 https://blog.naver.com/PostView.nhn?blogId=algosn&logNo=221413837039&parentCategoryNo=&categoryNo=9&viewDate=&isShowPopularPosts=true&from=search)
즉, 우리가 항아리에서 돌을 추출했을 때, 4개의 검은돌과 6개의 흰돌을 목격할 확률을 구하려면,
(p^4 * (1-p)^6) * C
를 하시면 됩니다.
한 패턴에 대한 확률에, 해당 비율로 나올수 있는 모든 경우의 수를 곱해주면 되죠.
결국, 특정 패턴이 나올 확률에 C를 곱해줌으로써, 이 확률 공식을 조합에 상관 없이 각 돌의 출현 확률에 대한 수식으로 만든 것입니다.
- 우도함수
MLE에서는 한가지 가정을 합니다.
'관측은 쓸데없지 않다.
관측된 데이터는, 해당 상황에서 가장 나올법한 일이기에 그렇게 나온 것이다...'
즉, 항아리 내에서 가장 나오기 쉬운 형태이기에 관측 데이터가 그렇게 나왔다고 가정을 하는 것입니다.
(위에서는 10개만 추출했지만, 보다 많이 관찰하면, 보다 뚜렷하고 모수를 잘 설명하는 패턴이 나올것입니다. 그나저나 어째 명확하지가 않죠? 확률 통계가 수학과는 또 다른점이 바로 이 점입니다.)
우리가 관측해서 나온,
(p^4 * (1-p)^6) * C
라는 공식, 검은돌 4, 흰색 6라는 발생 확률이 그냥 나온게 아니라는 것이고,
그냥 나온게 '아니어야한다' 라는 뜻입니다.
즉, 모수를 통해 표본의 확률을 구하는게 아니라, 표본들의 발생 결과와 그 확률을 가장 잘 나타내주는 모수를 구하는 개념으로 탈바꿈 하는 것입니다.
위의 표본으로 하자면,
p` = argmax(p) (p^4 * (1-p)^6) * C
로 나타낼수 있는데,
이는 즉,
(p^4 * (1-p)^6) * C라는, 우리가 목격한 사건들이 발생할 확률이 가장 높게 만드는 확률 p를 구하면, 그것이 바로 모수의 구성 상태 p`와 같다라는 것을 의미하는 것입니다.
- 함수 바꾸기
위의 함수를 그대로 해서 값을 찾는 것은 어려운 일입니다.
고로, 이를 쉽게 해주기 위해,
log를 취해줍니다.
log는 대소관계가 변하지 않고, 제곱을 곱셈으로, 곱셈을 덧셈으로 바꿔주죠.
p` = argmax(p) (p^4 * (1-p)^6) * C
= argmax(p) 4log(p) + 6log(1-p) + log(C)
= argmax(p) f(p)
f(p) = 4log(p) + 6log(1-p) + log(C)
log로 식을 바꾸면, 위와 같이, f(p)가 나오고,
이 값이 최대가 되는 p를 구하는 것이 문제가 됩니다.
위의 식을 p에 대해 미분하면,
f`(p) = 4/p - 6/(1-p)
가 됩니다.
C는 상수값이니 빠지고,
log x의 미분은, 1/x이니, 위와 같이 하면 쉽게 구할수 있습니다.(log의 미분 증명은 https://m.blog.naver.com/PostView.nhn?blogId=leesu52&logNo=90172824230&proxyReferer=https:%2F%2Fwww.google.com%2F)
4log(p) + 6log(1-p)의 그래프는 위와 같으므로,
이 값이 최대가 되는 구간의 미분값(기울기)이 0이 되어야 함을 알수 있습니다.
f`(p) = 4/p - 6/(1-p) = 0
이것이 바로 우리가 관찰한 표본을 가장 잘 설명해주는 모수의 p`를 구하는 공식입니다.
다르게 말하자면,
f(p) = 4log(p) + 6log(1-p) + log(C)
라는 우도(likelihood)가 최대가 되도록 하는 p를 구해내는 것이죠.
실제 구해본다면,
1. 4/p - 6/(1-p) = 0
2. 4/p = 6/(1-p)
3. 4-4p = 6p
4. 4 = 10p
5. p = 4/10
어떤가요?
최대 우도를 구해봤더니, 모수의 p가 4/10, 즉, 모수에 검은 돌이 4라는 비율로 존재해야 위와 같은 표본이 추출될 확률이 최대가 됨을 알수 있었습니다.
여전히 우리는 항아리 안의 구성을 모르는거야 변하지 않지만,
하나의 가정에 따라서 모수를 추정해낸 것입니다.
앞으로 우리가 어찌어찌 더더욱 표본을 추출하게 된다면, 보다 표준적인 확률 분포를 구할수 있을테고, 이러한 표본을 통해 모수를 추정해나갈수 있습니다.
(설령 적은 샘플 하에서 추정한 모수에 오류가 존재하고, 우리가 그걸 알수 없더라도, 데이터가 새로 관측되면 관측될수록 MLE는 보다 정확한 결과를 낼 것입니다.)
- 요약
1. 모델 설정 : 위에서는 항아리 속의 검은 돌의 비율을 알아보고자 함.(나머지는 1-p(a).. 데이터 종류가 2개라면 결국 1-p(a)는 p(b)가 됨)
2. 관측 : 항아리 속에서 표본을 추출후 사건을 관찰
3. 발생 확률 : 해당 표본이 발생할 확률식을 설정
4. 최대 우도 추정 : 위의 확률식의 값이 최대가 되는 모수의 함수이자 모델의 파라미터를 구함
- MLE는, 목격한 사건이 모수에 근거한 가장 발생하기 쉬운 사건임을 가정하여,
그 발생 확률이 최대가 되는 모수의 확률을 구하는 것이다...
라고 하면 되며,
이는 데이터를 기반으로, 숨겨지고 실존하는 어떠한 법칙을 발견하는 여러 분석 모델과,
데이터 기반으로 학습하는 머신러닝 모델들의 기반이 되는 중요한 이론입니다.