지금까지 보았던 베이지안 접근법은 다양한 장점들이 있지만 계산적으로 매우 비용이 비쌉니다. 모델 $p(\mathcal{D} \mid \theta)$와 사전 분포 $p(\theta)$가 주어지면 베이즈 정리로 다음과 같이 파라미터 사후 분포를 얻을 수 있습니다.
$$p(\theta \mid \mathcal{D}) = \frac{p(\mathcal{D} \mid \theta) p(\theta)}{\int p(\mathcal{D} \mid \theta) p(\theta) \; d\theta}$$
그러나 위와 같은 식이 닫힌 형태로 식이 깔끔하게 떨어지는 것은 거의 불가능합니다. 이는 공액 사전-우도의 형태 그리고 모든 잠재변수가 유한 집합과 같이 특별히 단순한 사례를 제외하고는 정확한 계산이 불가능하거나 비용이 매우 큽니다. 그래서 현실적으로는 정확도, 단순성, 속도 사이의 절충을 이루어야합니다. 이번 포스팅에서는 주요 아이디어만 맛보기로 알아보고 향후 더 자세한 내용을 설명하도록 하겠습니다.
일단, 예시 문제로 지금까지 많이 다루었던 베타-베르누이 모델을 활용하겠습니다. 저희가 근사할 목표는 다음과 같습니다.
$$p(\theta \mid \mathcal{D}) \propto \left[ \prod_{n = 1}^{N} \text{Bin}(y_{n} \mid \theta) \right] \text{Beta}(\theta \mid 1, 1)$$
여기서 $\mathcal{D}$는 동전 던지기 결과로 앞면이 10번 그리고 뒷면이 1번 나와 총 $N = 11$개의 데이터가 있다고 하겠습니다. 그리고 사전분포로는 균등분포인 $\text{Beta}(1, 1)$을 사용하였습니다. 최종적으로는 동전이 앞면이 나올 확률인 $\theta$의 사후 분포를 구하는 것입니다.

