[최적화이론] 최대 우도 추정 Maximum Likelihood Estimation (MLE)

Ethan·2023년 2월 20일
3

최적화이론

목록 보기
2/5

본 블로그의 모든 글은 직접 공부하고 남기는 기록입니다.
잘못된 내용이나 오류가 있다면 언제든지 댓글 남겨주세요.


Likelihood?

Likelihood는 이름 그대로 "그럴 듯한 정도"를 의미합니다. 구체적으로는 주어진 데이터가 어떤 확률 분포에서 추출되었을 가능성을 뜻합니다. 여기서 '가능성'이라고 표현하긴 했지만 실제 Likelihood는 구체적인 '확률'의 개념이 아니라는 점을 꼭 기억합시다.

기본적으로 머신러닝의 목적은 주어진 데이터를 가장 잘 설명하는 분포를 찾는 것입니다. 그리고 주어진 데이터들이 어떤 임의의 분포에서 추출되었을 가능성(likelihood)을 최대화하면 그 분포가 바로 데이터의 모집단이 되겠죠. 이게 바로 Maximum Likelihood Estimation (MLE) 입니다. 간단하죠?

Likelihood Function

Likelihood는 다음과 같은 수식으로 나타낼 수 있습니다.

L(θX)=P(Xθ)(1)L(\theta|X) = P(X|\theta)\qquad (1)

XX는 주어진 데이터 집합이고 θ\theta는 모델의 파라미터입니다. 주어진 데이터 xXx \in X가 모집단에서 독립적으로 추출되었다고 가정하면 식 (1)의 우변을 다음과 같이 바꿀 수 있습니다.

P(Xθ)=k=1nP(xkθ)P(X|\theta)=\prod_{k=1}^nP(x_k|\theta)

이제 우변을 최대화하면 주어진 데이터를 가장 잘 설명하는 함수를 구할 수 있습니다.

θ=arg maxθ(k=1nP(xkθ))\theta^*=\argmax_\theta \left(\prod_{k=1}^nP(x_k|\theta) \right)

이 때 얻은 파라미터 θ\theta^*이 바로 모델의 학습 결과가 됩니다.

Log-likelihood Function

P(Xθ)P(X|\theta)는 확률이기 때문에 [0,1][0, 1]의 범위를 갖습니다. 그런데 과연 주어진 데이터를 한 번만 보고 모집단의 함수를 완벽하게 근사할 수 있을까요? 당연히 아니겠죠?

그래서 Likelihood function은 낮은 값을 가질 확률이 높습니다. 그런데 지나치게 값이 작으면 오차에 매우 민감해지므로 로그를 씌워서 이런 문제가 발생하지 않도록 해줍니다.

arg maxθ(k=1nlogP(xkθ))(2)\argmax_\theta \left(\sum_{k=1}^n\log P(x_k|\theta)\right)\qquad(2)

식 (2)를 log likelihood function이라고 합니다.

Maximum Likelihood Estimation

이제 θ\theta를 구하기만 하면 됩니다. 일반적으로 어떤 함수의 극대/극소값은 미분계수가 0이 되는 지점에 존재합니다. 따라서 다음과 같이 θ\theta로 미분한 결과가 0이 되도록 만드는 지점을 찾으면 됩니다.

θL(θX)=θk=1nlogP(xkθ)=0(3){\partial\over \partial\theta}L(\theta|X)={\partial\over \partial\theta}\sum_{k=1}^n\log P(x_k|\theta) =0\qquad(3)

활용 예시

식 (3)을 가지고 한 번 실제로 추정을 해 보겠습니다.

정규분포에서 독립추출한 표본 X={x1,x2,...,xn}X=\{x_1, x_2,..., x_n\}에 대해, 모평균은

μ=1nk=1nxk\mu={1\over n}\sum_{k=1}^nx_k

이고, 모분산은

σ2=1nk=1n(xkμ)2\sigma^2={1\over n}\sum_{k=1}^n(x_k-\mu)^2

이라는 점을 기억해 둡니다.

정규분포에서 추출했으니 당연히 표본도 정규분포입니다.

fμ^,σ^2(xk)=1σ^2πexp((xkμ^)22σ^2)(4)f_{\hat\mu, \hat\sigma^2}(x_k)={1\over \hat\sigma\sqrt{2\pi}}\exp\left(-{(x_k-\hat\mu)^2\over 2\hat\sigma^2} \right)\qquad(4)

식 (4)를 위에서 구한 likelihood function에 대입하면

