최대 우도 추정

NK590·2023년 10월 21일

기본 아이디어

이전 포스트에서 우도는 특정 결과 하에서 이 결과가 어느 확률분포에서 왔는가에 대한 가능성임을 알아보았다. 이 때, 다음과 같은 상황을 생각해보자.

두 박스가 있고, 각각의 박스에는 빨간 공과 파란 공이 채워져 있다. 각각의 박스에서 공을 하나 꺼낼 때, 첫번째 박스에서 빨간 공이 나올 확률은 0.7, 두번째 박스에서 빨간 공이 나올 확률은 0.3임이 알려져 있다.
이 때, 두 박스 중 한 박스에서 공을 꺼냈는데 빨간 공이 나왔다. 어느 박스에서 꺼냈을 가능성이 더 높을까?

첫번째 박스에서 꺼냈을 가능성이 더 높음은 자명하다. 여기서, 주어진 결과를 바탕으로 '우도의 최대값'을 찾는 방식을 사용하였다. 이를 확장시켜서 주어진 특정 결과에 따른 가능성, 즉 우도 값을 최대화시키는 추론을 생각해볼 수 있다.


우도 함수

우도의 정의에서, 우도 함수(Likelihood Function)를 다음과 같이 쓸 수 있다.

L(θX)=P(Xθ)=iP(xiθ)\mathcal{L}(\theta | X) = P(X | \theta) = \prod_{i}P(x_i | \theta)

또한, 로그 우도를 사용하여 이를 다음과 같이 바꿔쓸 수 있다.

logL(θX)=ilogP(xiθ)\log \mathcal{L}(\theta | X) = \sum_{i}\log P(x_i | \theta)

최대 우도 추정

최대 우도 추정 (Maximum Likelihood Estimation, MLE)은, 위에서 언급한 기본 아이디어를 확장한 개념으로, 우도의 값을 최대로 만드는 확률분포가 실제 가능성이 제일 높은 확률분포라는 점에 착안한다.

최대 우도 추정은 우도 L\mathcal{L}의 값을 최대로 만드는 확률분포 θ^\hat{\theta}를 찾는 과정이다. 로그 함수는 단조증가이기 때문에, 우도 대신 로그 우도를 사용하면 다음과 같이 쓸 수 있다.

θ^=arg maxθ(ilogP(xiθ))\hat{\theta} = \argmax_{\theta}\left( \sum_{i}\log P(x_i | \theta) \right)

이 때, 로그 우도는 θ^\hat{\theta}에서 극값을 가진다.

logLθθ=θ^=θilogP(xiθ)=0\left.\frac{\partial\log\mathcal{L}}{\partial\theta}\right|_{\theta = \hat{\theta}} = \frac{\partial}{\partial\theta}\sum_{i}\log P(x_i | \theta) = 0

즉, 위 조건을 만족하는 θ^\hat{\theta}를 찾음으로서 최대 우도해를 구할 수 있다.


예시

베르누이 분포를 생각해보자. 모수가 μ\mu인 베르누이 분포의 확률밀도는 다음과 같이 나타낼 수 있다.

P(xμ)=μx(1μ)1xP(x | \mu) = \mu^x(1-\mu)^{1-x}

이를 NN번 반복 시행을 하여, 표본 데이터로서 x1,,xNx_1, \cdots, x_N이 있는 경우 전체 확률밀도함수와 우도는 다음과 같다.

L(μx1,x2,,xN)=P(x1,x2,,xNμ)=iμxi(1μ)1xi\mathcal{L}(\mu | x_1, x_2, \cdots, x_N) = P(x_1, x_2, \cdots, x_N | \mu) = \prod_{i}\mu^{x_i} (1-\mu)^{1-{x_i}}

계산의 편의성을 위해 로그 우도를 도입하면 다음과 같다.

logL=ilog{μxi(1μ)1xi}=i{xilogμ+(1xi)log(1μ)}=ixilogμ+(Nixi)log(1μ)\begin{aligned} \log\mathcal{L} &= \sum_{i}\log\left\{\mu^{x_i} (1-\mu)^{1-{x_i}}\right\} \\ &= \sum_{i}\left\{x_i \log\mu + (1-{x_i})\log(1-\mu)\right\} \\ &= \sum_i x_i \log\mu + \left(N - \sum_i x_i \right) \log (1-\mu) \end{aligned}

여기서, 베르누이 분포에서는 결과값이 x=1x=1, x=0x=0 두 경우밖에 존재하지 않으므로, x=0x=0인 경우의 수를 N0N_0, x=1x=1인 경우의 수를 N1N_1이라고 하면 다음과 같은 관계식이 성립한다.

N1=ixi,N0=NN1=NixiN_1 = \sum_i x_i, \quad N_0 = N - N_1 = N - \sum_i x_i

이를 위 결과에 대입하면 다음 관계식을 얻는다.

logL=N1logμ+N0log(1μ)\log\mathcal{L} = N_1\log\mu + N_0\log(1-\mu)

여기서 최대 우도값을 가지는 모수 μ^\hat{\mu}를 찾기 위해서는, 위 식을 μ\mu로 미분해서 극값을 찾으면 된다.

logLμ=μ[N1logμ+N0log(1μ)]=N1μN01μ=0\begin{aligned} \frac{\partial\log\mathcal{L}}{\partial\mu} &= \frac{\partial}{\partial\mu}\left[N_1\log\mu + N_0\log(1-\mu)\right] \\ &= \frac{N_1}{\mu} - \frac{N_0}{1-\mu} \\ &= 0 \end{aligned}

이 결과를 μ\mu에 대해 정리하면 다음과 같다.

N1μN01μ=0N1(1μ)=N0μμ=N1N0+N1=N1N\begin{aligned} & \frac{N_1}{\mu} - \frac{N_0}{1-\mu} = 0 \\ \Rightarrow \quad & N_1(1-\mu) = N_0\mu \\ \Rightarrow \quad & \mu = \frac{N_1}{N_0 + N_1} = \frac{N_1}{N} \end{aligned}

즉, 최대 우도 추정으로 구한 베르누이 분포의 모수는 x=1x=1이 나온 횟수와 전체 시행횟수의 비율임을 알 수 있다.


최대 우도 추정의 의의

최대 우도 추정은, 위에서 알아보았듯이 데이터가 주어졌을 때 그 데이터에 제일 맞는 확률분포를 찾는 과정이라고 볼 수 있다. 이는 통계학, 머신러닝 등의 학문에서 주어진 데이터에 대해 최대 우도값을 갖는 확률분포를 찾았다면, 그 분포가 주어진 데이터를 제일 잘 설명하는 확률 모델, 즉 대부분의 경우에서 우리가 찾는 바로 그 확률 모델이라는 의미가 된다.

profile
AI 엔지니어 (진)

0개의 댓글