//
Search
📈

Laplace approximation

본 문서에선 사후분포를 근사하기 위한 가장 대표적인 방법인 라플라스 근사에 대해 알아본다.
복잡한 확률분포를 가우시안 분포로 근사하는 방법
고차원 분포를 다루기 쉬운형태로 근사하며 사후분포를 근사하기 위한 대표적인 방법 중 하나
unimodal function과 같은 well-behaved function에서 잘 동작함

라플라스 근사(Laplace approximation)

아래와 같이 well-behaved function이고 모드가 x0x_0인 함수 g(x)g(x)에 대해 abg(x)dx\int_a^b g(x)dx를 구해보자.
h(x)=log(g(x))h(x)=\log(g(x))라 하면 abg(x)dx=abexp(h(x))dx\int_a^b g(x) dx=\int_a^b \exp({h(x)})dx=이다. 이를 테일러급수(Taylor series)를 통해 2차식까지 근사하면 아래와 같다.
abexp(h(x0)+h(x0)(xx0)12h(x0)(xx0)2)dx\int_a^b \exp\bigg({h(x_0)+h^{\prime}(x_0)(x-x_0)-\frac{1}{2}h^{\prime\prime}(x_0)(x-x_0)^2}\bigg)dx
이 때 x0x_0는 극값이므로 h(x0)=0h^{\prime}(x_0)=0을 만족한다. 이를 통해 다시 전개하면 아래와 같다.
=abexp(h(x0)12h(x0)(xx0)2)dx=\int_a^b \exp\bigg({h(x_0)-\frac{1}{2}h^{\prime\prime}(x_0)(x-x_0)^2}\bigg)dx
여기서 h(x0)h(x_0)는 상수이므로 적분식 밖으로 뺄 수 있고 이를 이용하면 아래와 같이 전개할 수 있다.
=exp(h(x0))abexp(12h(x0)(xx0)2)=exp(h(x0))abexp(12(xx0)2{h(x0)}1)dx=exp(h(x0))[{h(x0)}12π1][1{h(x0)}12πabexp((xx0)22({h(x0)}1)2)dx]\begin{align*} &=\exp(h(x_0))\int_a^b\exp\bigg(-\frac{1}{2}h^{\prime\prime}(x_0)(x-x_0)^2\bigg) \\ &=\exp({h(x_0)})\int_a^b \exp\bigg(-\frac{1}{2}\cdot\frac{(x-x_0)^2}{\{-h^{\prime\prime}(x_0)\}^{-1}}\bigg)dx \\ &=\exp({h(x_0)})\bigg[\frac{\sqrt{\{-h^{\prime\prime}(x_0)\}^{-1}}\sqrt{2\pi}}{1}\bigg] \bigg[\frac{1}{\sqrt{\{-h^{\prime\prime}(x_0)\}^{-1}}\sqrt{2\pi}}\int_a^b \exp\bigg(-\frac{(x-x_0)^2}{2(\sqrt{\{-h^{\prime\prime}(x_0)\}^{-1}})^2}\bigg)dx\bigg] \end{align*}
여기서 [1{h(x0)}12πabexp((xx0)22({h(x0)}1)2)dx]\bigg[\frac{1}{\sqrt{\{-h^{\prime\prime}(x_0)\}^{-1}}\sqrt{2\pi}}\int_a^b \exp\bigg(-\frac{(x-x_0)^2}{2(\sqrt{\{-h^{\prime\prime}(x_0)\}^{-1}})^2}\bigg)dx\bigg]은 평균이 x0x_0이고 분산이 {h(x0)}\{-h^{\prime\prime}(x_0)\}인 정규분포와 같다. 이런 분포를 ϕ\phi라 하고 exp(h(x0))=g(x0)\exp{(h(x_0))}=g(x_0)임을 이용하면 최종적으로 식을 아래와 같이 정리할 수 있다.
abg(x)dxg(x0)2πh(x0)abϕ(xx0,{h(x0)}1)dx\int_a^b g(x)dx\approx g(x_0)\sqrt{\frac{2\pi}{-h^{\prime\prime}(x_0)}}\int_a^b\phi{(x|x_0,\{-h^{\prime\prime}(x_0)\}^{-1})}dx
만약 a=a=-\infty이고 b=b=\infty라면 ϕ\phi의 적분값은 1이 되므로 아래와 같이 계산된다.
g(x)dxg(x0)2πh(x0)\int_{-\infty}^{\infty}g(x)dx\approx g(x_0)\sqrt{\frac{2\pi}{-h^{\prime\prime}(x_0)}}
즉, 라플라스 근사는 “함수의 적분 문제”를 “함수 최대값 찾기 문제”로 바꿔준다. 라플라스 근사를 계산하기 위해 모드의 위치를 알아야 하고 이는 곧 최적화 문제(optimization problem)에 해당한다. 일반적으로 적분을 계산하는 것 보다 최적화 문제를 푸는게 빠르므로 라플라스 근사를 이용하면 더 효율적으로 문제를 해결할 수 있게된다.
다음은 위 개념을 이용해서 사후분포의 평균(Posterior Means)을 계산해본다.

사후분포 평균(Posterior Means) 계산