P(Xθ)=k=1nfμ^,σ^2(xk)=k=1n1σ^2πexp((xkμ^)22σ^2)P(X|\theta)=\prod_{k=1}^nf_{\hat\mu, \hat\sigma^2}(x_k)=\prod_{k=1}^n{1\over \hat\sigma\sqrt{2\pi}}\exp\left(-{(x_k-\hat\mu)^2\over 2\hat\sigma^2} \right)

이고, 여기에 로그를 씌우면

logL(θX)=k=1nlog(1σ^2πexp((xkμ^)22σ^2))=k=1n(log(exp((xkμ^)22σ^2))log(σ^2π))=k=1n((xkμ^)22σ^2log(σ^)log(2π))(5)\log L(\theta|X) = \sum_{k=1}^n\log\left({1\over \hat\sigma\sqrt{2\pi}}\exp\left(-{(x_k-\hat\mu)^2\over 2\hat\sigma^2} \right)\right)\\ \quad\\ = \sum_{k=1}^n\left(\log\left(\exp\left(\frac{(x_k-\hat\mu)^2}{2\hat\sigma^2}\right)\right)-\log(\hat\sigma\sqrt{2\pi})\right)\\ \quad\\ = \sum_{k=1}^n\left(-{(x_k-\hat\mu)^2\over 2\hat\sigma^2}-\mathrm{log}(\hat\sigma)-\mathrm{log}(\sqrt{2\pi})\right)\qquad(5)

이제 식 (5)를 각각 μ^,σ^\hat\mu, \hat\sigma로 편미분하면 모평균과 모분산의 근사값을 구할 수 있습니다. 먼저 모평균의 근사값을 계산해보겠습니다.

μ^L(θX)=μ^k=1n((xkμ^)22σ^2log(σ^)log(2π))=12σ^2k=1nμ^(xk22xkμ^+μ^2)=12σ^2k=1n(2xk+2μ^)=1σ^2k=1n(xkμ^){\partial\over\partial\hat\mu}L(\theta|X)={\partial\over\partial\hat\mu}\sum_{k=1}^n\left(-{(x_k-\hat\mu)^2\over 2\hat\sigma^2}-\log(\hat\sigma)-\log(\sqrt{2\pi})\right)\\ \quad\\ = -{1\over2\hat\sigma^2}\sum_{k=1}^n{\partial\over\partial\hat\mu}\left(x_k^2-2x_k\hat\mu+\hat\mu^2\right)\\ \quad\\ =-{1\over2\hat\sigma^2}\sum_{k=1}^n\left(-2x_k+2\hat\mu\right)\\ \quad\\ ={1\over\hat\sigma^2}\sum_{k=1}^n\left(x_k-\hat\mu\right)

위 식의 값이 0이어야 하므로,

1σ^2k=1n(xkμ^)=1σ^2(k=1nxknμ^)=0{1\over\hat\sigma^2}\sum_{k=1}^n(x_k-\hat\mu)={1\over \hat\sigma^2}\left(\sum_{k=1}^nx_k-n\hat\mu\right)=0

따라서 MLE로 추정한 모집단의 평균값은 다음과 같이 실제 모평균과 같아집니다.

μ^=μ=1nk=1nxk\hat\mu=\mu={1\over n}\sum_{k=1}^nx_k

같은 과정으로 모분산의 추정값을 구하면,

σ^L(θX)=σ^k=1n((xkμ^)22σ^2log(σ^)log(2π))=k=1n((xkμ^)2σ^31σ^)=nσ^+1σ3k=1n(xkμ^)2{\partial\over\partial\hat\sigma}L(\theta|X)={\partial\over\partial\hat\sigma}\sum_{k=1}^n\left(-{(x_k-\hat\mu)^2\over 2\hat\sigma^2}-\log(\hat\sigma)-\log(\sqrt{2\pi})\right)\\ \quad\\ =\sum_{k=1}^n\left({(x_k-\hat\mu)^2\over\hat\sigma^3}-{1\over\hat\sigma}\right)\\ \quad\\ =-{n\over\hat\sigma}+{1\over\sigma^3}\sum_{k=1}^n(x_k-\hat\mu)^2

위 식의 값이 0이어야 하므로

nσ^+1σ^3k=1n(xkμ^)2=0-{n\over\hat\sigma}+{1\over\hat\sigma^3}\sum_{k=1}^n(x_k-\hat\mu)^2=0

위와 마찬가지로 MLE를 통해 추정한 모분산 값도 실제 모분산과 같아집니다.

σ^2=σ2=1nk=1n(xkμ)2\hat\sigma^2=\sigma^2={1\over n}\sum_{k=1}^n(x_k-\mu)^2

참고문헌

  1. 공돌이의 수학정리노트 MLE 설명
  2. 데이터 사이언스 스쿨 MLE 설명
profile
재미있게 살고 싶은 대학원생

0개의 댓글