그림 4.22에서 볼 수 있다싶이 이전에 보았던 방식으로 정확한 사후 분포를 얻을 수도 있습니다. 여기서는 근사 결과를 정확한 해와 비교할 수 있다는 점이 중요합니다. 또한, 대상 분포가 1차원이라 시각화가 쉽지만 표본 불균형(10 대 1)으로 인해 분포가 심하게 기울어져 있다는 점을 기억하세요.
1. 그리드 근사(Grid Approximation)
가장 직관적인 사후 분포 근사방법은 가능한 파라미터 공간을 유한한 격자로 쪼개어 모든 점을 완전 열거(Brute-Force Enumerate)하는 것 입니다. 즉, 후보 파라미터 값들을 $\theta_{1}, \theta_{2}, \dots, \theta_{K}$로 정한 뒤 다음 처럼 사후 분포를 근사합니다.
$$p(\theta = \theta_{k} \mid \mathcal{D}) \approx \frac{p(\mathcal{D} \mid \theta_{k}) p(\theta_{k})}{p(\mathcal{D})} = \frac{p(\mathcal{D} \mid \theta_{k}) p(\theta_{k})}{\sum_{k^{'} = 1}^{K} p(\mathcal{D} \mid \theta_{k^{'}})}$$
그림 4.22 (a)는 1차원 베타-베르누이 예제에 이 방법을 적용한 결과입니다. 이 방법은 격자 점마다 우도를 계산하여 심한 비대칭(skewed) 한 사후 분포도 정확히 포착할 수 있습니다. 하지만 고차원으로 늘어날 수록 필요한 격자의 수가 지수적으로 폭증하게 됩니다. 예를 들어, 각 차원에 100개만 두어도 4차원이라면 $100^{4} = 10^{8}$개의 점이 필요합니다. 이는 계산·메모리 부담이 급격히 커지므로, 실제 고차원 문제엔 부적합합니다. 따라서 그리드 근사는 저차원 + 거칠게 분포 형태를 보고 싶을 때 유용하며, 고차원 모델에는 다른 근사 기법(변분 추론, MCMC 등)을 사용해야 합니다.
2. 2차 근사(Quadratic approximation) 또는 라플라스 근사(Laplace approximation)
기본적인 아이디어는 복잡한 사후 분포를 상대적으로 단순한 가우시안으로 근사하는 것 입니다. 라플라스 근사는 사후 분포를 가우시안 분포 한 덩어리로 근사하는 간단하고 널리 쓰이는 기법입니다. 핵심 방법은 사후 모드 주위에서 2차 테일러 급수를 전개하고 이를 바탕으로 가우시안으로 근사하는 것 입니다.
유도 과정을 보도록 하겠습니다. 먼저 사후 분포를 다음과 같이 써봅니다.
$$p(\theta \mid \mathcal{D}) = \frac{1}{Z} e^{-\varepsilon(\theta)}$$
여기서 $\varepsilon(\theta) = -\log p(\theta, \mathcal{D})$로 에너지 함수(energy function)이라고 불립니다. 그리고 $Z = p(\mathcal{D})$는 정규화 상수이죠. 다음으로 에너지 함수 $\varepsilon(\theta)$를 사후 모드 $\hat{\theta}$ 근방에서 테일러 전개를 2차까지 수행해보겠습니다.
$$\varepsilon (\theta) \approx \varepsilon (\hat{\theta}) + (\theta - \hat{\theta})^{T}g + \frac{1}{2} (\theta - \hat{\theta})^{T}\mathbf{H}(\theta - \hat{\theta})$$
여기서 $g$는 사후 모드에서의 그래디언트를 의미하고 $\mathbf{H}$는 헤시안 행렬(Hessian Matrix)입니다. 이때, $\hat{\theta}$는 사후 모드이기 때문에 그래디언트 항은 0이 됩니다. 따라서, 다음과 같이 기존의 사후 분포를 풀어서 쓸 수 있죠.
$$\begin{align} &p(\hat{\theta}, \mathcal{D}) = e^{-\varepsilon(\hat{\theta})} \text{exp} \left[ -\frac{1}{2} (\theta - \hat{\theta})^{T}\mathbf{H}(\theta - \hat{\theta}) \right] \Rightarrow p(\theta \mid \mathcal{D}) = \frac{1}{Z} \hat{p}(\theta, \mathcal{D}) = \mathcal{N}(\theta \mid \hat{\theta}, \mathbf{H}^{-1}) \end{align}$$
여기서 $Z = e^{-\varepsilon(\hat{\theta})} (2\pi)^{\frac{D}{2}} |\mathbf{H}|^{-\frac{1}{2}}$로 가우시안인 경우에는 닫힌 형태로 나오게 됩니다. 하지만, 그림 4.22 (b)에서 보듯히 분포가 한쪽으로 크게 기울어진 상황에서는 대칭형태를 가정하는 가우시안 근사는 좋은 결과를 보여주지 않습니다. 또한, 매개변수 범위에 제약이 발생하여 실제로는 $\theta \in [0, 1]$ 이지만 가우시안 가정으로 인해 $\theta \in \mathbb{R}$이 되죠. 이러한 문제를 해결하는 방법으로 $\alpha = \text{logit} (\theta) = \log \frac{\theta}{1 - \theta}$로 변수 변환을 시켜주는 방법이 있습니다. 그 다음에 $\alpha$에 대해 라플라스 근사를 적용하면 제약을 피할 수 있습니다.
3. 변분 근사(Variational Approximation)
라플라스 근사까지만 해도 나쁘지는 않습니다. 하지만, 향후에 VAE를 넘어 확산 생성 모델까지 더 깊게 이해하기 위해서는 새로운 근사법을 이해해야합니다. 바로 변분 근사법입니다. 특히, 라플라스 근사의 경우 간단하지만 “한 덩어리” 가우시안이 모든 상황을 잘 표현하지는 못합니다. 변분 추론(VI) 은 보다 유연한 분포족을 써서, 더 정확한 사후 근사를 얻는 최적화 기반 방법입니다.
기본적인 아이디어는 복잡한 표적 분포 $p(\theta \mid \mathcal{D})$가 있다고 가정하겠습니다. 그리고 취급하기 쉬운(tractable) 근사 분포 $q(\theta) \in \mathcal{Q}$가 있다면 복잡한 표적 분포와 근사 분포 사이의 차이 $D(q, p)$를 최소화시킨다면 $p(\theta \mid \mathcal{D})$ 대신 $q(\theta)$를 쓸 수 있을 것 입니다. 즉, 다음과 같이 최적화 문제를 푸는 것과 동일하죠.
$$q^{*} = \text{argmin}_{q \in \mathcal{Q}} D(q, p(\theta \mid \mathcal{D}))$$
여기서 $\mathcal{Q}$ 는 다변량 가우시안 등이 포함된 선택 가능한 확률 분포족입니다. 그리고 $D$는 일반적으로 KL 발산(Kullback–Leibler divergence)을 많이 사용하죠. KL 발산을 사용하면 $\log p(\mathcal{D}) \ge \text{ELBO}(q)$라는 증거하한(Evidence Lower BOund; ELBO)를 유도할 수 있습니다. 이 유도 과정은 향후에 더 자세하게 보도록 하죠. 이를 통해, 목표를 ELBO를 최대화하게 되면 KL 발산을 최소화하는 것과 동치가 되고 결과적으로 $q(\theta)$가 $p(\theta \mid \mathcal{D})$에 근사시키는 결과를 얻는 다는 것을 알 수 있습니다.
4. 마르코프 연쇄 몬테카를로 근사(Markov Chain Monte Carlo (MCMC) approximation)
변분 근사는 정말 훌륭하고 직관적인 근사 방법론 중 하나입니다. 하지만, 근사 분포 $q \in \mathcal{Q}$가 정해져있어 분포에 대한 편향이 생길 수 있죠. 더 유연한 방법은 "표본 집합" 자체를 분포 표현으로 쓰는 것 입니다.
$$q(\theta) \approx \frac{1}{S} \sum_{s = 1}^{S} \delta(\theta - \theta_{s})$$
여기서 $\{ \theta_{s} \}_{s}^{S}$는 사후 샘플로 $\theta_{s} \sim p(\theta \mid \mathcal{D})$입니다. 이를 몬테카를로 근사라고 부릅니다. 나중에 사후 분포를 직접 표준화하려면 정규화 상수 $p(\mathcal{D}) = \int p(\theta, \mathcal{D}) \; d\theta$를 계산해야하지만 보통은 불가능합니다. MCMC는 정규화 상수를 모르더라도 사후에서 샘플링을 수행하여 이 문제를 해결합니다.
기본적인 단계를 보도록 하겠습니다. 일단 마르코드 연쇄를 설계해야합니다. 즉, 현재 상태 $\theta^{(t)}$가 주어졌을 때 제안 분포 및 전이 확률로 다음 상태 $\theta^{(t + 1)}$을 생성합니다. 다음으로 충분한 이행을 거친 뒤 체인의 샘플은 $p(\theta \mid \mathcal{D})$에서 나온 것으로 간주합니다. 마지막으로 $\{ \theta_{s} \}$로 기댓값, 분산, 예측 분호 계산에 활용합니다.
이때, MCMC에 그래디언트 정보 $\nabla_{\theta} \log p(\theta, \mathcal{D})$를 추가하면 파라미터 공간을 관성(해밀토니언) 방식으로 크게 점프하면서 탐색 속도를 높일 수 있습니다. 이를 Hamiltonian Monte Carlo(HMC)라고 합니다. 향후에 이에 대한 더 자세한 내용을 다루어보겠습니다.
'인공지능 > Probabilistic Machine Learning (intro)' 카테고리의 다른 글
| [PML intro] Ch4 Statistics (Sec4.7 Frequentist Statistics - 2) (0) | 2025.07.25 |
|---|---|
| [PML intro] Ch4 Statistics (Sec4.7 Frequentist Statistics - 1) (1) | 2025.07.25 |
| [PML intro] Ch4 Statistics (Sec4.6 Bayesian Statistics - 7) (0) | 2025.07.23 |
| [PML intro] Ch4 Statistics (Sec4.6 Bayesian Statistics - 6) (0) | 2025.07.22 |
| [PML intro] Ch4 Statistics (Sec4.6 Bayesian Statistics - 5) (0) | 2025.07.22 |