← 문제 목록/다변량 가우시안 PDF (log-space stable) [medium]
문제 해설

다변량 가우시안 PDF (log-space stable) [medium]

확률 · medium

preview

Multivariate Gaussian PDF [medium]

v1 1D 가우시안다차원 일반화. GMM, Kalman filter, VAE prior, 이상치 탐지의 핵심:

p(xμ,Σ)=1(2π)D/2Σ1/2exp ⁣(12(xμ)Σ1(xμ))p(x \mid \mu, \Sigma) = \frac{1}{(2\pi)^{D/2} |\Sigma|^{1/2}} \exp\!\left(-\tfrac{1}{2} (x - \mu)^\top \Sigma^{-1} (x - \mu)\right)

  • μ\mu shape (D,): 평균 벡터.
  • Σ\Sigma shape (D, D): 공분산 행렬 (대칭 양정부호).

Log-space 정식화

DD 가 크거나 Σ|\Sigma| 가 작으면 PDF 가 underflow. 실무에선 log 로 계산 후 필요 시 exp:

logp=D2log(2π)12logΣ12m(x)Σ1m(x)\log p = -\tfrac{D}{2} \log(2\pi) - \tfrac{1}{2} \log |\Sigma| - \tfrac{1}{2} m(x)^\top \Sigma^{-1} m(x)

여기서 m(x)=xμm(x) = x - \mu.

수치적 트릭

  • Cholesky 분해 Σ=LL\Sigma = L L^\toplogΣ=2ilogLii\log |\Sigma| = 2 \sum_i \log L_{ii}, Σ1m\Sigma^{-1} msolve_triangular 두 번.
  • 직접 np.linalg.slogdet + np.linalg.solve 조합도 OK.
  • 정규화: Σ+ϵI\Sigma + \epsilon I 로 regularize 하면 semi-definite 인 경우에도 안정.

과제

함수 multivariate_gaussian_pdf(X, mu, cov, epsilon=1e-8) 를 완성하세요.

  • X shape (N, D) 또는 (D,): 쿼리 포인트들.
  • mu shape (D,), cov shape (D, D).
  • 반환: (N,) PDF 값 (1D 입력이면 scalar → (1,) 로 취급해도 무방).
  • 힌트: sign, logdet = np.linalg.slogdet(cov), solved = np.linalg.solve(cov, (X - mu).T).T.

테스트 케이스

#이름검증
1반환 shape (N,)
2전체 적분 ≈ 1 (2D grid)
3x=μx = \mu 에서 최댓값 = $1/\sqrt{(2\pi)^D\Sigma
4D=1 시 v1 gaussian_pdf 와 일치
5scipy multivariate_normal.pdf 와 일치
6큰 Mahalanobis 거리 → PDF 지수적 감소
7정칙 (N < D) 공분산에도 finite (ε clip)
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.