티스토리 뷰
Maximum Likelihood Estimation (MLE) 란? (=최대우도법)
최대우도법은 어떤 데이터 분포 $X = {x_1, x_2, x_3 ... x_n}$가 존재 할 때,
$\theta$에 대한 probability density function $f(\theta|X)$를 maximization하는 $\theta$를 찾는 방법이다.
$\hat{\theta}=arg\underset{\theta}{max}f(X|\theta)$
확률밀도함수가 아래와 같은 gaussian distribution을 따른다고 가정 할 때
에서 아래 x가 $x_1, x_2, x_3...$이고 평균 $\mu$와 분산 $\sigma$ 값이 parameter일 때
각각의 probability density를 모두 곱하면($\Pi$) Likelihood가 됨.
이 때 Likelihood에다 Log를 씌워서 Log-Likelihood로 많이 쓰는데,
$\because$
위 로그 함수 그래프처럼 함수 $f(x)$가 maximum일때랑 함수 $logf(x)$가 max일 때는 같기 때문이고,
또 계산이 쉬워짐
$log\prod p(x|\theta) = \sum log p(x|\theta)$
이후 해당 함수를 $\theta$에 대해 편미분하여 극값을 갖는 $\theta$를 찾으면 끝!
$
\frac{\partial}{\partial\theta}L(\theta|x) = \frac{\partial}{\partial\theta}log P(x|\theta) = \sum_{k_1}^{n} \frac{\partial}{\partial\theta}log P(x_k|\theta) = 0
$
MLE와 Machine Learning, DeepLearning
- 딥러닝 역시 MLE 문제이나, 대부분 minimization으로 NLL(Negative Log Likelihood) 문제임
- MLE -> NLL 관점으로써 최적의 파라미터를 찾는 과정
MLE의 응용
예시1. 주머니에서 100개 흑돌, 백돌이 있을 때, 10번 꺼내서 4번 흑돌 꺼내면 추정되는 전체 흑돌 수를 예측하고 MLE로 해석.
- 10번 꺼낼 때 흑돌이 4개 나오는 경우의 수가 $C$이고 전체 중 흑돌을 꺼내는 확률 $p$ 값이 파라미터일 때 $p$에 대해서 다음과 같음
$C\cdot p^4\cdot (1-p)^6$ - 이 때 구하고자 하는 바는 위 수식이 일어나는 likelihood가 가장 큰 경우를 구하는건 다음과 같고
$\hat{p} = arg\underset{p}{max} C\cdot p^4 \cdot (1-p)^6$ - log를 씌우고
$= arg\underset{p}{max}( log(C) + 4log(p) + 6log(1-p)$ - $p$에 대해 미분한 값이 0인 경우는
$
4/p + 6/(1-p) = 0
$
$\therefore p = 4/10$
예시2. 내 키를 쟀을 때 182, 183, 184, 185, 186 값이 나왔다면 가장 가능성이 높은 키를 예측하고 MLE로 해석
- 센서값은 보통 가우시안 분포를 따른다고 가정하고, 평균값을 참값으로 봄
$\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})$ - 이것의 log-likelihood를 구하고 최대값을 만들려면 아래 값이 최대가 되야함
$-(182−\mu)^2+(183−\mu)^2+(184−\mu)^2+(185−\mu)^2+(186−\mu)^2$
$\therefore 184$
MLE는 관측값에 따라 값이 너무 예민하게 변함. -> ML관점에서 데이터 의존적인 성향이 강함
reference
[1] : https://youtu.be/XhlfVtGb19c
[2] : https://velog.io/@tamiblue/MLE
[3] : https://angeloyeo.github.io/2020/07/17/MLE.html
[4] : https://www.youtube.com/watch?v=sOtkPm_1GYw&ab_channel=SanghoLee
[5] : https://gaussian37.github.io/ml-concept-mlemap/
- Total
- Today
- Yesterday
- 코딩연습
- Memory
- Process vs Thread
- heap
- 백준10828
- 기술면접질문
- Stack
- computer science
- operation System
- 카드구매하기
- dynamic programming
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |