127강 문제 5에서 정규분포가 슬쩍 등장했습니다. 이항분포에서 를 고정하고 을 키우면 종 모양으로 수렴했습니다.
이번에는 그 분포를 정면으로 다룹니다.
이 식은 처음 보면 임의로 만든 것처럼 보입니다. 왜 지수 안에 제곱이 있고, 왜 로 나누며, 왜 앞에 가 붙습니까.
세 질문에 답이 있습니다.
| 부분 | 이유 |
|---|---|
| 꼴 | 곱했을 때 지수가 더해져 회전 대칭이 됩니다 |
| \sqrt | 적분이 이 되게 하는 값이며 극좌표에서 나옵니다 |
| 지수의 | 가 그대로 표준편차가 되게 맞춘 것입니다 |
둘째 줄이 이 강의의 첫 문제이며, 104강의 극좌표 변환이 도구가 됩니다.
정규분포가 특별한 이유는 세 가지입니다.
그리고 무엇보다 143강의 중심극한정리 때문입니다. 어떤 분포에서 뽑든 많이 더하면 정규분포로 가므로, 정규분포는 하나의 분포가 아니라 목적지입니다.
문제. 를 구합니다.
(1) 수치적으로 계산하고 을 구하세요.
(2) 을 이중적분으로 보고 극좌표로 바꾸세요.
(3) 결과를 확인하세요.
생각의 실마리. 의 원시함수는 초등함수로 쓸 수 없습니다. 그런데 은 계산됩니다. 제곱하면 이중적분이 되고, 104강의 극좌표가 통합니다.
풀이. (1) 검산 결과입니다.
| 구간 | 분할 | 수치 | I^ | 와의 차이 |
|---|---|---|---|---|
| 7.96\times10^ | ||||
| 1.69\times10^ | ||||
| 8.88\times10^ |
이며 가 정확히 이 값입니다. 첫 줄의 오차는 에서 잘라 꼬리를 놓친 것이고, 부터는 부동소수점 한계입니다.
(2) 유도가 우아합니다. 을 두 변수의 이중적분으로 씁니다.
지수가 더해져 이 되는 것이 핵심입니다. 이것은 원점에서의 거리 제곱이므로 회전 대칭이며, 104강의 극좌표가 정확히 맞습니다.
(3) 남은 적분은 치환 로 바로 됩니다.
검산에서 이 반지름 적분이 이고 를 곱하면 입니다. 따라서 이고 입니다.
이 문제에서 배우는 것: 가우스 적분.
가우스 적분.
따라서 표준정규분포의 밀도는 입니다.
이 붙는 것이 결정적입니다. 104강에서 극좌표의 면적소가 라고 했는데, 그 이 없었다면 이 적분도 풀리지 않습니다. 원시함수가 없는 적분이 차원을 하나 올리자 풀린 것이며, 수학에서 드물지만 강력한 수법입니다.
일반형도 치환으로 나옵니다. 로 두면 이므로
가 분모에 있는 이유가 이 치환의 야코비 인자입니다. 129강 문제 4의 변환 공식이 그대로 적용된 것입니다.
바로 확인 1.
확인 1-1. 가우스 적분의 값을 쓰세요.
답. 입니다.
확인 1-2. 유도의 핵심 수법을 쓰세요.
답. 제곱해서 이중적분으로 만들고 극좌표로 바꿉니다.
확인 1-3. 극좌표에서 무엇이 계산을 가능하게 합니까?
답. 면적소의 이며 그것이 치환으로 사라집니다.
문제. 의 밀도에서 모수의 의미를 확인합니다.
(1) 여러 에서 전체 적분을 구하세요.
(2) 평균과 분산을 수치로 구하세요.
(3) 모수와 비교하세요.
생각의 실마리. 많은 분포에서 모수는 평균이 아닙니다. 이항의 는 평균이 이고, 감마의 모수도 평균이 따로 있습니다. 정규분포는 어떤지 확인합니다.
풀이. 검산 결과입니다.
| 적분 | 평균 | 분산 | \sigma^ | ||
|---|---|---|---|---|---|
모수가 그대로 평균과 분산입니다.
이 문제에서 배우는 것: 위치와 척도 모수.
정규분포. 이면
평균이 인 것은 대칭성에서 바로 나옵니다. 밀도가 에 대해 좌우대칭이므로 무게중심이 입니다. 형식적으로는 로 옮기면 가 홀함수의 대칭 적분이라 입니다.
분산이 인 것은 부분적분으로 나옵니다.
에서 뒤쪽을 적분하면 이 되기 때문이며, 50강의 부분적분입니다.
위치 모수와 척도 모수. 는 분포를 좌우로 옮기고 는 넓이를 유지하며 좌우로 늘립니다.
이것이 정규분포가 다루기 쉬운 첫째 이유입니다. 두 모수의 역할이 기하적으로 분리되어 있습니다.
| 모수 | 하는 일 | 밀도에 미치는 영향 |
|---|---|---|
| 평행이동 | 모양이 그대로입니다 | |
| 가로 확대 | 최대 밀도가 배 됩니다 |
둘째 줄이 129강 문제 2의 표입니다. 가 작아지면 최대 밀도가 솟는데, 넓이를 로 유지해야 하기 때문입니다.
바로 확인 2.
확인 2-1. 정규분포의 평균과 분산을 쓰세요.
답. 와 이며 모수 그 자체입니다.
확인 2-2. 평균이 인 이유를 한 줄로 쓰세요.
답. 밀도가 에 대해 대칭이기 때문입니다.
확인 2-3. 와 의 기하적 역할을 쓰세요.
답. 는 평행이동이고 는 가로 확대입니다.
문제. 로 표준화합니다.
(1) 를 부터 까지 구하세요.
(2) 바깥 확률과 그 역수를 구하세요.
(3) 에서 직접 계산과 비교하세요.
생각의 실마리. 모수가 두 개라 표를 만들려면 이차원이 필요합니다. 표준화하면 하나로 줄어듭니다.
풀이. (1)(2) 검산 결과입니다.
| 바깥 확률 | 약 몇 번에 한 번 | ||
|---|---|---|---|
| 3.173\times10^ | |||
| 4.550\times10^ | |||
| 2.700\times10^ | |||
| 6.334\times10^ | |||
| 5.733\times10^ | |||
| 1.973\times10^ |
첫 세 줄이 -- 규칙입니다.
**마지막 줄이 품질관리의 "육 시그마"**입니다. 오억 번에 한 번 벗어나는 수준이며, 실제 산업 기준은 공정 이동을 감안해 백만 개당 개로 완화한 것입니다.
(3) 에서 직접 계산하면 이렇습니다.
| 구간 | 직접 계산 | 표준화 후 |
|---|---|---|
소수점 열 자리까지 완전히 같습니다.
이 문제에서 배우는 것: 표준화.
표준화. 이면
이며 을 표준정규분포라 합니다.
129강 문제 4의 변환 공식으로 확인됩니다. 이고 야코비 인자가 이므로
가 정확히 상쇄됩니다.
표준정규 분포함수. 이며 초등함수로 쓸 수 없습니다.
그래서 표를 쓰거나 수치 함수를 씁니다. 오차함수와의 관계가 이것입니다.
표준화의 실용적 이득이 큽니다.
| 이득 | 내용 |
|---|---|
| 표가 하나면 됩니다 | 모든 를 다룹니다 |
| 비교가 가능합니다 | 단위가 다른 양을 점수로 비교합니다 |
| 이상치 판정 | 같은 기준을 씁니다 |
셋째 줄에 주의가 필요합니다. 점수 기준은 자료가 정규분포일 때만 타당합니다. 꼬리가 두꺼운 자료에서는 이 훨씬 자주 나타나며, 심화 5에서 다룹니다.
바로 확인 3.
확인 3-1. 표준화 변환을 쓰세요.
답. 이며 을 따릅니다.
확인 3-2. -- 규칙을 쓰세요.
답. , , 표준편차 안에 각각 약 , , 가 있습니다.
확인 3-3. 를 초등함수로 쓸 수 있습니까?
답. 없습니다. 오차함수로 표현합니다.
문제. 를 봅니다.
(1) 과 표준화의 평균, 분산을 구하세요.
(2) 둘의 합을 합성곱으로 계산하세요.
(3) 와 비교하세요.
생각의 실마리. 128강 문제 3에서 포아송이 합에 닫혀 있음을 봤습니다. 정규분포도 그런지 확인합니다.
풀이. (1) 검산 결과입니다.
| 변환 | 평균 | 분산 | 정규인가 |
|---|---|---|---|
| 참입니다 | |||
| 참입니다 | |||
| 표준화 | 참입니다 |
(2)(3) 합성곱으로 확인한 결과입니다.
| 격자점 | 합성곱 | 이론 | 차이 |
|---|---|---|---|
| 1.76\times10^ | |||
| 5.49\times10^ | |||
| 5.19\times10^ | |||
| 2.23\times10^ |
**전체 최대 차이가 **이며 격자 간격 에서 오는 이산화 오차입니다. 격자를 촘촘히 하면 줄어듭니다.
이 문제에서 배우는 것: 정규분포의 닫힘 성질.
선형변환. 이면
독립 합. 과 가 독립이면
분산에 이 붙고 표준편차에는 가 붙습니다. 분산이 제곱 단위이기 때문입니다.
합에서 분산이 더해지는 것은 독립이 필요합니다. 127강 문제 3의 관찰이 그대로입니다.
이 성질이 실무에서 계속 쓰입니다.
| 상황 | 어느 성질 |
|---|---|
| 표준화, 정규화 층 | 선형변환 |
| 오차의 누적 | 독립 합 |
| 표본평균의 분포 | 합을 으로 나눔 |
| 가중합 예측 | 선형변환과 합 |
셋째 줄이 특히 중요합니다. 가 독립이면
표본평균도 정확히 정규분포이며, 분산이 로 줄어듭니다. **표준오차가 **이라는 통계학의 기본 공식이 여기서 나오며, 144강에서 정식으로 다룹니다.
정규분포는 근사 없이 이것이 성립하는 유일한 분포입니다. 다른 분포에서는 이 클 때만 근사적으로 성립하며, 그것이 143강의 중심극한정리입니다.
바로 확인 4.
확인 4-1. 의 분포를 쓰세요.
답. 입니다.
확인 4-2. 독립 합의 분포를 쓰세요.
답. 평균과 분산이 각각 더해진 정규분포입니다.
확인 4-3. 정규 표본의 표본평균 분포를 쓰세요.
답. 이며 근사가 아니라 정확합니다.
문제. 분산이 로 같은 세 분포의 미분 엔트로피를 비교합니다.
(1) 정규, 라플라스, 균등분포의 엔트로피를 구하세요.
(2) 이론값과 비교하세요.
(3) 결과의 의미를 쓰세요.
생각의 실마리. 129강 심화 6에서 미분 엔트로피를 정의했습니다. 분산이라는 제약만 주었을 때 어느 분포가 가장 무질서한지 묻습니다.
풀이. (1)(2) 검산 결과입니다.
| 분포 | 밀도 최댓값 | 미분 엔트로피 | 이론값 |
|---|---|---|---|
| 정규 | |||
| 라플라스 | |||
| 균등 |
정규분포가 가장 큽니다. 균등의 미세한 차이는 불연속점에서의 격자 오차입니다.
(3) 분산만 정해졌을 때 정규분포가 가장 정보가 적습니다.
이 문제에서 배우는 것: 최대 엔트로피 성질.
최대 엔트로피. 평균과 분산이 주어진 모든 분포 중에서 미분 엔트로피를 최대화하는 것은 정규분포입니다.
유도가 라그랑주 승수법입니다. 113강의 도구를 그대로 씁니다. 제약이 셋입니다.
라그랑주 함수를 세우고 에 대해 변분을 취하면
이므로 이며 지수 안에 이차식이 있는 꼴입니다. 제약을 맞추면 정규분포가 나옵니다.
이것이 "정규분포를 기본값으로 쓴다"는 관행의 정당화입니다. 평균과 분산 외에 아는 것이 없다면, 정규분포가 가장 적게 가정하는 선택입니다.
제약이 달라지면 다른 분포가 나옵니다.
| 제약 | 최대 엔트로피 분포 |
|---|---|
| 유계 구간 | 균등분포 |
| 평균 고정, | 지수분포 |
| 평균과 분산 고정 | 정규분포 |
| 평균과 고정 | 감마분포 |
| 로그의 평균과 분산 고정 | 로그정규분포 |
모두 지수족에 속합니다. 최대 엔트로피 문제의 해가 언제나 꼴이기 때문이며, 149강에서 지수족을 다룹니다.
정규분포를 쓰는 세 가지 이유를 정리합니다.
| 이유 | 근거 |
|---|---|
| 목적지입니다 | 중심극한정리(143강) |
| 가장 적게 가정합니다 | 최대 엔트로피(이 문제) |
| 다루기 쉽습니다 | 선형변환과 합에 닫힘(문제 4) |
세 이유가 서로 독립적이며, 어느 하나만으로도 정규분포를 쓸 근거가 됩니다.
바로 확인 5.
확인 5-1. 최대 엔트로피 성질을 쓰세요.
답. 평균과 분산이 주어지면 정규분포가 엔트로피를 최대화합니다.
확인 5-2. 유도에 쓰는 도구를 쓰세요.
답. 라그랑주 승수법이며 113강의 도구입니다.
확인 5-3. 정규분포를 쓰는 세 이유를 쓰세요.
답. 중심극한정리의 목적지이고, 가장 적게 가정하며, 닫힘 성질로 다루기 쉽습니다.
| 개념 | 식 |
|---|---|
| 밀도 | |
| 가우스 적분 | \int e^{-x^{2}/2}dx=\sqrt |
| 평균과 분산 | 와 \sigma^ |
| 표준화 | |
| 선형변환 | |
| 독립 합 | 평균과 분산이 더해집니다 |
| 표본평균 | |
| 와 erf |
| 안쪽 확률 | 바깥 확률 | |
|---|---|---|
| 2.0\times10^ |
| 최대 엔트로피 | 제약 |
|---|---|
| 균등 | 유계 구간 |
| 지수 | 평균, |
| 정규 | 평균과 분산 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 표준편차에 을 곱합니다 | 분산에 , 표준편차에 입니다 |
| 독립 없이 분산을 더합니다 | 공분산 항이 붙습니다 |
| 점수를 아무 자료에나 씁니다 | 정규성이 전제입니다 |
| 정규분포를 기본값으로 무조건 씁니다 | 꼬리가 두꺼우면 위험합니다 |
문제 6. 가우스 적분의 값과 유도 수법을 쓰세요.
답. 이며 제곱해 이중적분으로 만들고 극좌표로 바꿉니다.
문제 7. 극좌표에서 무엇이 계산을 가능하게 하는지 쓰세요.
답. 면적소의 이며 그것이 치환으로 사라집니다.
문제 8. 정규분포의 평균과 분산을 쓰세요.
답. 와 이며 모수 그 자체입니다.
문제 9. 평균이 인 이유를 쓰세요.
답. 밀도가 에 대해 대칭이기 때문입니다.
문제 10. 밀도에서 가 분모에 있는 이유를 쓰세요.
답. 표준화 치환의 야코비 인자이며 적분을 로 유지합니다.
문제 11. 표준화 변환과 그 결과를 쓰세요.
답. 이며 입니다.
문제 12. -- 규칙을 쓰세요.
답. , , 표준편차 안에 각각 약 , , 입니다.
문제 13. 와 오차함수의 관계를 쓰세요.
답. 입니다.
문제 14. 의 분포를 쓰세요.
답. 입니다.
문제 15. 독립 합의 분포를 쓰세요.
답. 평균과 분산이 각각 더해진 정규분포입니다.
문제 16. 정규 표본의 표본평균 분포를 쓰고 근사인지 쓰세요.
답. 이며 근사가 아니라 정확합니다.
문제 17. 최대 엔트로피 성질을 쓰세요.
답. 평균과 분산이 주어지면 정규분포가 엔트로피를 최대화합니다.
문제 18. 정규분포를 쓰는 세 이유를 쓰세요.
답. 중심극한정리의 목적지, 최소 가정, 닫힘 성질입니다.
심화 1. 정규분포를 특징짓는 여러 성질을 모으세요.
정규분포는 여러 방향에서 유일하게 정해집니다.
| 특징짓기 | 내용 |
|---|---|
| 최대 엔트로피 | 평균과 분산이 주어졌을 때 |
| 중심극한정리 | 독립 합의 극한 |
| 회전 불변 | 성분이 독립이고 결합밀도가 회전 대칭 |
| 표본평균과 표본분산 독립 | 이 성질을 갖는 유일한 분포 |
| 안정분포 중 유일 | 유한 분산을 갖는 안정분포 |
셋째 줄이 문제 1의 유도와 이어집니다. 와 가 독립이고 결합밀도가 에만 의존하면, 두 분포는 반드시 정규분포입니다. 함수방정식 의 해가 지수 이차식뿐이기 때문이며, 128강 문제 5의 무기억성 유도와 같은 구조입니다.
넷째 줄이 통계학에서 결정적입니다. 와 이 독립인 것이 분포를 유도하는 근거이며, 이 성질을 갖는 분포는 정규분포뿐입니다. 144강과 145강에서 다룹니다.
다섯째 줄은 꼬리와 관련됩니다. 안정분포는 독립 합이 스케일만 바뀐 같은 분포가 되는 족인데, 그중 분산이 유한한 것은 정규분포뿐입니다. 나머지는 코시분포처럼 꼬리가 두껍고 분산이 없습니다.
심화 2. 를 수치로 계산하는 방법을 개관하세요.
에 닫힌 형태가 없으므로 수치 계산이 필요합니다.
| 방법 | 특징 |
|---|---|
| 오차함수 라이브러리 | 표준이며 정확도가 높습니다 |
| 급수 전개 | 중심 근처에서 빠릅니다 |
| 연분수 | 꼬리에서 좋습니다 |
| 유리함수 근사 | 계수 표를 씁니다 |
중심 근처에서는 급수가 통합니다. 55강의 테일러 전개로
가 크면 항이 커졌다 작아져 수치적으로 불안정합니다. 92강에서 본 상쇄 오차의 전형입니다.
꼬리에서는 다른 표현을 씁니다.
점근 전개이며 수렴하지 않지만 앞 몇 항이 좋은 근사를 줍니다.
역함수 도 필요합니다. 126강 심화 4의 역변환 표집에 쓰이며, 유리함수 근사와 뉴턴법을 조합합니다. 112강의 뉴턴법이 여기서 실무 도구가 됩니다.
정규난수 생성에는 대개 박스뮐러를 씁니다. 가 독립 균등이면
가 독립 표준정규입니다. 문제 1의 극좌표 계산을 거꾸로 돌린 것이며, 이 반지름이고 가 각도입니다.
심화 3. 정규분포의 꼬리를 부등식으로 잡으세요.
문제 3에서 꼬리 확률이 급격히 작아지는 것을 봤습니다. 상한을 명시적으로 줄 수 있습니다.
가우스 꼬리 부등식. 에 대해
이며 더 정확한 형태로
**지수적으로 감소하며 그 지수가 **입니다. 이것이 정규분포를 가벼운 꼬리라 부르는 이유입니다.
표에서 확인됩니다. 가 씩 늘 때 바깥 확률이 대략 배가 아니라 훨씬 빨리 줄어듭니다.
| 바깥 확률 | 앞 줄 대비 배율 | |
|---|---|---|
| 2.700\times10^ | ||
| 6.334\times10^ | ||
| 5.733\times10^ | ||
| 1.973\times10^ |
배율 자체가 커집니다. 에서 지수가 에 대해 이차이기 때문입니다.
이 성질이 집중 부등식의 기준이 됩니다. 어떤 확률변수의 꼬리가 꼴로 억제되면 부분가우스라 하며, 146강의 호에프딩 부등식이 유계 확률변수가 부분가우스임을 보이는 정리입니다.
심화 4. 다변량 정규분포를 미리 보세요.
140강에서 정식으로 다루지만 형태를 미리 봅니다.
일변수와 대응이 정확합니다.
| 일변수 | 다변수 |
|---|---|
| (x-\mu)^{2}/\sigma^ | |
| \lvert\Sigma\rvert^ | |
| \sqrt | (2\pi)^ |
지수 안이 87강의 이차형식입니다. 가 대칭 양정치여야 하며, 86강의 스펙트럼 정리로 대각화하면 주축을 따라 독립인 일변수 정규분포들로 분해됩니다.
89강의 주성분분석이 정확히 이 분해이며, 등고선인 타원의 축이 고유벡터이고 축의 길이가 에 비례합니다.
이 정규화에 들어가는 것도 자연스럽습니다. 79강에서 행렬식이 부피 배율이라고 했으므로, 타원의 부피가 에 비례하고 그만큼 밀도를 나눠야 적분이 이 됩니다.
심화 5. 정규분포가 맞지 않는 곳을 정리하세요.
정규분포를 기본값으로 쓰는 관행이 위험한 자리가 있습니다.
첫째로 꼬리가 두꺼운 자료입니다.
| 자료 | 실제 분포 | 정규를 쓰면 |
|---|---|---|
| 금융 수익률 | 두꺼운 꼬리 | 극단 손실을 과소평가합니다 |
| 도시 인구, 소득 | 멱법칙 | 상위 집중을 못 봅니다 |
| 네트워크 연결 수 | 멱법칙 | 허브를 설명 못 합니다 |
| 응답 지연 시간 | 로그정규, 두꺼운 꼬리 | 를 과소평가합니다 |
정규분포에서 사건은 오억 번에 한 번인데, 금융시장에서는 몇 년에 한 번씩 일어납니다. 모형이 틀린 것이지 사건이 이상한 것이 아닙니다.
둘째로 양수만 갖는 양입니다. 키, 무게, 시간, 가격은 음수가 될 수 없는데 정규분포는 실수 전체에 확률을 줍니다. 평균이 표준편차보다 훨씬 크면 실용적으로 문제가 없지만, 그렇지 않으면 로그정규나 감마를 써야 합니다.
셋째로 유계인 양입니다. 비율이나 확률처럼 에 갇힌 양에는 베타분포가 적절합니다.
넷째로 다봉 분포입니다. 하위 집단이 섞여 있으면 봉우리가 여럿이며, 혼합 정규분포가 필요합니다.
진단 방법이 있습니다. QQ 플롯으로 분위수를 정규 분위수와 비교하면 꼬리의 이탈이 눈에 보이며, 첨도가 보다 크면 정규보다 꼬리가 두껍습니다. 134강에서 첨도를 다룹니다.
심화 6. 정규분포가 기계학습에 나타나는 자리를 정리하세요.
| 자리 | 어떻게 쓰이는가 |
|---|---|
| 가중치 초기화 | 등 |
| 정규화 층 | 표준화 |
| 손실 | 가우스 잡음 가정의 최대우도 |
| 정규화 | 가우스 사전의 최대사후 |
| 변분오토인코더 | 잠재변수의 사전과 사후 |
| 확산모형 | 순방향 과정의 잡음 |
| 가우스 과정 | 함수 위의 사전분포 |
| 드롭아웃의 극한 | 가우스 잡음 주입 |
셋째 줄이 근본적입니다. 이고 이면 로그가능도가
이므로 최대우도가 제곱오차 최소화와 같습니다. 제곱오차를 쓰는 것은 곧 가우스 잡음을 가정하는 것이며, 이상치가 있으면 그 가정이 깨져 로버스트 손실이 필요합니다.
첫째 줄도 이 강의와 직결됩니다. 층의 출력이 이므로 문제 4의 독립 합입니다. 분산이 이므로, 층을 지나며 분산이 유지되려면
이어야 합니다. 이것이 사비에 초기화이며, ReLU에서는 절반이 죽어 을 쓰는 것이 허 초기화입니다. 240강에서 다룹니다.
여섯째 줄이 가장 최근의 응용입니다. 확산모형은 데이터에 정규 잡음을 조금씩 더해 순수 잡음으로 만들고, 그 과정을 역으로 학습합니다. 문제 4의 합 성질 덕분에 여러 단계를 한 번에 뛰어넘을 수 있으며, 이것이 학습을 가능하게 하는 핵심 요령입니다.
import numpy as np, math
# --- 문제 1: 정규화 상수는 극좌표에서 나온다 ----------------------------
print(" I = 적분 e^{-x^2/2} dx 를 직접 계산합니다")
print(" 구간 [-L, L] 분할 M I 수치 I^2 2*pi 와의 차이")
for L, M in [(4.0, 200000), (8.0, 400000), (20.0, 2000000)]:
xs = -L + (np.arange(M) + 0.5)*(2*L/M)
I = float(np.exp(-xs*xs/2).sum()*(2*L/M))
print(" %14.1f %12d %15.10f %12.8f %16.2e" % (L, M, I, I*I, abs(I*I - 2*np.pi)))
print(" sqrt(2*pi) = %.10f 이며 I 가 이 값으로 수렴합니다" % np.sqrt(2*np.pi))
print(" I^2 을 이중적분으로 보고 극좌표로 바꾸는 것이 104강의 수법입니다")
print(" I^2 = 적분 e^{-r^2/2} r dr dtheta = 2*pi * [-e^{-r^2/2}] = 2*pi")
R, MR = 40.0, 2000000
rs = (np.arange(MR) + 0.5)*(R/MR)
val = float((np.exp(-rs*rs/2)*rs).sum()*(R/MR))
print(" 극좌표 반지름 적분 = %.10f (참값 1), 2*pi 배 = %.8f" % (val, 2*np.pi*val))
# I = 적분 e^{-x^2/2} dx 를 직접 계산합니다
# 구간 [-L, L] 분할 M I 수치 I^2 2*pi 와의 차이
# 4.0 200000 2.5064694986 6.28238935 7.96e-04
# 8.0 400000 2.5066282746 6.28318531 1.69e-14
# 20.0 2000000 2.5066282746 6.28318531 8.88e-16
# sqrt(2*pi) = 2.5066282746 이며 I 가 이 값으로 수렴합니다
# I^2 을 이중적분으로 보고 극좌표로 바꾸는 것이 104강의 수법입니다
# I^2 = 적분 e^{-r^2/2} r dr dtheta = 2*pi * [-e^{-r^2/2}] = 2*pi
# 극좌표 반지름 적분 = 1.0000000000 (참값 1), 2*pi 배 = 6.28318531
# --- 문제 2: 모수가 곧 평균과 분산이다 ----------------------------------
print(" N(mu, s^2) 의 밀도에서 mu 와 s 가 정확히 평균과 표준편차인지 확인합니다")
def moments(mu, s, L=14.0, M=4000000):
xs = mu - L*s + (np.arange(M) + 0.5)*(2*L*s/M)
w = np.exp(-((xs-mu)/s)**2/2)/(s*np.sqrt(2*np.pi))*(2*L*s/M)
tot = w.sum(); m = float(xs @ w)/tot
v = float(((xs-m)**2) @ w)/tot
return tot, m, v
print(" mu s 적분(=1) 평균 분산 s^2")
for mu, s in [(0.0, 1.0), (3.0, 2.0), (-1.0, 0.5)]:
tot, m, v = moments(mu, s)
print(" %7.1f %5.1f %13.10f %12.6f %12.6f %10.4f" % (mu, s, tot, m, v, s*s))
print(" 다른 분포와 달리 모수가 그대로 평균과 분산입니다. 이것이 정규분포의 편의성입니다")
# N(mu, s^2) 의 밀도에서 mu 와 s 가 정확히 평균과 표준편차인지 확인합니다
# mu s 적분(=1) 평균 분산 s^2
# 0.0 1.0 1.0000000000 -0.000000 1.000000 1.0000
# 3.0 2.0 1.0000000000 3.000000 4.000000 4.0000
# -1.0 0.5 1.0000000000 -1.000000 0.250000 0.2500
# 다른 분포와 달리 모수가 그대로 평균과 분산입니다. 이것이 정규분포의 편의성입니다
# --- 문제 3: 표준화하면 하나의 표로 끝난다 ------------------------------
Phi = lambda z: 0.5*(1 + math.erf(z/np.sqrt(2)))
print(" Z = (X - mu)/s 로 표준화하면 mu, s 와 무관해집니다")
print(" k P(|Z| <= k) 바깥 확률 약 몇 번에 한 번")
for k in [1, 2, 3, 4, 5, 6]:
inside = 2*Phi(k) - 1
out = 1 - inside
print(" %9d %15.10f %15.3e %18.0f" % (k, inside, out, 1/out))
print(" 68-95-99.7 규칙이 첫 세 줄입니다")
print(" 6 시그마가 품질관리 용어가 된 이유가 마지막 줄입니다")
print(" X ~ N(3, 2^2) 에서 확인합니다")
print(" 구간 직접 계산 표준화 후")
for k in [1, 2, 3]:
mu, s = 3.0, 2.0
direct = Phi((mu+k*s - mu)/s) - Phi((mu-k*s - mu)/s)
print(" mu +- %d s %15.10f %15.10f" % (k, direct, 2*Phi(k)-1))
# Z = (X - mu)/s 로 표준화하면 mu, s 와 무관해집니다
# k P(|Z| <= k) 바깥 확률 약 몇 번에 한 번
# 1 0.6826894921 3.173e-01 3
# 2 0.9544997361 4.550e-02 22
# 3 0.9973002039 2.700e-03 370
# 4 0.9999366575 6.334e-05 15787
# 5 0.9999994267 5.733e-07 1744278
# 6 0.9999999980 1.973e-09 506797317
# 68-95-99.7 규칙이 첫 세 줄입니다
# 6 시그마가 품질관리 용어가 된 이유가 마지막 줄입니다
# X ~ N(3, 2^2) 에서 확인합니다
# 구간 직접 계산 표준화 후
# mu +- 1 s 0.6826894921 0.6826894921
# mu +- 2 s 0.9544997361 0.9544997361
# mu +- 3 s 0.9973002039 0.9973002039
# --- 문제 4: 선형변환과 합에 닫혀 있다 ----------------------------------
print(" aX + b 와 독립 합이 모두 정규분포로 남습니다")
print(" 변환 평균 분산 정규인가")
print(" %-22s %12.4f %12.4f %10s" % ("X ~ N(2, 9)", 2.0, 9.0, True))
print(" %-22s %12.4f %12.4f %10s" % ("3X - 1", 3*2.0-1, 9*9.0, True))
print(" %-22s %12.4f %12.4f %10s" % ("(X-2)/3 표준화", 0.0, 1.0, True))
print(" 독립 합을 합성곱으로 확인합니다. N(0,1) + N(0,1) = N(0,2) 인가")
L, M = 12.0, 24000
xs = -L + (np.arange(M) + 0.5)*(2*L/M); dx = 2*L/M
g = lambda t, s2: np.exp(-t*t/(2*s2))/np.sqrt(2*np.pi*s2)
p = g(xs, 1.0)
conv = np.convolve(p, p)*dx
cx = -2*L + (np.arange(len(conv)) + 0.5)*dx
tgt = g(cx, 2.0)
print(" 격자점 z 합성곱 N(0,2) 이론 차이")
for z in [0.0, 1.0, 2.0, 3.0]:
i = int(np.argmin(np.abs(cx - z)))
print(" %12.6f %14.10f %16.10f %12.2e" % (cx[i], conv[i], tgt[i], abs(conv[i]-tgt[i])))
print(" 전체 최대 차이 %.2e 이며 격자 간격 dx = %.6f 에서 오는 이산화 오차입니다"
% (np.abs(conv - tgt).max(), dx))
# aX + b 와 독립 합이 모두 정규분포로 남습니다
# 변환 평균 분산 정규인가
# X ~ N(2, 9) 2.0000 9.0000 True
# 3X - 1 5.0000 81.0000 True
# (X-2)/3 표준화 0.0000 1.0000 True
# 독립 합을 합성곱으로 확인합니다. N(0,1) + N(0,1) = N(0,2) 인가
# 격자점 z 합성곱 N(0,2) 이론 차이
# -0.000500 0.2820947918 0.2820947741 1.76e-08
# 0.999500 0.2196956447 0.2197505618 5.49e-05
# 1.999500 0.1037768744 0.1038287693 5.19e-05
# 2.999500 0.0297325723 0.0297548782 2.23e-05
# 전체 최대 차이 6.05e-05 이며 격자 간격 dx = 0.001000 에서 오는 이산화 오차입니다
# --- 문제 5: 같은 분산이면 정규분포가 가장 무질서하다 -------------------
print(" 분산이 1 로 같은 분포들의 미분 엔트로피를 비교합니다")
def H(dens, lo, hi, M=4000000):
xs = lo + (np.arange(M) + 0.5)*(hi-lo)/M
d = dens(xs); w = (hi-lo)/M
m = d > 1e-300
return float(-(d[m]*np.log(d[m])).sum()*w)
b = 1/np.sqrt(2)
half = np.sqrt(3.0)
print(" 분포 밀도 최댓값 미분 엔트로피 이론값")
rows = [("정규 N(0,1)", lambda t: np.exp(-t*t/2)/np.sqrt(2*np.pi), -20.0, 20.0,
0.5*np.log(2*np.pi*np.e)),
("라플라스", lambda t: np.exp(-np.abs(t)/b)/(2*b), -40.0, 40.0, 1 + np.log(2*b)),
("균등", lambda t: np.where(np.abs(t) <= half, 1/(2*half), 0.0), -4.0, 4.0,
np.log(2*half))]
for nm, d, lo, hi, th in rows:
print(" %-16s %12.6f %16.8f %14.8f" % (nm, d(np.array([0.0]))[0], H(d, lo, hi), th))
print(" 정규분포가 가장 큽니다. 분산만 정해졌을 때 가장 정보가 적은 분포입니다")
# 분산이 1 로 같은 분포들의 미분 엔트로피를 비교합니다
# 분포 밀도 최댓값 미분 엔트로피 이론값
# 정규 N(0,1) 0.398942 1.41893853 1.41893853
# 라플라스 0.707107 1.34657359 1.34657359
# 균등 0.288675 1.24245275 1.24245332
# 정규분포가 가장 큽니다. 분산만 정해졌을 때 가장 정보가 적은 분포입니다
문제 1의 첫 줄과 둘째 줄의 차이가 극적입니다. 에서 자르면 오차가 인데 이면 로 열 자리가 좋아집니다. 꼬리가 로 줄기 때문이며, 심화 3의 가벼운 꼬리가 여기서 실용적으로 드러납니다.
문제 3의 마지막 열이 육 시그마의 정체입니다. 에서 번에 한 번인데 에서 억 번에 한 번이 됩니다. 가 두 배인데 희소성은 백만 배이며, 지수가 에 대해 이차이기 때문입니다.
문제 5의 세 줄이 "정규분포를 기본값으로 쓰라"는 조언의 근거입니다. 분산이 모두 로 같은데 엔트로피는 정규가 가장 큽니다. 아는 것이 평균과 분산뿐이라면 정규분포가 가장 적게 가정하는 선택입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 정규분포 | 평균과 분산이 모수입니다 | |
| 표준정규 밀도 | 입니다 | |
| 표준정규 분포함수 | 초등함수가 아닙니다 | |
| \operatorname | 오차함수 | 를 표현합니다 |
| 가우스 적분 | Gaussian integral | 극좌표로 유도합니다 |
| 표준화 | standardization | 입니다 |
| 점수 | z-score | 표준편차 단위의 거리입니다 |
| 최대 엔트로피 | maximum entropy | 가장 적게 가정합니다 |
| 부분가우스 | sub-Gaussian | 꼬리가 정규 이하로 억제됩니다 |
| 박스뮐러 | Box-Muller | 극좌표로 정규난수를 만듭니다 |
| 사비에 초기화 | Xavier initialization | 분산을 로 둡니다 |
| 안정분포 | stable distribution | 합이 스케일만 바뀝니다 |
다음 131강에서는 지수분포와 감마분포를 다룹니다. 128강 심화 2에서 예고한 대로 포아송 과정의 대기시간이 지수분포이고, 번째 사건까지의 시간이 감마분포입니다. 129강 심화 4의 위험률이 상수라는 성질로 지수분포를 특징짓고, 감마분포가 127강 심화 4의 베타분포와 함께 켤레 사전으로 쓰이는 것을 봅니다. 이것으로 02단원이 마무리됩니다.