베이지안 머신러닝 (Bayesian Machine Learning)¶
난이도: 중급~고급
선수 지식: 정규화 이론, 과적합과 과소적합, 손실 함수 기초
관련 문서: 오컴의 면도날 | 편향-분산 트레이드오프 | 캘리브레이션 | 나이브 베이즈
개요¶
머신러닝에는 두 가지 근본적인 세계관이 있다.
| 관점 | 빈도주의 (Frequentist) | 베이지안 (Bayesian) |
|---|---|---|
| 파라미터 | 고정된 미지의 상수 | 확률 변수 (불확실성 반영) |
| 데이터 | 확률 변수 (반복 추출) | 관측된 고정값 |
| 추정 | MLE: \(\hat{\theta} = \arg\max P(D\|\theta)\) | 사후 분포: \(P(\theta\|D)\) |
| 불확실성 | 신뢰 구간 (빈도적 해석) | 신용 구간 (직접적 확률) |
| 정규화 | 별도의 정규화 항 추가 | 사전 분포가 자연스럽게 정규화 역할 |
베이지안 접근이 중요한 5가지 이유:
- 불확실성 정량화: 인식론적 불확실성 (Epistemic Uncertainty, 모델이 모르는 것)과 우연적 불확실성 (Aleatoric Uncertainty, 데이터 자체의 노이즈)을 구분할 수 있다
- 소량 데이터에 강함: 사전 지식을 사전 분포로 인코딩하여 적은 데이터에서도 합리적 추론이 가능하다
- 자연스러운 정규화: 사전 분포가 오컴의 면도날 역할을 하여 별도의 정규화 없이 과적합을 방지한다
- 순차 학습 (Sequential Learning): 오늘의 사후 분포가 내일의 사전 분포가 된다. 데이터가 점진적으로 들어오는 환경에 적합하다
- 모델 비교: 주변 우도 (Marginal Likelihood)를 통해 서로 다른 모델을 원칙적으로 비교할 수 있다
핵심 도전 과제는 사후 분포의 난해성 (Posterior Intractability)이다. 증거 (Evidence)를 계산하려면 파라미터 공간 전체에 대한 적분이 필요하다:
이 적분은 대부분의 실용적 모델에서 해석적으로 풀 수 없어, 근사 추론 (Approximate Inference) 기법이 필수적이다.
핵심 개념¶
1. 베이즈 정리 (Bayes' Theorem)¶
| 구성 요소 | 기호 | 의미 | 역할 |
|---|---|---|---|
| 사전 분포 (Prior) | \(P(\theta)\) | 데이터를 보기 전 파라미터에 대한 믿음 | 기존 지식 인코딩 |
| 우도 (Likelihood) | \(P(D\|\theta)\) | 주어진 파라미터에서 데이터가 관측될 확률 | 데이터가 전달하는 정보 |
| 사후 분포 (Posterior) | \(P(\theta\|D)\) | 데이터를 본 후 업데이트된 믿음 | 추론의 최종 결과 |
| 증거 (Evidence) | \(P(D)\) | 모든 파라미터에 대해 주변화한 데이터 확률 | 정규화 상수, 모델 비교에 사용 |
2. MAP vs 완전 베이지안 (Full Bayesian)¶
MAP 추정 (Maximum A Posteriori)은 사후 분포의 최빈값만 취한다:
MAP과 정규화의 관계: - 가우시안 사전 분포 \(P(\theta) \propto \exp(-\frac{\lambda}{2}\|\theta\|^2)\) → L2 정규화 (Ridge) - 라플라스 사전 분포 \(P(\theta) \propto \exp(-\lambda\|\theta\|_1)\) → L1 정규화 (Lasso)
완전 베이지안 추론은 사후 분포 전체를 사용하여 예측한다:
MAP은 점 추정이라 불확실성을 잃는 반면, 완전 베이지안은 예측의 불확실성을 자연스럽게 포함한다.
3. 사전 분포의 종류¶
| 유형 | 설명 | 예시 | 적용 시점 |
|---|---|---|---|
| 비정보적 (Non-informative) | 파라미터에 대해 최소한의 가정 | \(P(\theta) \propto 1\) (균일), Jeffreys prior | 사전 지식이 전혀 없을 때 |
| 약정보적 (Weakly Informative) | 합리적 범위만 제한 | \(\mathcal{N}(0, 10^2)\), \(\text{Half-Cauchy}(0, 5)\) | 대부분의 실무 상황에서 권장 |
| 강정보적 (Informative) | 구체적 사전 지식 반영 | 이전 실험 결과의 사후 분포 | 도메인 전문가의 지식이 확실할 때 |
파라미터 유형별 사전 분포 선택 가이드: - 위치 파라미터 (회귀 계수 등): 정규 분포 \(\mathcal{N}(0, \sigma^2)\) - 스케일 파라미터 (분산 등): Half-Cauchy 또는 Inverse-Gamma - 확률 파라미터: Beta 분포 - 비율/양수 파라미터: 로그 정규 분포
4. 우도 (Likelihood)와 사후 분포 (Posterior)¶
우도는 데이터 생성 모델 (Data Generating Model)을 정의한다. i.i.d. 가정 하에서:
사후 분포의 핵심 성질:
즉, 사후 분포 \(\propto\) 우도 \(\times\) 사전 분포이다.
Bernstein-von Mises 정리: 데이터가 충분히 많아지면, 사후 분포는 사전 분포의 선택에 관계없이 MLE를 중심으로 한 정규 분포에 수렴한다. 즉, 데이터가 사전 분포를 압도한다.
상세 내용¶
켤레 사전 분포 (Conjugate Priors)¶
사전 분포와 우도가 같은 분포 족에 속하면, 사후 분포도 같은 족이 되어 해석적 계산이 가능하다.
| 우도 | 켤레 사전 분포 | 사후 분포 | 활용 예시 |
|---|---|---|---|
| Binomial | \(\text{Beta}(\alpha, \beta)\) | \(\text{Beta}(\alpha + k, \beta + n - k)\) | 클릭률, 전환율 추정 |
| Poisson | \(\text{Gamma}(a, b)\) | \(\text{Gamma}(a + \sum x_i, b + n)\) | 이벤트 발생 빈도 |
| Normal (known \(\sigma\)) | \(\mathcal{N}(\mu_0, \sigma_0^2)\) | \(\mathcal{N}(\mu_n, \sigma_n^2)\) | 평균 추정 |
| Multinomial | \(\text{Dir}(\alpha_1, ..., \alpha_k)\) | \(\text{Dir}(\alpha_1 + c_1, ..., \alpha_k + c_k)\) | 토픽 모델링, NLP |
Beta-Binomial 예시: 새 광고의 클릭률을 추정한다고 하자.
- 사전 분포: 기존 광고들의 평균 클릭률 5%를 반영하여 \(\text{Beta}(5, 95)\) (평균 0.05)
- 데이터: 200회 노출 중 18회 클릭
- 사후 분포: \(\text{Beta}(5 + 18, 95 + 182) = \text{Beta}(23, 277)\)
- 사후 평균: \(\frac{23}{23 + 277} = 0.0767\) (약 7.7%)
- 순수 MLE: \(\frac{18}{200} = 0.09\) (9%)
사전 분포가 추정치를 기존 지식 쪽으로 수축 (Shrinkage)시킨다. 데이터가 적을수록 이 효과가 크고, 데이터가 많아지면 MLE에 수렴한다.
MCMC (Markov Chain Monte Carlo)¶
사후 분포에서 직접 샘플링하여 적분을 근사하는 방법이다.
Metropolis-Hastings¶
가장 기본적인 MCMC 알고리즘이다. 수락 비율 (Acceptance Ratio):
여기서 \(q(\theta^*|\theta_t)\)는 제안 분포 (Proposal Distribution)이다.
HMC (Hamiltonian Monte Carlo)¶
물리학의 해밀턴 역학에서 영감을 받아, 파라미터 공간을 "공"이 구르듯이 탐색한다. 기울기 정보를 활용하므로 고차원에서 Metropolis-Hastings보다 훨씬 효율적이다.
NUTS (No-U-Turn Sampler)¶
HMC의 핵심 하이퍼파라미터 (경로 길이)를 자동 조정한다. Stan과 PyMC의 기본 샘플러이다.
MCMC 실전 팁: - 워밍업 (Warmup/Burn-in): 전체 샘플의 처음 50%는 버린다 - 다중 체인 (Multiple Chains): 최소 4개 체인을 독립적으로 실행한다 - 수렴 진단: \(\hat{R} < 1.01\)이어야 수렴으로 판단한다 - 발산 경고 (Divergence Warnings): 하나라도 발생하면 모델을 재설정해야 한다 (무시 금지!) - 유효 표본 크기 (ESS): 관심 파라미터당 최소 400 이상 확보한다
변분 추론 (Variational Inference, VI)¶
사후 분포 추론을 최적화 문제로 변환한다. 단순한 분포 \(q(\theta)\)로 진짜 사후 분포 \(P(\theta|D)\)를 근사한다.
ELBO (Evidence Lower Bound) 최대화:
첫째 항은 데이터 적합도를, 둘째 항은 사전 분포로부터의 이탈을 페널티한다. VAE (Variational Autoencoder)도 이 프레임워크를 사용한다.
평균장 근사 (Mean-Field Approximation): \(q(\theta) = \prod_i q_i(\theta_i)\)로 파라미터 간 독립을 가정한다. 계산이 단순해지지만, 파라미터 간 상관관계를 포착하지 못한다.
| 기준 | MCMC | 변분 추론 (VI) |
|---|---|---|
| 정확도 | 이론적으로 정확 (충분한 샘플 시) | 근사적 (분포 가족 제한) |
| 속도 | 느림 | 빠름 |
| 확장성 | 수천 파라미터까지 | 수백만 파라미터 가능 |
| 수렴 진단 | \(\hat{R}\), ESS 등 잘 정립됨 | 수렴 보장 없음 |
| 적합한 상황 | 정확한 불확실성이 중요할 때 | 대규모 모델, 빠른 반복이 필요할 때 |
graph TD
A[사후 분포 추론이 필요한가?] --> B{해석적 해가 존재하는가?}
B -->|Yes| C[켤레 사전 분포 사용]
B -->|No| D{파라미터 수가 많은가?}
D -->|수천 이하| E{정확한 불확실성이 중요한가?}
D -->|수만 이상| F[변분 추론 VI]
E -->|Yes| G[MCMC / NUTS]
E -->|No| F 베이지안 신경망 (Bayesian Neural Networks, BNN)¶
일반 신경망은 가중치를 점 추정하므로, 예측에 대한 불확실성을 알 수 없다. 훈련 데이터에서 멀리 떨어진 입력에도 높은 확신의 (잘못된) 예측을 내놓는 과잉 확신 (Overconfidence) 문제가 발생한다.
BNN은 가중치 자체를 확률 분포로 모델링한다:
주요 근사 방법:
- Bayes by Backprop: 가중치의 변분 분포 \(q_\phi(w)\)를 학습. ELBO를 목적 함수로 사용한다
- MC Dropout: 가장 실용적인 방법. 추론 시에도 Dropout을 켜고 \(T\)번 전방 패스를 수행한다
- Deep Ensemble: \(M\)개의 독립적으로 학습한 모델의 예측을 결합한다. BNN은 아니지만, 실무에서 불확실성 추정에 가장 잘 작동하는 경우가 많다
불확실성 분해: - 인식론적 불확실성 (Epistemic): 모델이 충분히 학습하지 못해 발생. 데이터가 많아지면 감소. 모델 간 예측 분산으로 추정 - 우연적 불확실성 (Aleatoric): 데이터 자체의 노이즈. 더 많은 데이터로도 줄일 수 없음. 각 모델 내부의 예측 분산으로 추정
가우시안 프로세스 (Gaussian Process, GP)¶
GP는 함수에 대한 사전 분포이다:
여기서 \(m(x)\)는 평균 함수, \(k(x, x')\)는 커널 (공분산) 함수이다.
유한한 점 집합에서 GP는 다변량 정규 분포가 되므로, 예측 평균과 분산을 해석적으로 구할 수 있다:
여기서 \(K\)는 훈련 데이터 간 공분산 행렬, \(K_*\)는 훈련-테스트 간 공분산, \(K_{**}\)는 테스트 데이터의 사전 분산이다.
주요 커널 함수:
| 커널 | 수식 | 특성 |
|---|---|---|
| RBF (Squared Exponential) | \(k(x, x') = \sigma^2 \exp(-\frac{\|x-x'\|^2}{2l^2})\) | 매끄러운 함수, 가장 널리 사용 |
| Matern | \(k(x, x') = \frac{2^{1-\nu}}{\Gamma(\nu)}(\frac{\sqrt{2\nu}\|x-x'\|}{l})^\nu K_\nu(...)\) | 거칠기 조절 가능 (\(\nu\)=1/2, 3/2, 5/2) |
| Periodic | \(k(x, x') = \sigma^2 \exp(-\frac{2\sin^2(\pi\|x-x'\|/p)}{l^2})\) | 주기적 패턴 포착 |
한계: 공분산 행렬 역행렬 계산에 \(O(N^3)\)이 필요하여, 데이터가 수천 개를 넘으면 비실용적이다. 희소 GP (Sparse GP)는 \(M \ll N\)개의 유도점 (Inducing Points)을 사용하여 \(O(NM^2)\)으로 줄인다.
베이지안 최적화 (Bayesian Optimization)¶
평가 비용이 비싼 블랙박스 함수를 최소 횟수로 최적화하는 기법이다.
graph LR
A[대리 모델 구축<br/>Surrogate Model] --> B[획득 함수 최적화<br/>Acquisition Function]
B --> C[다음 탐색 지점 선정]
C --> D[목적 함수 평가]
D --> A 대리 모델로 주로 GP를 사용하며, 획득 함수 (Acquisition Function)로 탐색-활용 균형을 조절한다:
- EI (Expected Improvement): \(\text{EI}(x) = \mathbb{E}[\max(f(x) - f^+, 0)]\) — 현재 최적값 \(f^+\) 대비 기대 개선량
- UCB (Upper Confidence Bound): \(\text{UCB}(x) = \mu(x) + \kappa\,\sigma(x)\) — 평균 + 불확실성 가중치
- PI (Probability of Improvement): \(\text{PI}(x) = P(f(x) > f^+)\) — 개선 확률
적합한 상황: 하이퍼파라미터 최적화 (grid/random search보다 효율적), 실험 설계, A/B 테스트 최적화 등 평가 횟수가 제한된 경우.
베이지안 추론 워크플로¶
graph TD
P[사전 분포 설정<br/>Prior] --> U[데이터 관측<br/>Likelihood]
U --> POST[사후 분포 계산<br/>Posterior]
POST --> PRED[예측 분포<br/>Predictive Distribution]
POST --> MC[모델 비교<br/>Marginal Likelihood]
POST -->|"새 데이터 도착 시<br/>사후→사전으로"| P
style P fill:#e1f5fe
style POST fill:#fff3e0
style PRED fill:#e8f5e9 베이지안 ML 방법론 분류¶
graph TD
ROOT[베이지안 ML] --> EXACT[정확한 추론<br/>Exact Inference]
ROOT --> APPROX[근사 추론<br/>Approximate Inference]
EXACT --> CONJ[켤레 사전 분포]
EXACT --> GP_E[가우시안 프로세스]
APPROX --> SAMP[샘플링 기반]
APPROX --> OPT[최적화 기반]
SAMP --> MH[Metropolis-Hastings]
SAMP --> HMC_N[HMC / NUTS]
OPT --> VI_N[변분 추론 VI]
OPT --> MAP_N[MAP 추정]
OPT --> LA[라플라스 근사] 언제 사용하는가 / 언제 피하는가¶
베이지안이 빛나는 경우¶
| 상황 | 이유 |
|---|---|
| 소량 데이터 | 사전 분포가 정규화 역할을 하여 과적합 방지 |
| 불확실성이 중요한 의사결정 | 의료 진단, 자율주행 등 "얼마나 확신하는가"가 핵심 |
| 능동 학습 (Active Learning) | 불확실성이 높은 곳을 선택적으로 탐색 |
| 하이퍼파라미터 최적화 | 베이지안 최적화로 효율적 탐색 |
| 순차적 의사결정 | 온라인 학습, 밴딧 문제에서 사전→사후 업데이트 |
빈도주의 / 점 추정이 나은 경우¶
| 상황 | 이유 |
|---|---|
| 대규모 데이터 | Bernstein-von Mises에 의해 사전 분포 영향이 미미하고, 계산 비용만 증가 |
| 빠른 프로토타이핑 | MCMC/VI 세팅보다 SGD가 훨씬 간단 |
| 매우 고차원 파라미터 | 수억 파라미터의 사후 분포는 현실적으로 추정 불가 |
| 해석 가능성이 덜 중요할 때 | 점 추정 모델이 더 직관적으로 설명 가능한 경우 |
흔한 오해와 함정¶
1. "사전 분포가 결과를 결정한다"¶
Bernstein-von Mises 정리에 의해, 데이터가 충분하면 사전 분포의 영향은 사라진다. 단, 소량 데이터에서는 사전 분포의 선택이 실제로 결과에 큰 영향을 미치므로, 민감도 분석 (Sensitivity Analysis)을 반드시 수행해야 한다.
2. "베이지안 = 느리다"¶
켤레 사전 분포를 사용하면 해석적으로 즉시 계산 가능하다. 변분 추론은 SGD와 비슷한 속도로 동작한다. MCMC만이 본질적으로 느린 것이며, 모든 베이지안 방법이 느린 것은 아니다.
3. "불확실성 추정 = 캘리브레이션된 확률"¶
베이지안 불확실성이라도 자동으로 잘 보정 (Calibrated)되지는 않는다. 모델이 잘못 설정되면 (Model Misspecification) 불확실성도 부정확해진다. 반드시 캘리브레이션을 별도로 검증해야 한다.
4. "비정보적 사전 분포는 항상 안전하다"¶
균일 사전 분포는 파라미터화 (Parameterization)에 따라 정보적일 수 있다. 예를 들어, \(\theta\)에 균일한 사전 분포가 \(\log\theta\)에서는 균일하지 않다. Jeffreys prior도 고차원에서는 문제를 일으킬 수 있다. 약정보적 사전 분포가 대부분의 상황에서 더 안전한 선택이다.
5. "MCMC가 수렴했으면 결과를 믿어도 된다"¶
\(\hat{R} < 1.01\)이고 트레이스 플롯이 깨끗해 보여도, 다봉 (Multimodal) 사후 분포에서 일부 모드만 탐색했을 수 있다. 다양한 초기값으로 여러 체인을 실행하고, 발산 경고가 없는지 반드시 확인해야 한다.
6. "베이지안 vs 빈도주의는 양자택일이다"¶
경험적 베이즈 (Empirical Bayes)는 빈도주의 방법으로 사전 분포의 하이퍼파라미터를 추정하여 두 패러다임을 연결한다. MAP 추정은 정규화된 MLE와 동일하다. 실무에서는 순수한 한쪽보다 혼합 접근이 흔하다.
다른 주제와의 연결¶
| 주제 | 연결 |
|---|---|
| PAC 학습 | PAC-Bayes는 베이지안 사전 분포를 사용한 일반화 바운드를 제공한다 |
| 정규화 이론 | L1/L2 정규화는 각각 라플라스/가우시안 사전 분포의 MAP 추정에 해당한다 |
| 오컴의 면도날 | 베이지안 모델 비교는 자동으로 복잡도 페널티를 부여한다 (Bayesian Occam's Razor) |
| 편향-분산 트레이드오프 | 사전 분포는 편향을 높이고 분산을 줄이는 역할을 한다 |
| 캘리브레이션 | 베이지안 불확실성도 별도 캘리브레이션 검증이 필요하다 |
| 하이퍼파라미터 최적화 | 베이지안 최적화는 하이퍼파라미터 튜닝의 핵심 기법이다 |
| 나이브 베이즈 | 베이즈 정리의 가장 단순한 분류 적용 사례 |
| 앙상블 방법 | Deep Ensemble은 베이지안 근사로 해석할 수 있다 |
| 신경망 기초 | BNN은 표준 신경망에 베이지안 추론을 적용한 확장이다 |
| 손실 함수 | 음의 로그 우도 손실은 MLE에 해당하며, 정규화 항 추가는 MAP에 해당한다 |
참고 문헌¶
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning, Chapter 3-4
- Murphy, K. P. (2022). Probabilistic Machine Learning: An Introduction
- McElreath, R. (2020). Statistical Rethinking — 실무 중심 베이지안 입문서로 추천
- Gelman, A. et al. (2013). Bayesian Data Analysis (BDA3)