Search
Duplicate

수학/ 가능도(Likelihood), MLE, NLL, Marginal Likelihood

가능도(Likelihood)

확률 함수를 이용해서 데이터를 만드는 것은 쉽지만, 그 반대는 어렵다. 그런데 현실의 문제는 관찰된 데이터로부터 그 데이터를 잘 설명하는 확률 모델을 만들고 고르는 것이기 때문에, —그래야 그 모델을 이용해 새로운 데이터를 예측할 수 있으니까— 만들어진 모델이 현실의 데이터를 얼마나 잘 설명하는지를 따져야 하는데, 그 개념이 바로 Likelihood이다.
파라미터 θ\boldsymbol{\theta}로 정의된 확률 함수 p(x;θ)p(\bold{x};\boldsymbol{\theta})pθ(x)p_{\boldsymbol{\theta}}(\bold{x})로 표기하기도 함— 에 대해, 이 확률 함수에 대한 가능도 함수(likelihood function)는 다음과 같이 정의한다.
L(θ;x)p(x;θ)L(\boldsymbol{\theta};\bold{x}) \triangleq p(\bold{x};\boldsymbol{\theta})
확률 함수 p(x;θ)p(\bold{x};\boldsymbol{\theta})는 고정된 θ\boldsymbol{\theta}를 이용하여 입력 x\bold{x}에 대한 결과를 계산하는 반면, 가능도 함수 L(θ;x)L(\boldsymbol{\theta};\bold{x})을 고정된 x\bold{x}를 이용하여 입력 θ\boldsymbol{\theta}에 대한 결과를 계산한다.
이것을 직관적으로 표현하면 Likelihood는 함수의 파라미터 θ\boldsymbol{\theta}가 주어진 데이터 x\bold{x}를 얼마나 잘 설명하는지를 측정하는 것이라고 할 수 있다.
확률 질량 또는 밀도 함수 p(xθ)p(\bold{x}|\boldsymbol{\theta})가 현실의 데이터 (x1,x2,...,xN)(\bold{x}_1, \bold{x}_2,...,\bold{x}_N)를 얼마나 잘 설명하는지는 해당 함수에 실제로 데이터를 집어 넣고 그 결과 값을 모두 곱해서 측정할 수 있다. 이를 다음과 같은 수식으로 표현할 수 있다.
이것이 바로 확률 함수의 Likelihood 계산 방법이다.
L(θx1,x2,...,xN)=i=1Np(xiθ)L(\boldsymbol{\theta}|\bold{x}_1,\bold{x}_2,...,\bold{x}_N) = \prod_{i=1}^{N} p(\bold{x}_i|\boldsymbol{\theta})
이산형 데이터의 경우 확률 질량 함수는 0-1의 값을 가지므로 그 곱인 likelihood는 0-1사이의 값이 되는 반면, 연속형 데이터의 경우 확률 밀도 함수는 밀도 —구간에 대한 적분값— 를 제공하기 때문에 1보다 클 수 있어서 likelihood가 1보다 클 수 있다.
이 때문에 Likelihood는 확률이 아니다.
주의)
정의에서 사용한 p(x;θ)p(\bold{x};\boldsymbol{\theta})L(θ;x)L(\boldsymbol{\theta};\bold{x}) 표기는 고정된 변수와 변하는 변수를 나타내는 반면, 실제 함수 값을 계산할 때 p(xθ)p(\bold{x}|\boldsymbol{\theta})L(θx1,...,xN)L(\boldsymbol{\theta}|\bold{x}_1,...,\bold{x}_N) 표기는 각각 θ\boldsymbol{\theta}가 주어졌을 때의 x\bold{x}의 확률과 x1,...,xN\bold{x}_1,...,\bold{x}_N가 주어졌을 때 θ\boldsymbol{\theta}의 가능도를 의미한다. 비슷해 보이지만 다른 개념이므로 주의.
일반적으로 곱으로 계산하는 것보다 log를 씌운 후 합을 계산하는 것이 간편하기 때문에 다음과 같이 Log를 씌운 Log Likelihood를 사용한다.
logL(θx1,x2,...,xn)=i=1Nlogp(xiθ)\log L(\boldsymbol{\theta}|\bold{x}_1,\bold{x}_2,...,\bold{x}_n) = \sum_{i=1}^{N} \log p(\bold{x}_i|\boldsymbol{\theta})

최대 가능도 추정(Maximum Likelihood Estimation)

