최대 우도 추정법(MLE : Maximum Likelihood Estimation)이란?
- Maximum Likelihood Estimation, 줄여서 MLE는,
패턴 인식, 머신러닝 알고리즘 등에 사용되는 관련 가장 기본적인 테크닉으로,
딥러닝, 로지스틱 회귀, 결정트리 등을 이해하기 위해서 필수적 지식입니다.
- 문제 :
항아리 안에 검은 구슬, 흰 구슬이 섞여있다.
합쳐서 100개의 구슬이 있는데, 10번 구슬을 추출해서 보니,
검은 구슬이 4번, 흰 구슬이 6번 추출 되었다.
그렇다면 항아리에는 몇개의 검은 구슬이 있었을까?
이를 최대 우도 추정법으로 구해보시오.
- 일반적 해석 :
확률에 따른 근거로, 전체 데이터의 근사값을 구해내는 문제입니다.
일반적인 확률로써 이를 풀어보면,
샘플로 추출한 10개의 데이터가,
검은구슬 4번이니,
총 10번중 4번의 확률이 되는 것이고,
고로, 항아리 속 총 구슬 중 검은 구슬의 비율은, 10개 중 4개로 추론할수 있을테니,
검은 구슬은, 40개가 있을 것이다.
라고 쉽게 풀어볼수 있을 것입니다.
- 최대 우도 추정에 따라 이를 풀어보자면,
항아리 내 구성 상태중 우리가 구할 검은 구슬의 비율(0.0~1.0)을,
p라고 둡시다.
p = 검은 구슬 수 / 전체 구슬 수
가 되겠죠?
그러면, 우리가 구하고자 하는 값이 아닌, 다른 유형의 비율은,
전체 비율을 뜻하는 1에서,
검은 구슬의 비율 p를 뺀 값이 됩니다.
1-p = 검은 구슬이 아닌 수 / 전체 구슬 수
보이지 않는 항아리 내에서, 구성 요소를 살피려면,
샘플을 뽑아서 어떤 유형의 구슬이 나오는지를 관찰하는 방법이 있는데,
첫번째 구슬을 꺼낸 사건이, 두번째 구슬을 꺼낼 때 영향을 끼치지 않는 것(독립시행)으로,
즉, 구슬을 꺼내고, 다시 항아리에 집어넣고 섞고, 다시 꺼내는 방식으로 진행한다는 것으로 가정하여,
위와 같이 검은 공 4개, 흰공 6개의 결과가 나왔다면,
p * 1-p * 1-P * p .....
이런 식으로, 확률이 중첩되며,
결국은,
p의 4제곱 곱하기 1-p의 6제곱이, 항아리 안에서, 해당 사건(검은공과 흰공이 나오는 벡터가 생성되는 것)의 확률이 되는 것이죠.
그런데, 해당 벡터가 나오는 패턴은 다양합니다.
검흰흰검흰검흰검흰흰
검흰검흰흰검흰검흰흰
검흰검흰검흰흐니검흰
...
이런식으로, 총 10개 중에, 검은색 4개, 검은색이 아닌 것 6개가 나오는 가짓수가 다양하기에,
이에대한 모든 경우의 수를 구하려면,
10! / 4! * 6!
을 해줍니다.
각자 펙토리얼로, 계산을 하여 나온 값이 210이고, 이를 C라고 둡니다.
이렇게 나온 4 , 6의 모든 패턴의 가짓수에, 해당 사건이 일어날 확률을 곱해줘야,
구슬을 10번 꺼냈을 때, 4개의 검은 구슬, 6개의 흰 구슬을 목격될 확률이 나오게 됩니다.
P(사건들 | p) = C * (p^4) * ((1-p)^6)
이렇게 말이죠.
- 잠시, 확률이라는 것에 대해 말하자면,
전체 데이터를 꺼내놓고, 명확하게 카운트 하는 것이 데이터 분석에서는 가장 정확도가 높지만,
그러지 못하는 경우가 있습니다.
항아리가 아니라, 모래사장의 모래 알갱이의 성분 분포와 같은 경우는, 분명 유한한 수이기는 할테지만, 하나씩 세어보는 것은 말도 안되고,
애초에 셀수 없는 경우가 있습니다.
예를들면, 이전에도 글에서 설명한적 있는, 압정 던지기 확률 구하기의 경우에는,
던지기 전까지는 그것에 대한 데이터가 나오지 않고, 던지기 시작하면, 끝이라는 것이 없습니다.
최대 우도 추정은, 바로 이런 경우에, 데이터를 파악하는 한 방법으로 사용되죠.
흔한 사건(샘플 관찰) = 빈도가 높은 사건(분석) = 발생 확률이 높은 사건(결론)
- 여기까지 해서, 우리가 최대 우도 추정으로 해야할 것은,
우리가 목격한 사건들이 발생할 확률을 가장 높게하는 p*를 구하는 것입니다.
p* = argmaxp C * (p^4) * ((1-p)^6)
위 공식에 따라서, 발생 확률을 극대화하는 p값을 구하는데,
제곱의 성질을 변화시키면서, 수식의 성질을 변화시키지 않는 단조증가 함수인 log를 취해주면, 이를 보다 계산하기 쉽게 변형이 가능한데,
p* = argmaxp C * (p^4) * ((1-p)^6)
= argmaxp log(C) + 4log(p) + (6log(1-p))
= argmaxpf(p)
에서,
f(p) = log(C) + 4log(p) + (6log(1-p))
f`(p) = (4/p) - (6/1-p) = 0
이 됩니다.
f`(p) = (4/p) - (6/1-p) = 0
이걸 풀어보면,
4/p = 6/1-p
4-4p = 6p
4 = 10p
p = 4/10
이 되죠.
뭐, 결론적으로는 우리가 처음 계산한 바로 그 값이 나옵니다.
(결론)
: 최대 우도 추정법은,
1) 모델을 설정합니다.
2) 모델에서 본인이 목격한 사건들의 발생 확률 식을 구합니다.
3) 그 확률을 최대로 높이는 모델 변수를 구합니다.
이 방법론이 뜻하는 것은,
확률이라는 것이 수치와 연관된 그 연결점에 대해 신뢰성의 부여하는 것입니다.
확률은 사실과는 다르지만, 사실과도 같은 현실성을 지닌다고 볼수 있습니다.
실제 데이터를 추론하기 위해여, 그것이 발생할 확률을 구한다면, 그 데이터에 대한 파악이 가능할 것인데,
그러한 추론 모델을 만들기 위하여, 목격한 사건의 발생 확률을 최대로 높이는 모델 변수를 찾아내는 것...
그것이 최대 우도 추정법이라고 합니다.