콘텐츠로 바로가기

Bayesian Methods & Probabilistic Programming

사전 지식과 관측 데이터를 결합하여 확률을 갱신하는 베이즈 추론의 역학과, 복잡한 확률 모델을 코드로 기술하고 시뮬레이션하는 확률적 프로그래밍의 원리를 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

베이지안 방법론 및 확률형 프로그래밍(Bayesian Methods & Probabilistic Programming, BMP)은 정적인 확률 계산을 넘어 학습과 경험을 통해 지능적으로 데이터를 해석하는 메커니즘을 다룹니다.

이론의 핵심인 **베이즈 정리(Bayes' Theorem)**는 새로운 정보가 들어올 때 기존의 믿음(Prior)을 어떻게 합리적으로 수정(Posterior)해야 하는지에 대한 물리적 규칙을 제공합니다. 또한, **확률적 프로그래밍(Probabilistic Programming)**은 이러한 복잡한 확률 관계를 선언적 코드로 표현하고, MCMC(Markov Chain Monte Carlo)와 같은 샘플링 기법을 통해 해를 구하는 현대적 접근법입니다. 이를 통해 불확실성이 큰 환경에서 로봇의 위치를 추적하거나(Kalman Filter), 복잡한 마케팅 효과를 예측하는 등 고도의 추론 시스템을 구축하는 능력을 갖춥니다.

2. Scope & Boundaries

In-Scope

  • Bayesian Inference: 사전 확률(Prior), 가능도(Likelihood), 사후 확률(Posterior)의 갱신 역학
  • Conjugate Priors: 수학적 계산 편의를 위한 공액 사전 분포의 물리적 선택
  • Probabilistic Models: 생성 모델(Generative Models)과 계층적 베이지안 모델링
  • Sampling Physics: MCMC, 깁스 샘플링(Gibbs Sampling)을 통한 확률 분포의 수치적 근사

Out-of-Scope

  • 빈도주의 통계학(Frequentist Statistics)의 깊은 이론 (04-02 SIE 영역으로 위임)
  • 심층 강화 학습의 구체적인 신경망 아키텍처 (11-02 DLN 영역으로 위임)

Boundaries

  • BMP vs. Classic Programming: 클래식 프로그래밍이 '명형어의 결정론적 실행'이라면, BMP는 '결과로부터 원인을 추론하는 역방향 확률 연산'에 집중합니다.

3. Counterexample

  • 단순히 "조건부 확률 공식을 쓰는 것"은 BMP 학습이 아닙니다. 왜 특정 데이터가 적을 때 **사전 확률(Prior)**의 설정이 결과에 물리적으로 지배적인 영향을 주는지 편향성(Bias)의 관점에서 설명할 수 있어야 하고, MCMC 샘플링이 특정 상태에서 왜 '수렴(Convergence)'하지 못하고 겉도는지 마르코프 체인의 물리적 성질을 근거로 지적하지 못한다면 BMP의 본질을 이해하지 못한 것입니다.

4. Prerequisites

  • Probability Spaces & Random Variables (Basic): 조건부 확률과 독립성 이해가 필수입니다. (04-01 PRV)
  • Statistical Inference & Estimation (Recommended): 가능도(Likelihood)와 모수 추정 개념이 권장됩니다. (04-02 SIE)

5. Learning Map

  1. Belief Update: 베이즈 정리를 통해 새로운 데이터가 지식의 지도를 어떻게 물리적으로 바꾸는지 익힙니다.
  2. Prior Architecture: 도메인 지식을 사전 분포라는 수리적 형태로 고정하는 법을 배웁니다.
  3. Programmatic Inference: 확률 모델을 코드로 선언하고 샘플링 엔진에게 추론을 맡깁니다.
  4. Quantifying Uncertainty: 단순한 예측값이 아닌, 그 예측이 틀릴 확률까지 포함된 '확률적 답변'을 도출합니다.

6. Learning Topics

Basic

Core: 베이즈 정리와 사후 확률 (Bayesian Foundations)

  • Why to Learn: 정보가 불완전한 상황에서 데이터를 증거로 삼아 믿음을 갱신하는 과학적 방법론을 갖추기 위합입니다.
  • What to Learn:
    • 베이즈 공식: P(HD)=P(DH)P(H)P(D)P(H|D) = \frac{P(D|H)P(H)}{P(D)}의 물리적 성분 분석
    • 사전 확률(Prior)과 사후 확률(Posterior)의 시간순 물리 변화
    • 증거(Evidence) 항이 갖는 정규화(Normalization)의 의미
  • How to Learn:
    • 질병 진단 키트의 정확도(민감도/특이도)를 보고, 양성 반응 시 실제 유병 확률을 계산하는 고전적 실습
    • 데이터(DD)가 하나씩 추가될 때마다 사후 확률 분포가 어떻게 뾰족해지는지 시각화 분석
  • Implement: 실시간 데이터 스트림을 받아 특정 사건의 발생 확률을 반복적으로 갱신하는 베이지안 업데이트 엔진

Core: 확률적 프로그래밍의 기초 (PPL Foundations)

  • Why to Learn: 복잡한 수식을 손으로 푸는 대신, 코드로 모델을 정의하여 기계가 추론하게 하기 위해서입니다.
  • What to Learn:
    • 확률형 프로그래밍 언어(PPL)의 철학: 결정론적 변수 vs 확률적 변수(Stochastic)
    • 관측(Observe)과 추론(Infer) 명령의 수리적 역학
    • Pyro, Stan, PyMC 등 주요 라이브러리의 개념 모델링
  • How to Learn:
    • "동전의 무게가 앞면으로 치우쳐 있다"는 가설을 PPL 코드로 선언하고 관측 데이터를 주입해보는 실습
    • 프로그램의 제어 흐름(if, for) 내부에 확률 변수가 포함될 때 발생하는 추론의 복잡도 분석
  • Implement: 특정 도메인(예: 기상 예측)의 인과 관계를 PPL로 기술한 간단한 추론 모델

Practical

Core: MCMC와 샘플링 기법 (Sampling Mechanics)

  • Why to Learn: 해석적으로 풀 수 없는 거대한 확률 적분 문제를 수치적 샘플링으로 해결하기 위함입니다.
  • What to Learn:
    • 마르코프 체인(Markov Chain)의 물리적 전이와 정상 분포(Stationary Distribution)
    • 메트로폴리스-헤이스팅스(Metropolis-Hastings) 알고리즘의 제안-수락 물리
    • 깁스 샘플링: 다변수 분포를 조건부 분포들의 시퀀스로 쪼개는 기술
  • How to Learn:
    • 복잡한 함수의 적분값을 무작위 점 던지기(Monte Carlo)를 통해 근사하는 연습
    • MCMC의 초기 '번인(Burn-in)' 구간이 왜 필요한지 샘플링 궤적 시각화를 통해 이해
  • Implement: 임의의 확률 분포 함수를 입력받아 MCMC를 통해 해당 분포를 따르는 샘플을 생성하는 생성기

Advanced

Core: 계층적 베이지안과 불확실성 (Advanced Bayesian)

  • Why to Learn: 데이터가 부족한 그룹의 정보를 전체 그룹의 경향성으로 보완(Partial Pooling)하여 강력한 모델을 만들기 위해서입니다.
  • What to Learn:
    • 계층적 모델(Hierarchical Model): '파라미터의 파라미터'를 갖는 물리 구조
    • 불확실성 정량화(UQ): 알고리즘의 답변에 대한 '자신감'을 수치로 표현
    • 변분 추론(Variational Inference): 샘플링 대신 최적화 문제로 추론을 치환하는 고속 역학
  • How to Learn:
    • 여러 학교의 성적 변동을 분석할 때, 각 학교의 특수성과 전체 학교의 평균을 동시에 반영하는 모델링 실습
    • 베이지안 신경망(BNN)이 가중치를 상수가 아닌 분포로 가질 때의 이점을 물리적으로 탐구
  • Implement: 데이터의 노이즈(Aleatoric)와 모델의 무지(Epistemic)에 의한 불확실성을 구분하여 출력하는 예측 엔진

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Prior (사전확률) 데이터를 관측하기 전, 우리가 이미 알고 있거나 믿고 있는 파라미터의 확률 분포 물리입니다. 기본 지식 주입 Posterior Knowledge '고정된 값'과 혼동 P1:CS2023/Probability core
Posterior (사후확률) 사전 지식과 새로운 데이터를 결합하여 업데이트된 최종적인 믿음의 분포입니다. 추천 추론 결과 Likelihood Update 단순히 '최종 값'으로 오해 P1:CS2023/Probability core
MCMC 확률 분포의 샘플을 얻기 위해 마르코프 체인의 정상 분포가 목표 분포가 되도록 설계된 물리 기법입니다. 실무 수치 추론 Sampling Monte Carlo '코드 실행 경로'와 혼동 Industry Computing core
Conjugate Prior 특정 가능도와 결합했을 때 사후 분포가 사전 분포와 동일한 형태를 갖게 되는 수학적 쌍입니다. 심화 연산 최적화 Beta-Binomial Analytical solution '변증법'적 의미와 혼동 P4 core

8. References

Primary

Secondary

  • [Statistical Rethinking] Richard McElreath — Intuitive Bayesian modeling for scientists.
  • [Bayesian Data Analysis] Andrew Gelman — The rigorous Bayesian "Bible".

Industry

  • [Uber Pyro: Deep Probabilistic Programming] — Industry scale PPL applications.
  • [Google CausalImpact: Bayesian Causal Inference] — Bayesian methods in marketing.

9. Final Checklist

Primary

  • 베이즈 정리를 사용하여 사전 확률이 0인 사건은 어떤 데이터가 들어와도 사후 확률이 0이 될 수밖에 없는 물리적 한계를 입증할 수 있는 가? (P1)
  • '독립(Independence)'과 '조건부 독립(Conditional Independence)'의 차이를 베이지안 네트워크 예시를 통해 물리적으로 설명 가능한가? (P1)

Secondary

  • PPL(확률적 프로그래밍) 환경에서 '샘플러(Sampler)'가 사후 분포를 찾아가는 과정을 물리학적 입자 이동 모형인 HMC(Hamiltonian Monte Carlo) 관점에서 설명할 수 있는 가?
  • 베이지안 추론이 빈도주의적 최대 우도 추정(MLE)과 결과적으로 동일해지는 특수한 물리적 상황(균등 사전 분포)을 소통 가능한가?

Industry

  • 게임 밸런싱이나 추천 시스템 설계 시, 콜드 스타트(Cold Start) 문제를 해결하기 위해 사전 분포(Prior)를 어떻게 물리적으로 설계할지 전략을 수립할 수 있는 가? (SFIA)
  • 자율 주행이나 로봇 공학에서 센서 데이터의 노이즈를 베이즈 갱신을 통해 실시간으로 제거하고 객체의 위치를 추론하는 로직을 제안할 수 있는 가?