테마
5회 · 정규분포의 탄생과 Galton의 타원 · 노트
4 계산 — 정리를 알고리즘으로
노트북 4절의 MVN 클래스는 아래 세 알고리즘을 그대로 옮긴 것이다. 원칙은 하나다. 역행렬을 만들지 않는다. 을 직접 계산하면 비용이 들고, 가 특이에 가까울 때 수치 오차가 커진다. Cholesky 인수 로 삼각 연립방정식을 푸는 편이 빠르고 안정적이다.
알고리즘 4.2 (로그밀도) 입력 , , . 출력 .
- 1.
전진대입으로 를 푼다().
- 2.
. (이유: 이므로 .)
- 3.
. (이유: .)
- 4.
.
알고리즘 4.3 (조건부분포) 입력 블록 , , 관측 . 출력 , .
- 1.
연립방정식 을 풀어 을 얻는다.
- 2.
, .
- 3.
반올림으로 생긴 비대칭을 없애려고 .
반정치인 경우 Cholesky는 에서만 작동한다. 가 특이하거나 수치적으로 거의 특이하면(6.1절의 GP 공분산이 그렇다) 고유분해 로 를 만들어 알고리즘 4.1을 그대로 쓴다. 이때 밀도는 없으므로 알고리즘 4.2는 쓸 수 없다(명제 5.6).
연습문제
연습 4.1 (예제 3.16을 코드로 ★) 노트북의 MVN.conditional로 예제 3.16의 와 를 에서 계산하고, 개 표본에서 , 인 점들의 평균·분산과 비교하라.
풀이
이론값은 평균 , 분산 이다. 개 가운데 상자에 들어오는 점은 600여 개라서 Monte Carlo 평균의 표준오차가 정도다. 노트북의 한 실행에서는 (2 표준오차)였다.
연습 4.2 (KL 발산 구현 ★★) MVN에 kl(self, other)를 추가하라. 식은 명제 6.2이다. 역행렬 없이 와 이차형식을 계산하는 방법을 설명하고, Monte Carlo 추정 과 대조하라.
풀이
, 로 쓰면
은 삼각방정식 을 풀어 얻는다. 노트북 4.6절의 두 분포에서 정답은 이고, Monte Carlo 추정(개)은 이었다.
연습 4.3 (아들과 딸 ★★) GaltonFamilies에서 아들과 딸을 나눠 midparentHeight에 대한 회귀를 각각 구하라. 기울기와 잔차 표준편차를 비교해, Galton의 ×1.08 손질이 평균뿐 아니라 회귀 구조까지 맞추는지 논하라.
풀이
아들: 기울기 , 잔차 표준편차 . 딸: 기울기 , 잔차 표준편차 . 딸에 1.08을 곱하면 기울기 , 잔차 표준편차 로 아들과 거의 같아진다. 1.08은 평균만이 아니라 회귀 구조까지 꽤 잘 맞춘다. 잔차 분산은 아직 조금 다르다.