가능도가 모델이 데이터를 얼마나 잘 설명하느냐에 대한 것이므로, 데이터를 가장 잘 설명하는 모델을 찾는게 필요하고, 그래서 가장 높은 가능도를 찾는 것이 최대 가능도 추정(Maximum Likelihood Estimation, MLE)이다.
MLE는 확률 함수에서 주어진 표본 데이터를 관찰할 확률을 최대화하는 파라미터를 찾는 것인데, 이것은 분포의 mode(최빈값)을 찾는 것과 연결되어 있다.
관찰 된 데이터에 의해 Likelihood를 최대화 하는 것은 다음과 같이 정의 된다.
아래 식에서 p(Dθ)p(\mathcal{D}|\boldsymbol{\theta})θ\boldsymbol{\theta}로 파라미터화 된 확률 함수, D\mathcal{D}는 관찰된 데이터셋(입력 x\bold{x}), arg maxθ\argmax_{\boldsymbol{\theta}}는 주어진 함수 p(Dθ)p(\mathcal{D}|\boldsymbol{\theta})에서 θ\boldsymbol{\theta}를 최대화 한다는 의미이다.
θ^mlearg maxθp(Dθ)\hat{\boldsymbol{\theta}}_{\text{mle}} \triangleq \argmax_{\boldsymbol{\theta}} p(\mathcal{D}|\boldsymbol{\theta})
샘플이 동일한 분포에서 독립적으로 뽑혔다고 가정 하면 —이를 independent and identically distributed, iid라고 한다— likelihood는 다음과 같이 된다.
p(Dθ)=i=1Np(yixi,θ)p(\mathcal{D}|\boldsymbol{\theta}) = \prod_{i=1}^{N} p(\bold{y}_i|\bold{x}_i, \boldsymbol{\theta})
곱 보다는 log를 씌운 후 합하는 것이 간편하므로 다음과 같이 변경한다.
θ^mle=arg maxθi=1Nlogp(yixi,θ)\hat{\boldsymbol{\theta}}_{\text{mle}} = \argmax_{\boldsymbol{\theta}} \sum_{i=1}^{N} \log p(\bold{y}_i|\bold{x}_i, \boldsymbol{\theta})
위와 같이 log likelihood 함수를 θ\theta로 편미분한 후, 그 식을 0을 만족시키는 θ\boldsymbol{\theta} 값을 찾으면 θ\boldsymbol{\theta}의 MLE가 된다.
θmle=θL(θ)=θi=1Nlogp(yixi,θ)=0\boldsymbol{\theta}_{mle} = {\partial \over \partial \boldsymbol{\theta}} \mathcal{L}(\boldsymbol{\theta}) = {\partial \over \partial \boldsymbol{\theta}} \sum_{i=1}^{N} \log p(\bold{y}_i|\bold{x}_i,\boldsymbol{\theta}) = \bold{0}

Negative Log Likelihood

참고로 최적화 알고리즘은 비용 함수(cost function)을 최소화하도록 설계되므로 목적 함수를 위의 log likelihood에 마이너스를 붙인 Negative Log Likelihood(NLL)로 사용한다.
log 함수에 음을 씌우면, 1을 기준으로 0-1사이의 값은 양의 값을 갖고(0에 가까워질 수록 무한대로 감), 1이상의 값은 음의 값을 갖는 모양이 나온다. 이때 0-1사이의 값만 사용하면 마치 확률처럼 사용이 가능하기 때문에 log likelihood에 음을 씌워 비용함수로 사용한다.
NLL(θ)logp(Dθ)=n=1Nlogp(ynxn,θ)\text{NLL}(\boldsymbol{\theta}) \triangleq -\log p(\mathcal{D}|\boldsymbol{\theta}) = - \sum_{n=1}^{N} \log p(\bold{y}_n|\bold{x}_n, \boldsymbol{\theta})
이 NLL을 최소화하면 MLE를 최대화하는 것과 동일하므로 다음과 같이 사용한다.
θ^mle=arg minθn=1Nlogp(ynθ)\hat{\boldsymbol{\theta}}_{\text{mle}} = \argmin_{\boldsymbol{\theta}} - \sum_{n=1}^{N} \log p(\bold{y}_n|\boldsymbol{\theta})
참고로 Posterior의 Mode(최빈값, 분포의 peak)를 찾는 MAP(Maximum A Posterior) 추정이라는 개념이 존재하는데, 조건에 따라 MLE 추정은 MAP 추정과 같아지는 경우가 존재한다.
NLL은 손실을 최소화하는 파라미터를 찾으려 하기 때문에 과적합(overfitting)이 발생할 여지가 있다. 이를 방지하기 위해 규제(regularization) 항을 추가하여 목적함수를 정의할 수도 있다.
일반적으로 최소화하려는 θ\boldsymbol{\theta} 자체를 (λ\lambda라고 불리는 비율만큼 가중하여) 식에 더하고 —제곱하여 더하면 L2, 절대값을 더하면 L1이라고 표현한다—, 전체 식에서 θ\boldsymbol{\theta}를 최소화하는 식으로 구성한다.

Marginal Likelihood

모델 M\mathcal{M}의 marginal likelihood 또는 evidence는 모델의 모든 파라미터를 적분한 것으로, 다음처럼 정의된다.
p(DM)=p(θM)p(Dθ,M)dθp(\mathcal{D}|\mathcal{M}) = \int p(\boldsymbol{\theta}|\mathcal{M})p(\mathcal{D}|\boldsymbol{\theta}, \mathcal{M}) d\boldsymbol{\theta}
이것은 모델 M\mathcal{M}이 주어졌을 때, 데이터 D\mathcal{D}의 확률을 나타내므로, 모델이 주어진 데이터를 얼마나 잘 설명하는지를 나타내는 의미를 갖게 된다.
고로 높은 marginal likelihood를 갖는 모델은 데이터를 더 잘 설명하는 모델이라는 뜻이 된다.
Marginal Likelihood는 leave-one-out cross-validation(LOCCV)과도 가깝게 연관된다.

참고