이 단원의 네 강의가 여기서 하나로 모입니다.
| 강의 | 무엇을 세웠는가 |
|---|---|
| 130 | 일변수 정규분포와 가우스 적분 |
| 136 | 결합분포와 주변분포 |
| 138 | 공분산행렬과 그 성질 |
| 139 | 선형변환과 야코비 행렬식 |
넷을 합치면 다변량 정규분포가 나옵니다.
일변수와 대응이 정확합니다.
| 일변수 | 다변수 |
|---|---|
| (x-\mu)^{2}/\sigma^ | |
| \lvert\Sigma\rvert^ | |
| \sqrt | (2\pi)^ |
지수 안이 87강의 이차형식이며, 가 대칭 양정치라는 것이 138강 문제 5에서 확인한 성질입니다.
그리고 이 분포가 특별한 이유가 세 가지 더 있습니다.
셋 다 다른 분포에는 없습니다. 138강 문제 3에서 예고한 첫째와, 137강 문제 5에서 "거의 선형"이었던 것이 여기서 정확해지는 셋째를 이 강의에서 증명합니다.
문제. , 인 이변량 정규분포를 봅니다.
(1) 정규화 상수를 구하세요.
(2) 여러 점에서 이차형식과 밀도를 계산하세요.
(3) 전체 적분과 모멘트를 확인하세요.
생각의 실마리. 130강에서 일변수 밀도의 지수 안이 였습니다. 분모의 이 행렬이 되면 나눗셈이 역행렬이 될 것입니다.
풀이. (1) 이므로
(2) 검산 결과입니다.
| \mathbf | 밀도 | |
|---|---|---|
평균에서 이차형식이 이고 밀도가 최대입니다.
둘째와 셋째 줄을 비교하면 흥미롭습니다. 둘 다 평균에서 좌표 하나가 만큼 떨어져 있는데 이차형식이 와 으로 다릅니다. 가 방향마다 다른 거리를 재기 때문입니다.
(3) 수치로 확인합니다.
| 양 | 값 |
|---|---|
| 전체 적분 | |
| 수치 평균 | |
| 수치 공분산 | \begin{pmatrix}3.995355&1.997572\\1.997572&2.998489\end |
적분이 에 못 미치는 것은 격자를 에서 잘라 꼬리를 놓쳤기 때문이며, 그 결손이 평균과 공분산에도 비례해 나타납니다.
이 문제에서 배우는 것: 다변량 정규분포의 밀도.
다변량 정규분포. 이면
이며 는 대칭 양정치여야 합니다.
각 부분의 역할이 명확합니다.
| 부분 | 역할 |
|---|---|
| 평균에서의 거리를 잽니다 | |
| \lvert\Sigma\rvert^ | 퍼짐의 부피를 보정합니다 |
| (2\pi)^ | 가우스 적분에서 나옵니다 |
마할라노비스 거리. 이며 가 정하는 노름입니다.
분산이 큰 방향으로는 멀어도 가깝다고 재고, 작은 방향으로는 조금만 벗어나도 멀다고 잽니다. 96강 심화 3의 노름 선택이 여기서 거리 개념으로 나타나며, 119강 문제 5의 전처리 흐름과 같은 구조입니다.
이 분모에 있는 것도 79강으로 설명됩니다. 행렬식이 부피 배율이므로 등고선 타원의 부피가 에 비례하고, 적분이 이 되려면 그만큼 나눠야 합니다.
가 특이하면 밀도가 없습니다. 138강 문제 5에서 선형종속이 있으면 고유값이 이라 했는데, 그러면 이 없고 분포가 저차원 부분공간에 몰립니다. 139강 문제 2의 특이변환과 같은 상황입니다.
바로 확인 1.
확인 1-1. 다변량 정규분포의 밀도를 쓰세요.
답. 입니다.
확인 1-2. 지수 안의 양의 이름을 쓰세요.
답. 마할라노비스 거리의 제곱입니다.
확인 1-3. 가 특이하면 어떻게 됩니까?
답. 역행렬이 없어 밀도가 정의되지 않고 분포가 저차원에 몰립니다.
문제. 에서 출발합니다.
(1) 의 촐레스키 분해를 구하세요.
(2) 의 공분산을 확인하세요.
(3) 139강의 변환 공식으로 밀도를 옮겨 확인하세요.
생각의 실마리. 139강 문제 2에서 선형변환 후 공분산이 이었습니다. 의 공분산이 이므로 인 를 찾으면 됩니다.
풀이. (1)(2) 검산 결과입니다.
**와의 최대 차이가 **입니다.
(3) 139강 문제 2의 공식으로 확인합니다.
| \mathbf | \mathbf{x}=\boldsymbol{\mu}+A\mathbf | ||
|---|---|---|---|
세 줄 모두 정확히 같습니다. 이며, 이것이 밀도의 정규화 상수에 들어 있던 입니다.
이 문제에서 배우는 것: 선형변환으로 만드는 정규분포.
구성. 이고 이면
이것을 정의로 삼기도 합니다. 밀도로 정의하면 가 특이할 때 곤란한데, 이 방식은 특이해도 잘 정의됩니다. 그때는 밀도가 없는 퇴화 정규분포가 됩니다.
를 고르는 방법이 여럿입니다.
| 방법 | 특징 | |
|---|---|---|
| 촐레스키 | 하삼각 | , 가장 빠릅니다 |
| 고유분해 | Q\Lambda^ | 주축이 드러납니다 |
| 대칭 제곱근 | Q\Lambda^{1/2}Q^ | 대칭이며 유일합니다 |
가 유일하지 않습니다. 를 만족하는 는 임의의 직교행렬 에 대해 도 만족하며, 139강 문제 2에서 회전이 밀도를 바꾸지 않는다고 한 것과 같은 이유입니다.
첫째 줄이 실무의 표준입니다. 촐레스키 분해는 69강의 LU 분해를 대칭 양정치 행렬에 특화한 것이며, 양정치성 자체를 검사하는 도구이기도 합니다. 분해가 실패하면 양정치가 아닙니다.
선형변환에 닫혀 있습니다. 이면 임의의 와 에 대해
130강 문제 4의 일변수 성질이 그대로 확장됩니다. 그리고 가 행벡터면 임의의 선형결합이 일변수 정규입니다.
이 성질을 정의로 삼는 방식도 있습니다. "모든 선형결합이 일변수 정규이면 다변량 정규"이며, 가장 일반적인 정의입니다.
재매개변수화 요령이 바로 이것입니다. 139강 심화 4에서 을 썼는데, 대각이 아닌 일반 면 촐레스키 를 씁니다.
바로 확인 2.
확인 2-1. 표준정규에서 를 만드는 방법을 쓰세요.
답. 인 로 를 만듭니다.
확인 2-2. 가 유일하지 않은 이유를 쓰세요.
답. 직교행렬을 오른쪽에 곱해도 이 같기 때문입니다.
확인 2-3. 선형결합의 분포를 쓰세요.
답. 입니다.
문제. 가 대각인 경우와 아닌 경우를 비교합니다.
(1) 에서 결합밀도와 주변밀도의 곱을 비교하세요.
(2) 원래 에서도 비교하세요.
(3) 이유를 밝히세요.
생각의 실마리. 138강 문제 3에서 무상관이 독립을 함의하지 않는다고 했는데, 정규분포는 예외라고 예고했습니다. 밀도를 직접 봅니다.
풀이. (1) 대각인 경우입니다.
| \mathbf | 결합밀도 | 주변밀도의 곱 | 차이 |
|---|---|---|---|
| 3.47\times10^ | |||
**세 점 모두 차이가 정확히 **입니다.
(2) 원래 에서는 다릅니다. 에서 결합이 이고 주변 곱이 으로 **차이가 **입니다.
(3) 지수 안의 이차형식이 대각이면 항이 분리되기 때문입니다.
이 문제에서 배우는 것: 정규분포에서 무상관은 독립이다.
정리. 가 다변량 정규이면
증명이 밀도의 인수분해입니다. 가 대각이면 도 대각이라
이고 지수의 합이 곱으로 갈라집니다.
도 갈라지므로 정규화 상수까지 곱이 됩니다.
핵심은 입니다. 지수함수가 합을 곱으로 바꾸기 때문이며, 다른 분포족에는 이런 구조가 없습니다.
주의할 함정이 있습니다. 각 성분이 정규분포여도 결합이 다변량 정규가 아닐 수 있습니다.
반례가 간단합니다. 이고 가 을 각각 절반 확률로 갖는 독립 변수일 때 라 하면
| 사실 | 확인 |
|---|---|
| 대칭이라 부호를 바꿔도 같은 분포입니다 | |
| 입니다 | |
| 인가 | 아닙니다. 입니다 |
각각은 정규인데 결합이 정규가 아니라 정리를 쓸 수 없습니다. "다변량 정규"라는 전제를 반드시 확인해야 합니다.
바로 확인 3.
확인 3-1. 정규분포에서 무상관과 독립의 관계를 쓰세요.
답. 동치입니다.
확인 3-2. 그 증명의 핵심을 쓰세요.
답. 가 대각이면 지수의 합이 곱으로 갈라집니다.
확인 3-3. 각 성분이 정규면 결합도 다변량 정규입니까?
답. 아닙니다. 반례가 있으므로 전제를 확인해야 합니다.
문제. 의 분포를 봅니다.
(1) 조건부평균과 조건부분산의 공식을 쓰세요.
(2) 수치로 확인하세요.
(3) 주변분포도 확인하세요.
생각의 실마리. 137강 문제 5에서 회귀함수가 거의 선형이었습니다. 정규분포에서는 어떤지 봅니다.
풀이. (1) 공식은 이렇습니다.
조건부분산이 에 전혀 의존하지 않습니다.
(2) 검산 결과입니다.
| 격자점 x_ | 수치 조건부평균 | 이론 선형식 | 차이 | 수치 조건부분산 |
|---|---|---|---|---|
| 6.90\times10^ | ||||
| 4.33\times10^ | ||||
| 1.45\times10^ | ||||
| 1.46\times10^ |
**정확히 선형이며 조건부분산이 모두 **입니다. 남은 오차는 격자를 자른 꼬리에서 옵니다.
(3) 주변분포도 정규입니다.
| 수치 | 이론 | 차이 | |
|---|---|---|---|
| 4.53\times10^ | |||
| 3.08\times10^ | |||
| 4.46\times10^ |
이 문제에서 배우는 것: 주변과 조건부가 모두 정규다.
주변분포. 의 임의의 부분벡터도 정규이며 해당 성분만 뽑으면 됩니다.
적분할 필요가 없습니다. 문제 2의 선형결합 성질로 바로 나오며, 를 성분 선택 행렬로 두면 됩니다.
조건부분포.
두 가지가 놀랍습니다.
| 성질 | 다른 분포에서는 |
|---|---|
| 조건부평균이 정확히 선형 | 대개 비선형입니다 |
| 조건부분산이 조건값에 무관 | 대개 의존합니다 |
첫째 줄이 137강 문제 5의 완성입니다. 그때 최적 선형 예측이 조건부평균과 차이였는데, **정규분포에서는 차이가 정확히 **입니다.
137강 문제 4에서 라 했고 회귀함수가 선형이면 같다고 했는데, 정규분포가 정확히 그 경우입니다.
둘째 줄을 등분산성이라 합니다. 회귀분석에서 자주 하는 가정이며, 정규분포에서는 가정이 아니라 정리입니다.
슈어 보수. 조건부분산 를 에 대한 의 슈어 보수라 합니다.
블록 행렬의 역행렬에서 나오는 양이며, 137강 문제 4의 전체 분산 법칙으로 읽으면
설명된 부분과 설명되지 않은 부분의 분해가 행렬 항등식으로 나타납니다.
이 공식이 가우스 과정 회귀의 전부입니다. 관측점과 예측점을 함께 정규분포로 놓고 관측에 조건을 걸면, 예측 평균과 예측 분산이 위 공식으로 바로 나옵니다.
바로 확인 4.
확인 4-1. 다변량 정규의 주변분포를 구하는 방법을 쓰세요.
답. 해당 성분의 평균과 공분산 부분행렬만 뽑으면 됩니다.
확인 4-2. 조건부평균과 조건부분산을 쓰세요.
답. 과 슈어 보수입니다.
확인 4-3. 다른 분포와 다른 두 가지를 쓰세요.
답. 조건부평균이 정확히 선형이고 조건부분산이 조건값에 무관합니다.
문제. 이차형식이 상수인 집합을 봅니다.
(1) 의 고유값과 고유벡터를 구하세요.
(2) 고유벡터 방향의 이차형식을 확인하세요.
(3) 등고선 안의 확률을 구하세요.
생각의 실마리. 밀도가 이차형식의 함수이므로 등고선은 이차형식이 상수인 집합입니다. 87강에서 그것이 타원이라 했습니다.
풀이. (1) 검산 결과입니다.
**축의 길이 비가 **입니다.
(2) 고유벡터 방향으로 단위벡터만큼 이동하면 이차형식이 가 됩니다.
| 방향 | 단위벡터 이동 시 이차형식 | |
|---|---|---|
| 고유벡터 | ||
| 고유벡터 |
정확히 일치합니다. 이면 이므로 입니다.
(3) 등고선 안의 확률입니다.
| 수치 | 이론 | 차이 | |
|---|---|---|---|
| 1.05\times10^ | |||
| 6.30\times10^ | |||
| 1.34\times10^ | |||
| 2.24\times10^ |
이 문제에서 배우는 것: 등고선의 기하.
등고선. 는 를 중심으로 하는 타원체이며, 주축이 의 고유벡터이고 반축 길이가 입니다.
86강의 스펙트럼 정리가 그대로 쓰입니다. 로 두고 좌표를 로 바꾸면
표준 타원 방정식이 됩니다.
89강의 주성분분석이 정확히 이 분해입니다. 첫 주성분이 가장 긴 축이며, 이 예에서 에 대응하는 방향입니다.
등고선 안의 확률. 이면
증명이 문제 2의 구성입니다. 이면
표준정규 개의 제곱합이며, 131강 문제 4에서 그것이 라 했습니다.
에서 특히 단순합니다. 이므로
검산의 표가 이 식이며, 131강 문제 4의 표에서 감마족이 카이제곱을 품는다고 한 것이 여기서 쓰입니다.
일변수의 --과 다릅니다.
| 차원 | 안쪽 확률 | |
|---|---|---|
차원이 오르면 같은 의 확률이 줄어듭니다. 135강 심화 6의 측도 집중과 이어지며, 고차원에서는 확률질량이 중심이 아니라 껍질에 몰립니다.
바로 확인 5.
확인 5-1. 등고선의 모양과 주축을 쓰세요.
답. 타원체이며 주축이 의 고유벡터입니다.
확인 5-2. 이차형식의 분포를 쓰세요.
답. 입니다.
확인 5-3. 에서 등고선 안의 확률을 쓰세요.
답. 입니다.
| 개념 | 식 |
|---|---|
| 밀도 | |
| 이차형식 | |
| 구성 | , |
| 선형변환 | |
| 주변분포 | 해당 성분만 뽑습니다 |
| 조건부평균 | |
| 조건부분산 | (슈어 보수) |
| 이차형식의 분포 | \chi^{2}_ |
| 정규분포만의 성질 | 내용 |
|---|---|
| 무상관 독립 | 지수가 곱으로 갈라집니다 |
| 주변과 조건부가 정규 | 족이 닫혀 있습니다 |
| 조건부평균이 선형 | 입니다 |
| 조건부분산이 무관 | 등분산성이 정리입니다 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 성분이 정규면 결합도 정규라 봅니다 | 반례가 있습니다 |
| 특이 에 밀도를 씁니다 | 저차원에 몰려 밀도가 없습니다 |
| 에 --을 씁니다 | 차원마다 다릅니다 |
| 등분산성을 언제나 가정합니다 | 정규분포에서만 정리입니다 |
문제 6. 다변량 정규분포의 밀도를 쓰세요.
답. 입니다.
문제 7. 지수 안의 양의 이름과 뜻을 쓰세요.
답. 마할라노비스 거리의 제곱이며 가 정하는 노름입니다.
문제 8. 이 분모에 있는 이유를 쓰세요.
답. 행렬식이 부피 배율이라 등고선의 부피를 보정하기 때문입니다.
문제 9. 표준정규에서 를 만드는 방법을 쓰세요.
답. 인 로 를 만듭니다.
문제 10. 를 고르는 세 방법을 쓰세요.
답. 촐레스키, 고유분해, 대칭 제곱근입니다.
문제 11. 선형결합의 분포를 쓰세요.
답. 입니다.
문제 12. 정규분포에서 무상관과 독립의 관계와 증명의 핵심을 쓰세요.
답. 동치이며 가 대각이면 지수의 합이 곱으로 갈라집니다.
문제 13. 각 성분이 정규면 결합도 다변량 정규입니까?
답. 아닙니다. 같은 반례가 있습니다.
문제 14. 주변분포를 구하는 방법을 쓰세요.
답. 해당 성분의 평균과 공분산 부분행렬만 뽑습니다.
문제 15. 조건부평균과 조건부분산을 쓰세요.
답. 과 슈어 보수입니다.
문제 16. 조건부분포가 다른 분포와 다른 두 가지를 쓰세요.
답. 조건부평균이 정확히 선형이고 조건부분산이 조건값에 무관합니다.
문제 17. 등고선의 모양과 주축, 반축 길이를 쓰세요.
답. 타원체이며 주축이 고유벡터이고 반축이 입니다.
문제 18. 이차형식의 분포와 에서의 확률을 쓰세요.
답. 이며 에서 입니다.
심화 1. 정밀도행렬로 읽으면 무엇이 달라지는지 쓰세요.
밀도에 나타나는 것은 가 아니라 입니다. 이를 정밀도행렬 라 합니다.
두 행렬의 이 전혀 다른 것을 뜻합니다.
| 행렬 | 성분이 이면 |
|---|---|
| 와 가 주변 독립 | |
| 나머지를 조건으로 걸면 조건부 독립 |
138강 심화 3에서 예고한 것입니다. 정규분포에서는 그 함의가 정확히 성립합니다.
이것이 가우시안 그래프모형의 근거입니다. 정밀도행렬의 패턴이 그래프의 없는 간선이 되며, 213강에서 다룹니다.
희소성이 다른 곳에 나타납니다. 가 빽빽해도 가 희소할 수 있고 그 반대도 가능합니다. 마르코프 사슬이 좋은 예로, 가 삼대각행렬인데 는 모든 성분이 이 아닙니다.
138강 심화 5의 희소 추정이 이것을 씁니다. 그래피컬 라소는 에 벌점을 주어 조건부 독립 구조를 찾으며, 116강의 정규화가 여기서 그래프 구조 학습이 됩니다.
심화 2. 가우스 과정을 개관하세요.
문제 4의 조건부 공식이 그대로 회귀 방법이 됩니다.
함수값들을 다변량 정규로 놓습니다.
가 커널이며 두 입력 사이의 공분산입니다. 138강 심화 6에서 언급한 대로 양반정부호여야 한다는 조건이 공분산행렬의 조건 그대로입니다.
예측이 조건부 공식입니다. 관측 와 새 점 를 함께 놓고 조건을 걸면
둘째 식이 슈어 보수이며, 예측 불확실성을 공짜로 얻는 것이 이 방법의 장점입니다.
대가는 계산 비용입니다. 이 이라 관측이 수만 개를 넘으면 근사가 필요합니다.
| 근사 | 아이디어 |
|---|---|
| 유도점 | 대표점 개로 |
| 랜덤 특징 | 커널을 유한 차원으로 근사 |
| 국소 근사 | 가까운 점만 씁니다 |
베이즈 최적화가 주요 응용입니다. 하이퍼파라미터 탐색에서 예측 평균과 불확실성을 함께 써서 다음 시도점을 고릅니다.
심화 3. 칼만 필터를 다변량 정규로 설명하세요.
125강 심화 5에서 칼만 필터를 소개했습니다. 문제 4의 조건부 공식이 그 전부입니다.
상태와 관측을 함께 정규분포로 놓습니다.
둘 다 선형이고 잡음이 정규이므로, 문제 2의 닫힘 성질로 모든 것이 정규로 남습니다.
두 단계를 번갈아 합니다.
| 단계 | 무엇을 하는가 |
|---|---|
| 예측 | 로 선형변환하고 잡음 공분산을 더합니다 |
| 갱신 | 관측에 조건을 겁니다 |
갱신이 정확히 조건부 공식입니다.
가 칼만 이득이며 의 자리입니다. 공분산 갱신은 슈어 보수입니다.
선형과 정규가 둘 다 필요합니다. 하나라도 깨지면 닫히지 않으며, 확장 칼만 필터는 선형화로, 입자 필터는 표본으로 대응합니다.
심화 4. 고차원에서의 기하를 정리하세요.
문제 5의 표에서 차원이 오르면 같은 의 확률이 줄었습니다. 고차원에서 더 극적입니다.
표준정규 에서 노름을 봅니다.
노름이 근처에 집중되며 상대적 퍼짐이 로 줄어듭니다.
| 상대 표준편차 | ||
|---|---|---|
밀도가 가장 높은 곳은 원점인데 확률질량은 반지름 껍질에 몰립니다. 부피가 로 커지기 때문이며, "밀도가 높은 곳"과 "표본이 나오는 곳"이 다릅니다.
이것이 실무에서 중요합니다.
| 현상 | 결과 |
|---|---|
| 표본이 껍질에 몰림 | 원점 근처 표본을 보기 어렵습니다 |
| 두 표본이 거의 직교 | 무작위 방향들이 서로 수직입니다 |
| 거리가 모두 비슷 | 최근접 이웃이 의미를 잃습니다 |
둘째 줄이 고차원 초기화의 근거입니다. 무작위로 뽑은 두 벡터의 내적이 이고 노름이 각각 라 코사인이 로 에 가깝습니다.
135강 심화 6의 측도 집중이 정규분포에서 구체적으로 나타난 것입니다.
심화 5. 다변량 정규를 벗어나야 할 때를 정리하세요.
130강 심화 5에서 일변수 정규의 한계를 봤습니다. 다변수에서는 문제가 더 커집니다.
| 한계 | 대안 |
|---|---|
| 꼬리가 가볍습니다 | 다변량 분포 |
| 대칭입니다 | 왜곡 정규분포 |
| 봉우리가 하나입니다 | 혼합 정규분포 |
| 유계가 아닙니다 | 절단 정규분포 |
| 실수값만 | 잠재 정규 + 링크 |
첫째 줄이 138강 문제 4의 꼬리 의존성과 이어집니다. 다변량 정규의 꼬리 의존성이 이라 동시 극단 사건을 과소평가하며, 136강 문제 5의 금융위기 사례가 그것입니다.
다변량 분포가 표준 대안입니다. 정규를 카이제곱으로 나눈 스케일 혼합이며
자유도 가 꼬리의 두께를 정하고 이면 정규가 됩니다. 137강 문제 4의 전체 분산 법칙으로 읽으면 가 만드는 집단 간 분산이 꼬리를 두껍게 합니다.
셋째 줄의 혼합 정규분포가 가장 널리 쓰입니다. 어떤 연속분포든 성분을 충분히 쓰면 근사할 수 있으며, EM 알고리즘으로 학습합니다.
심화 6. 다변량 정규가 기계학습에 나타나는 자리를 정리하세요.
| 자리 | 어떻게 |
|---|---|
| 변분오토인코더 | 잠재변수의 사전과 사후 |
| 확산모형 | 순방향의 잡음과 역방향의 조건부 |
| 가우스 과정 | 함수 위의 사전분포 |
| 칼만 필터 | 상태 추정 |
| 판별분석 | 클래스별 정규를 가정 |
| 가중치 초기화 | 각 층의 가중치 분포 |
| 라플라스 근사 | 사후를 최빈점에서 이차 근사 |
일곱째 줄이 100강의 이차 근사입니다. 로그 사후를 최빈점 주변에서 테일러 전개하면
이고 지수를 취하면 정규분포입니다. 헤세 행렬이 정밀도행렬이 되며, 99강의 헤세와 심화 1의 정밀도행렬이 만나는 자리입니다.
둘째 줄이 가장 최근의 응용입니다. 확산모형에서 역방향 단계가
로 모형화되는데, 각 단계의 잡음이 작으면 이 정규 근사가 정확하다는 것이 이론적 근거입니다.
다섯째 줄이 123강 심화 6의 생성모형입니다. 클래스별로 를 가정하고 베이즈로 뒤집으면, 공분산이 같으면 결정경계가 선형이고 다르면 이차가 됩니다. 문제 4의 조건부 공식이 그 계산입니다.
import numpy as np
mu = np.array([1.0, -2.0])
Sig = np.array([[4.0, 2.0], [2.0, 3.0]])
Si = np.linalg.inv(Sig); dS = np.linalg.det(Sig)
# --- 문제 1: 지수 안이 이차형식이다 -------------------------------------
print(" N(mu, Sigma) 의 밀도. mu = %s" % np.array2string(mu))
print(" Sigma = %s, det = %.6f" % (np.array2string(Sig).replace("\n", " "), dS))
dens = lambda x: np.exp(-0.5*((x-mu) @ Si @ (x-mu)))/(2*np.pi*np.sqrt(dS))
print(" 정규화 상수 1/((2pi)^{d/2} |Sigma|^{1/2}) = %.10f" % (1/(2*np.pi*np.sqrt(dS))))
print(" x (x-mu)^T Sinv (x-mu) 밀도")
for x in [np.array([1.0,-2.0]), np.array([3.0,-2.0]), np.array([1.0,0.0]), np.array([3.0,-1.0])]:
q = float((x-mu) @ Si @ (x-mu))
print(" (%5.1f,%5.1f) %22.8f %14.10f" % (x[0], x[1], q, dens(x)))
print(" 이차형식이 0 인 곳(평균)에서 밀도가 최대입니다")
M, L = 1400, 16.0
g1 = mu[0] - L/2 + (np.arange(M) + 0.5)*(L/M)
g2 = mu[1] - L/2 + (np.arange(M) + 0.5)*(L/M)
G1, G2 = np.meshgrid(g1, g2, indexing="ij")
D = np.stack([G1-mu[0], G2-mu[1]], -1)
Q = np.einsum("ijk,kl,ijl->ij", D, Si, D)
F = np.exp(-0.5*Q)/(2*np.pi*np.sqrt(dS))
cell = (L/M)**2
print(" 전체 적분 %.10f" % float(F.sum()*cell))
print(" 수치 평균 (%.8f, %.8f)" % (float((G1*F).sum()*cell), float((G2*F).sum()*cell)))
Cn = np.array([[float((D[...,i]*D[...,j]*F).sum()*cell) for j in range(2)] for i in range(2)])
print(" 수치 공분산 %s" % np.array2string(np.round(Cn, 6)).replace("\n", " "))
# N(mu, Sigma) 의 밀도. mu = [ 1. -2.]
# Sigma = [[4. 2.] [2. 3.]], det = 8.000000
# 정규화 상수 1/((2pi)^{d/2} |Sigma|^{1/2}) = 0.0562697698
# x (x-mu)^T Sinv (x-mu) 밀도
# ( 1.0, -2.0) 0.00000000 0.0562697698
# ( 3.0, -2.0) 1.50000000 0.0265799572
# ( 1.0, 0.0) 2.00000000 0.0207004915
# ( 3.0, -1.0) 1.00000000 0.0341293406
# 이차형식이 0 인 곳(평균)에서 밀도가 최대입니다
# 전체 적분 0.9999330689
# 수치 평균 (0.99993307, -1.99986614)
# 수치 공분산 [[3.995355 1.997572] [1.997572 2.998489]]
# --- 문제 2: 표준정규를 선형변환하면 만들어진다 -------------------------
print(" Z ~ N(0, I) 에 X = mu + A Z 를 씌우면 Cov[X] = A A^T 입니다")
Aa = np.linalg.cholesky(Sig)
print(" 촐레스키 A = %s" % np.array2string(np.round(Aa, 6)).replace("\n", " "))
print(" A A^T = %s" % np.array2string(np.round(Aa @ Aa.T, 6)).replace("\n", " "))
print(" Sigma 와의 최대 차이 %.2e" % float(np.abs(Aa @ Aa.T - Sig).max()))
print(" 139강 문제 2 의 공식으로 밀도를 옮겨도 같은 식이 나옵니다")
print(" z x = mu + A z f_Z(z) f_X(x)*|det A|")
for z in [np.array([0.0,0.0]), np.array([1.0,0.0]), np.array([0.5,-1.2])]:
x = mu + Aa @ z
fz = np.exp(-0.5*(z @ z))/(2*np.pi)
fx = dens(x)
print(" (%5.1f,%5.1f) (%6.3f,%6.3f) %12.8f %16.8f"
% (z[0], z[1], x[0], x[1], fz, fx*abs(np.linalg.det(Aa))))
print(" |det A| = sqrt(det Sigma) = %.6f 이므로 두 열이 같습니다"
% abs(np.linalg.det(Aa)))
# Z ~ N(0, I) 에 X = mu + A Z 를 씌우면 Cov[X] = A A^T 입니다
# 촐레스키 A = [[2. 0. ] [1. 1.414214]]
# A A^T = [[4. 2.] [2. 3.]]
# Sigma 와의 최대 차이 4.44e-16
# 139강 문제 2 의 공식으로 밀도를 옮겨도 같은 식이 나옵니다
# z x = mu + A z f_Z(z) f_X(x)*|det A|
# ( 0.0, 0.0) ( 1.000,-2.000) 0.15915494 0.15915494
# ( 1.0, 0.0) ( 3.000,-1.000) 0.09653235 0.09653235
# ( 0.5, -1.2) ( 2.000,-3.197) 0.06836618 0.06836618
# |det A| = sqrt(det Sigma) = 2.828427 이므로 두 열이 같습니다
# --- 문제 3: 무상관이면 독립이다 ----------------------------------------
print(" Sigma 가 대각이면 밀도가 곱으로 갈라집니다")
Sd = np.array([[4.0, 0.0], [0.0, 3.0]])
Sdi = np.linalg.inv(Sd)
print(" x 결합밀도 주변밀도의 곱 차이")
for x in [np.array([1.0,-2.0]), np.array([2.0,0.0]), np.array([-1.0,1.5])]:
d = x - mu
joint = np.exp(-0.5*(d @ Sdi @ d))/(2*np.pi*np.sqrt(np.linalg.det(Sd)))
prod = (np.exp(-d[0]**2/8)/np.sqrt(2*np.pi*4)) * (np.exp(-d[1]**2/6)/np.sqrt(2*np.pi*3))
print(" (%5.1f,%5.1f) %14.10f %18.10f %12.2e" % (x[0], x[1], joint, prod, abs(joint-prod)))
print(" 지수의 이차형식이 대각이면 항이 분리되어 exp 가 곱으로 쪼개집니다")
print(" 상관이 있으면 갈라지지 않습니다. 원래 Sigma 로 확인합니다")
for x in [np.array([2.0,0.0])]:
d = x - mu
joint = dens(x)
prod = (np.exp(-d[0]**2/8)/np.sqrt(2*np.pi*4)) * (np.exp(-d[1]**2/6)/np.sqrt(2*np.pi*3))
print(" (%.1f,%.1f) 에서 결합 %.10f, 주변 곱 %.10f, 차이 %.2e"
% (x[0], x[1], joint, prod, abs(joint-prod)))
print(" 138강 문제 3 에서 예고한 예외가 이것입니다. 정규분포에서만 무상관이 독립입니다")
# Sigma 가 대각이면 밀도가 곱으로 갈라집니다
# x 결합밀도 주변밀도의 곱 차이
# ( 1.0, -2.0) 0.0459440746 0.0459440746 0.00e+00
# ( 2.0, 0.0) 0.0208167556 0.0208167556 3.47e-18
# ( -1.0, 1.5) 0.0036174097 0.0036174097 0.00e+00
# 지수의 이차형식이 대각이면 항이 분리되어 exp 가 곱으로 쪼개집니다
# 상관이 있으면 갈라지지 않습니다. 원래 Sigma 로 확인합니다
# (2.0,0.0) 에서 결합 0.0282942171, 주변 곱 0.0208167556, 차이 7.48e-03
# 138강 문제 3 에서 예고한 예외가 이것입니다. 정규분포에서만 무상관이 독립입니다
# --- 문제 4: 조건부분포도 정규이고 평균이 선형이다 ----------------------
print(" X2 | X1 = x1 의 분포를 구합니다")
b = Sig[1,0]/Sig[0,0]; a0 = mu[1] - b*mu[0]
vc = Sig[1,1] - Sig[1,0]**2/Sig[0,0]
print(" 조건부평균 = mu2 + Sig21/Sig11 (x1 - mu1) = %.6f + %.6f x1" % (a0, b))
print(" 조건부분산 = Sig22 - Sig21^2/Sig11 = %.6f (x1 에 무관)" % vc)
print(" 격자점 x1 수치 조건부평균 이론 선형식 차이 수치 조건부분산")
for x1 in [-3.0, 0.0, 1.0, 4.0]:
i = int(np.argmin(np.abs(g1 - x1)))
xg = g1[i]
w = F[i]; w = w/w.sum()
m = float(g2 @ w); v = float(((g2-m)**2) @ w)
print(" %13.8f %16.8f %15.8f %10.2e %18.8f"
% (xg, m, a0 + b*xg, abs(m-(a0+b*xg)), v))
print(" 137강 문제 5 에서 회귀함수가 거의 선형이었는데 여기서는 정확히 선형입니다")
print(" 조건부분산이 x1 에 전혀 의존하지 않는 것도 정규분포의 특징입니다")
print(" 주변분포도 정규입니다")
fx1 = F.sum(1)*(L/M)
print(" f_X1(x) 수치와 N(%.1f, %.1f) 이론 비교" % (mu[0], Sig[0,0]))
for x1 in [-1.0, 1.0, 3.0]:
i = int(np.argmin(np.abs(g1 - x1)))
th = np.exp(-(g1[i]-mu[0])**2/(2*Sig[0,0]))/np.sqrt(2*np.pi*Sig[0,0])
print(" x = %8.5f 수치 %.10f 이론 %.10f 차이 %.2e"
% (g1[i], fx1[i], th, abs(fx1[i]-th)))
# X2 | X1 = x1 의 분포를 구합니다
# 조건부평균 = mu2 + Sig21/Sig11 (x1 - mu1) = -2.500000 + 0.500000 x1
# 조건부분산 = Sig22 - Sig21^2/Sig11 = 2.000000 (x1 에 무관)
# 격자점 x1 수치 조건부평균 이론 선형식 차이 수치 조건부분산
# -2.99428571 -3.99707383 -3.99714286 6.90e-05 1.99958562
# 0.00000000 -2.49999957 -2.50000000 4.33e-07 1.99999663
# 0.99428571 -2.00285714 -2.00285714 1.45e-09 1.99999898
# 4.00000000 -0.50001459 -0.50000000 1.46e-05 1.99990514
# 137강 문제 5 에서 회귀함수가 거의 선형이었는데 여기서는 정확히 선형입니다
# 조건부분산이 x1 에 전혀 의존하지 않는 것도 정규분포의 특징입니다
# 주변분포도 정규입니다
# f_X1(x) 수치와 N(1.0, 4.0) 이론 비교
# x = -1.00571 수치 0.1206396454 이론 0.1206396907 차이 4.53e-08
# x = 0.99429 수치 0.1994703230 이론 0.1994703260 차이 3.08e-09
# x = 2.99429 수치 0.1213309892 이론 0.1213310338 차이 4.46e-08
# --- 문제 5: 등고선은 타원이고 축이 고유벡터다 --------------------------
print(" 이차형식이 상수인 곳이 등고선이며 타원입니다")
lam, Q_ = np.linalg.eigh(Sig)
print(" 고유값 %s" % np.array2string(np.round(lam, 6)))
print(" 고유벡터(열) %s" % np.array2string(np.round(Q_, 6)).replace("\n", " "))
print(" 축의 길이 비 sqrt(lam2/lam1) = %.6f" % np.sqrt(lam[1]/lam[0]))
print(" 고유벡터 방향으로 이동하면 이차형식이 1/lam 의 비율로 커집니다")
print(" 방향 단위벡터 이동 시 이차형식 1/lam")
for k in range(2):
v = Q_[:, k]
print(" 고유벡터 %d %24.8f %14.8f" % (k+1, float(v @ Si @ v), 1/lam[k]))
print(" 등고선 안에 들어갈 확률은 카이제곱분포로 나옵니다")
print(" (x-mu)^T Sinv (x-mu) ~ chi^2_2 이며 chi^2_2 = Exp(1/2) 입니다")
print(" c P(Q <= c) 수치 1 - exp(-c/2) 이론 차이")
for c in [1.0, 2.0, 4.0, 6.0]:
p = float(F[Q <= c].sum()*cell)
print(" %7.1f %18.8f %22.8f %12.2e" % (c, p, 1-np.exp(-c/2), abs(p-(1-np.exp(-c/2)))))
print(" 131강 문제 4 에서 chi^2_2 = Gamma(1, 1/2) = Exp(1/2) 라 한 것 그대로입니다")
# 이차형식이 상수인 곳이 등고선이며 타원입니다
# 고유값 [1.438447 5.561553]
# 고유벡터(열) [[ 0.615412 -0.788205] [-0.788205 -0.615412]]
# 축의 길이 비 sqrt(lam2/lam1) = 1.966306
# 고유벡터 방향으로 이동하면 이차형식이 1/lam 의 비율로 커집니다
# 방향 단위벡터 이동 시 이차형식 1/lam
# 고유벡터 1 0.69519410 0.69519410
# 고유벡터 2 0.17980590 0.17980590
# 등고선 안에 들어갈 확률은 카이제곱분포로 나옵니다
# (x-mu)^T Sinv (x-mu) ~ chi^2_2 이며 chi^2_2 = Exp(1/2) 입니다
# c P(Q <= c) 수치 1 - exp(-c/2) 이론 차이
# 1.0 0.39347983 0.39346934 1.05e-05
# 2.0 0.63205759 0.63212056 6.30e-05
# 4.0 0.86467808 0.86466472 1.34e-05
# 6.0 0.95021517 0.95021293 2.24e-06
# 131강 문제 4 에서 chi^2_2 = Gamma(1, 1/2) = Exp(1/2) 라 한 것 그대로입니다
문제 3의 두 결과를 나란히 보십시오. 가 대각일 때는 결합밀도와 주변밀도의 곱이 **차이 **으로 정확히 같고, 상관이 있으면 에서 어긋납니다. 138강 문제 3에서 "정규분포만 예외"라고 한 것의 증명이 이 두 줄입니다.
문제 4의 셋째 줄이 이 강의의 절정입니다. 격자점 에서 수치 조건부평균과 이론 선형식이 **소수점 여덟 자리까지 같고 차이가 **입니다. 137강 문제 5에서 최적 선형이 조건부평균과 차이였는데, 정규분포에서는 그 차이가 사라집니다.
문제 5의 이차형식 표도 정확히 맞습니다. 고유벡터 방향으로 단위벡터만큼 가면 이차형식이 정확히 입니다. 86강의 스펙트럼 정리가 확률의 언어로 옮겨진 자리입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 다변량 정규분포 | 평균벡터와 공분산행렬이 모수입니다 | |
| 마할라노비스 거리 | Mahalanobis distance | 가 정하는 거리입니다 |
| 촐레스키 분해 | Cholesky decomposition | , 가 하삼각입니다 |
| 슈어 보수 | Schur complement | 조건부분산입니다 |
| 정밀도행렬 | precision matrix | 이며 이 조건부 독립입니다 |
| 등분산성 | homoscedasticity | 조건부분산이 일정합니다 |
| 퇴화 정규분포 | degenerate normal | 가 특이해 밀도가 없습니다 |
| 신뢰타원 | confidence ellipse | 이차형식이 상수인 집합입니다 |
| 가우스 과정 | Gaussian process | 함수 위의 다변량 정규입니다 |
| 라플라스 근사 | Laplace approximation | 사후를 최빈점에서 정규로 근사합니다 |
| 다변량 분포 | multivariate t | 꼬리가 두꺼운 대안입니다 |
| 측도의 집중 | concentration of measure | 노름이 에 몰립니다 |
다음 141강에서는 독립인 확률변수 합의 분포를 다룹니다. 139강 문제 4에서 보조변수를 넣어 합성곱을 유도했고, 134강 문제 3에서 적률생성함수로 곱셈 한 번에 끝냈습니다. 이제 두 방법을 정리하고 어느 분포족이 합에 닫혀 있는지 완성합니다. 그리고 이것으로 04단원이 마무리되며, 05단원의 큰 수의 법칙과 중심극한정리가 바로 이 합의 극한입니다.