yy를 관측데이터라 하고 yy는 파라미터 θ\theta에 대해 f(yθ)f(y|\theta)인 분포를 가지며 θ\theta의 사전분포가 π(θ)\pi(\theta)라 하자. 이 때 사후분포를 p(θy)p(\theta|y)라하면 평균은 아래와 같다.
Ep[θ]=θp(θy)dθ.\mathbb{E}_p[\theta]=\int\theta p(\theta | y) d\theta.
베이즈 정리에 의해 p(θy)=f(yθ)π(θ)f(yθ)π(θ)dθp(\theta|y)=\frac{f(y|\theta)\pi(\theta)}{\int f(y|\theta) \pi (\theta) d\theta}이다. 이를 위 식에 대입하면 아래와 같다.
θp(θy)dθ=θf(yθ)π(θ)f(yθ)π(θ)dθdθ\int \theta p(\theta|y)d\theta=\int \theta \frac{f(y|\theta)\pi(\theta)}{\int f(y|\theta) \pi (\theta) d\theta}d\theta
여기서 1f(yθ)π(θ)dθ\frac{1}{\int f(y|\theta) \pi (\theta) d\theta} 는 상수이므로 적분바깥으로 뺄 수 있고 이를 이용해서 정리하면 아래와 같다.
θp(θy)dθ=θf(yθ)π(θ)f(yθ)π(θ)dθdθ=θf(yθ)π(θ)dθf(yθ)π(θ)dθ=θexp(logf(yθ)π(θ))dθexp(logf(yθ)π(θ))dθ\begin{align*} \int \theta p(\theta|y)d\theta&=\int \theta \frac{f(y|\theta)\pi(\theta)}{\int f(y|\theta) \pi (\theta) d\theta}d\theta \\ &=\frac{\int\theta f(y|\theta)\pi(\theta)d\theta}{\int f(y|\theta) \pi (\theta) d\theta} =\frac{\int \theta\exp(\log f(y|\theta)\pi(\theta))d\theta}{\int \exp(\log f(y|\theta) \pi (\theta)) d\theta} \end{align*}
h(θ)=logf(yθ)π(θ)h(\theta)=\log f(y|\theta)\pi(\theta)라 하자. 위에서 설명한 라플라스 근사와 같은 과정을 진행한다. h(θ)h(\theta)는 단순히 사후분포의 밀도에 비례하는 단조함수이므로 h(θ)h(\theta)는 사후분포의 모드값에서 최대값을 가짐을 알 수 있다.
θ^\hat{\theta}를 사후분포 p(θy)p(\theta|y)의 모드값이라 하면 아래와 같이 근사할 수 있다.
θp(θy)dxθexp(h(θ^)+12h(θ^)(θθ^)2)dθexp(h(θ^)+12h(θ^)(θθ^)2)dθ=θexp(12h(θ^)(θθ^)2)dθexp(12h(θ^)(θθ^)2)dθ=θ2πh(θ^)ϕ(θ    θ^,h(θ^)1)dθ2πh(θ^)ϕ(θ    θ^,h(θ^)1)dθ=θϕ(θ    θ^,h(θ^)1)dθϕ(θ    θ^,h(θ^)1)dθ\begin{align*} \int \theta p(\theta |y)dx &\approx \frac{\int \theta \exp \bigg(h(\hat{\theta})+\frac{1}{2}h^{\prime\prime}(\hat{\theta})(\theta-\hat{\theta})^2\bigg)d\theta}{\int \exp \bigg(h(\hat{\theta})+\frac{1}{2}h^{\prime\prime}(\hat{\theta})(\theta-\hat{\theta})^2\bigg)d\theta} \\ &= \frac{\int \theta \exp \bigg(\frac{1}{2}h^{\prime\prime}(\hat{\theta})(\theta-\hat{\theta})^2\bigg)d\theta}{\int \exp \bigg(\frac{1}{2}h^{\prime\prime}(\hat{\theta})(\theta-\hat{\theta})^2\bigg)d\theta} \\ &=\frac{\int \theta \sqrt{\frac{2\pi}{-h^{\prime\prime}(\hat{\theta})}}\phi\bigg(\theta \;|\; \hat{\theta},-h^{\prime\prime}(\hat{\theta})^{-1} \bigg) d\theta}{\int \sqrt{\frac{2\pi}{-h^{\prime\prime}(\hat{\theta})}}\phi\bigg(\theta \;|\; \hat{\theta},-h^{\prime\prime}(\hat{\theta})^{-1} \bigg) d\theta} \\ &=\frac{\int \theta \phi\bigg(\theta \;|\; \hat{\theta},-h^{\prime\prime}(\hat{\theta})^{-1} \bigg)d\theta}{\int\phi\bigg(\theta \;|\; \hat{\theta},-h^{\prime\prime}(\hat{\theta})^{-1} \bigg)d\theta} \end{align*}
분모인 ϕ(θ    θ^,h(θ^)1)dθ\int\phi\bigg(\theta \;|\; \hat{\theta},-h^{\prime\prime}(\hat{\theta})^{-1} \bigg)d\theta는 정규분포를 전체구간에서 적분한 값이므로 1이 되고 θϕ(θ    θ^,h(θ^)1)dθ\int\theta\phi\bigg(\theta \;|\; \hat{\theta},-h^{\prime\prime}(\hat{\theta})^{-1} \bigg)d\thetaθ\theta의 기댓값이므로 θ^\hat{\theta}가 된다. 따라서 최종적으로 정리하면 아래와 같다.
θp(θy)dxθ^\int \theta p(\theta | y)dx\approx \hat{\theta}
따라서 사후분포 평균의 라플라스 근사값은 사후분포의 모드값과 같다.
라플라스 근사의 경우 unimodal 함수나 대칭함수에 잘 동작하며 특히 분포가 평균 근처에 잘 모여있을 수록 성능이 좋아진다. 이를 토대로 적절한 함수에 적용하면 좋은 결과를 얻을 수 있다.

참고링크