데이터 분석과 머신러닝에서 핵심적인 추정 방법 중 하나가 최대우도추정법(MLE, Maximum Likelihood Estimation)이다.
MLE는 데이터가 가장 그럴듯하게 나올 수 있는 모수(Parameter)를 추정하는 방법이다.
모수(Parameter)란 무엇인가?
정의
- 모집단(Population)의 확률 분포를 완전히 규정하는 값이다.
- 즉, 모집단이 따르는 확률 분포를 수학적으로 표현할 때 필요한 고정된 값이다.
예시: 정규분포
정규분포
N(μ,σ2)
에서
- μ : 평균 (모평균, population mean)
- σ2 : 분산 (모분산, population variance)
→ 이 두 값이 바로 모수(Parameter)이다.
모수와 통계량의 차이
- 모수(Parameter): 모집단의 특성을 나타내는 값 → 보통 알 수 없다.
- 통계량(Statistic): 표본으로부터 계산된 값 → 모수를 추정하기 위해 사용한다.
예시
- 모평균 μ (모수) ↔ 표본평균 xˉ (통계량)
- 모분산 σ2 (모수) ↔ 표본분산 s2 (통계량)
표본 통계량이 해당 모수를 추정하는 역할을 한다.
우리가 모집단 전체를 알 수 없기 때문에, 일부 표본을 뽑아 평균과 분산을 계산한다.
이렇게 계산된 표본평균과 표본분산이 바로 모수(μ, σ²)를 가장 잘 나타내는 값이 된다.
즉, 화살표는 "추정 대상 ↔ 추정값"의 관계를 나타낸다.
정리
- 모수는 모집단 전체를 규정하는 값이다.
- 통계량은 표본 데이터를 기반으로 계산되어, 모수를 추정하는 데 사용된다.
우도(Likelihood)란?
정의: 주어진 데이터가 특정 모수(Parameter) 값에서 나올 가능성을 수치로 나타낸 것.
직관적으로 말하면:
"이 데이터가 관측되었을 때, 어떤 모수 값이 가장 그럴듯한가?"
중요한 포인트: 우도는 데이터가 고정되어 있고, 모수가 변수라는 관점에서 계산된다.
확률(Probability)은 모수가 고정되어 있고, 데이터가 변수일 때 계산한다.
우도(Likelihood)는 반대로, 데이터는 고정, 모수가 변수다.
수학적 표현
- 데이터: x1,x2,…,xn
- 모수: θ
- 확률모형: f(x∣θ)
우도함수(Likelihood function):
L(θ∣x1,x2,…,xn)=i=1∏nf(xi∣θ)
MLE는 이 우도함수를 최대화하는 θ를 찾는 과정이다.
확률 vs. 우도 비교
| 구분 | 확률(Probability) | 우도(Likelihood) |
|---|
| 데이터 | 변수 | 고정 |
| 모수 | 고정 | 변수 |
| 의미 | 데이터가 일어날 가능성 | 주어진 데이터에서 모수가 일어날 가능성 |
직관적 예시
동전 던지기 10번에서 앞면이 7번 나왔다고 하자.
이때 동전의 앞면 확률 p가 얼마일 때 이 결과가 가장 그럴듯한지(MLE 문제)?
L(p∣7앞,3뒤)=p7(1−p)3
최대화하면 p=0.7가 된다.
즉, 우도는 "데이터를 가장 잘 설명하는 모수값"을 찾는 도구이다.
동전을 10번 던졌고, 앞면이 7번, 뒷면이 3번 나왔다고 하자.
동전 앞면이 나올 확률을 𝑝라고 하면, 각 던짐은 독립적 사건이다.
- p7
- 7번의 앞면이 나올 확률을 곱한 것 ( p×p×⋯×p=p7 )
- (1−p)3
- 3번의 뒷면이 나올 확률을 곱한 것
- 뒷면이 나올 확률은 (1−p)
- 두 개를 곱한 이유
- 독립 사건의 확률 곱셈 법칙: 독립 사건 A, B가 있을 때
P(A와 B)=P(A)⋅P(B)
MLE란 무엇인가?
직관적으로 말하면:
"이 데이터가 이런 확률 분포에서 나왔다고 가정했을 때, 어떤 모수 값이 가장 그럴듯할까?"를 찾는 과정이다.
이를 수학적으로 표현하면 우도함수(Likelihood function)가 된다.
수학적 정의
- 데이터: x1,x2,…,xn
- 모수: θ
- 확률모형: f(x∣θ)
우도함수
L(θ∣x)=i=1∏nf(xi∣θ)
관측된 데이터가 θ라는 모수 하에서 나올 가능성을 모두 곱한 값이다.
로그우도
ℓ(θ)=logL(θ∣x)=i=1∑nlogf(xi∣θ)
로그를 취하면 곱셈이 덧셈으로 바뀌어 계산과 최적화가 쉬워진다.
MLE는 결국 ℓ(θ)를 최대화하는 θ를 찾는 과정이다.
예시: 정규분포의 MLE
정규분포 N(μ,σ2)에서 표본을 얻었다면,
MLE는 아래와 같이 모수를 추정한다.
- 평균: μ^MLE=xˉ (표본 평균)
- 분산: σ^MLE2=n1∑(xi−xˉ)2 (표본 분산)
즉, 우리가 익숙하게 쓰는 평균과 분산도 사실 MLE의 결과이다.
데이터 분석 면접에서 MLE를 묻는 이유
-
통계적 추정 개념의 이해
- 데이터로부터 모수를 어떻게 추정하는지 아는가?
-
최적화 과정 이해
- 로그우도 최대화를 통해 수학적 최적화를 이해하고 있는가?
-
실무 적용 능력
- 로지스틱 회귀, 딥러닝 손실 함수, HMM 등 다양한 모델 학습과 연결할 수 있는가?
추가로 알아야 할 정보
1. MLE vs MAP
MLE (Maximum Likelihood Estimation)
-
정의:
- 데이터만을 기반으로, 관측된 데이터를 가장 잘 설명하는 모수(Parameter)를 찾는 방법이다.
-
장점:
- 표본이 충분히 많으면 추정값이 일치성(consistency)을 가지며, 표본 크기가 커질수록 실제 모수에 가까워진다.
- 점근정규성(asymptotic normality): 큰 표본에서 추정치의 분포가 정규분포에 가까워진다.
-
단점:
- 작은 표본에서는 불안정할 수 있음
- 복잡한 모델의 경우, 우도 함수를 최대화하기 위해 수치 최적화가 필요
MAP (Maximum A Posteriori)
-
MLE: 데이터만 고려
θ^MLE=argθmaxL(θ∣x)
-
MAP: 데이터 + 사전분포 고려
θ^MAP=argθmaxL(θ∣x)P(θ)
활용
- 로지스틱 회귀, 크로스엔트로피 손실, EM 알고리즘 등 다양한 모델 학습에서 MLE 또는 MAP가 사용된다.
- 작은 표본에서는 MAP가 사전 지식을 활용해 추정 안정성을 높일 수 있다.
2. Python 예제: 정규분포에서 MLE로 모수 추정
import numpy as np
data = np.array([5.1, 4.9, 5.0, 5.2, 5.1, 5.0])
mu_mle = np.mean(data)
sigma2_mle = np.var(data)
print(f"MLE로 추정한 평균: {mu_mle:.3f}")
print(f"MLE로 추정한 분산: {sigma2_mle:.3f}")
결과 예시 :
MLE로 추정한 평균: 5.050
MLE로 추정한 분산: 0.008