132강에서 분포를 하나의 수로 요약했습니다. 그런데 그 하나로는 부족합니다.
두 분포의 평균이 모두 인데 전혀 다릅니다. 중심은 같고 퍼짐이 다릅니다.
퍼짐을 재는 표준 척도가 분산입니다.
132강 문제 5에서 이미 나왔습니다. 제곱오차를 분해하면
이고 첫 항이 어떤 를 골라도 줄일 수 없는 부분이었습니다. 분산은 예측의 한계입니다.
그런데 왜 하필 제곱입니까. 절댓값도 퍼짐을 재고 최대편차도 잽니다. 문제 2에서 답합니다.
| 척도 | 미분가능 | 합에 대한 성질 |
|---|---|---|
| 제곱편차 | 어디서나 | 독립이면 더해집니다 |
| 절대편차 | 에서 꺾입니다 | 단순한 규칙이 없습니다 |
| 최대편차 | 아닙니다 | 없습니다 |
둘째 열과 셋째 열이 제곱을 고르는 이유이며, 이 강의의 절반이 그것을 보입니다.
문제. 분산을 두 방식으로 계산합니다.
(1) 주사위 두 개의 합에서 정의식과 계산식을 비교하세요.
(2) 평균이 큰 자료에서 다시 비교하세요.
(3) 차이가 나는 이유를 밝히세요.
생각의 실마리. 두 식은 대수적으로 같습니다. 그런데 컴퓨터에서 같으리라는 보장은 없습니다. 92강에서 배운 것이 여기서 다시 나옵니다.
풀이. (1) 검산 결과입니다.
| 방식 | 값 |
|---|---|
| 정의식 | |
| 계산식 \mathbb{E}[X^{2}]-\mathbb{E}[X]^ |
**차이가 **이고 표준편차는 입니다.
(2) 자료 에 상수 를 더해 평균만 옮깁니다. 분산은 변하지 않아야 합니다.
| 평균 | 정의식 분산 | 계산식 분산 | 계산식의 상대오차 |
|---|---|---|---|
| 10^ | 5.82\times10^ | ||
| 10^ | 6.10\times10^ | ||
| 10^ | |||
| 10^ |
에서 계산식이 정확히 을 냅니다. 상대오차가 이며 완전히 틀린 답입니다.
(3) 92강의 파국적 상쇄입니다.
이 문제에서 배우는 것: 분산의 정의와 계산식.
분산.
표준편차. 이며 원래 변수와 단위가 같습니다.
두 식이 같은 것은 전개로 나옵니다. LOTUS로
표준편차를 함께 쓰는 이유가 단위입니다. 키의 분산은 이라 해석하기 어렵지만 표준편차는 입니다.
파국적 상쇄. 계산식은 과 이 거의 같을 때 위험합니다.
이면 두 항이 모두 약 인데 차이는 입니다. 배정밀도 부동소수점의 유효숫자가 약 자리이므로 차이가 통째로 사라집니다.
대응이 두 가지 있습니다.
| 방법 | 내용 |
|---|---|
| 평균 이동 | 대략적인 중심을 빼고 계산합니다 |
| 웰퍼드 알고리즘 | 한 번 훑으며 안정적으로 갱신합니다 |
웰퍼드 알고리즘이 표준입니다. 관측을 하나씩 받으며 평균과 제곱합을 함께 갱신합니다.
빼는 두 수가 언제나 가까워 상쇄가 일어나지 않습니다. 스트리밍 자료에도 쓸 수 있어 실무 라이브러리의 기본 구현입니다.
바로 확인 1.
확인 1-1. 분산의 두 식을 쓰세요.
답. 과 입니다.
확인 1-2. 표준편차를 함께 쓰는 이유를 쓰세요.
답. 원래 변수와 단위가 같아 해석하기 쉽기 때문입니다.
확인 1-3. 계산식이 위험해지는 조건과 대응을 쓰세요.
답. 평균이 표준편차보다 훨씬 클 때이며 평균 이동이나 웰퍼드 알고리즘을 씁니다.
문제. 퍼짐을 재는 세 후보를 비교합니다.
(1) 분산, 평균절대편차, 최대편차를 같은 분포에서 계산하세요.
(2) 각각이 에 대해 미분가능한지 보세요.
(3) 독립인 두 변수의 합에서 어떤 성질이 있는지 확인하세요.
생각의 실마리. 척도를 고르는 기준은 값 자체가 아니라 다루기 좋은 성질입니다. 미분할 수 있는지, 더할 수 있는지를 봅니다.
풀이. (1)(2) 검산 결과입니다.
| 척도 | 값 | 에 대해 미분가능한가 |
|---|---|---|
| 분산 | 그렇습니다 | |
| 평균절대편차 | 에서 꺾입니다 | |
| 최대편차 | 아닙니다 |
(3) 독립인 두 주사위에서 확인합니다.
| 의 분산 | 의 분산 | 합의 분산(수치) | 두 분산의 합 |
|---|---|---|---|
정확히 같습니다. 그리고 차 의 분산도 으로 같습니다. 부호가 아니라 크기만 더해집니다.
이 문제에서 배우는 것: 제곱을 고르는 이유.
세 가지 이유.
첫째로 어디서나 미분가능해 최적화에 쓸 수 있습니다.
둘째로 독립이면 정확히 더해집니다.
셋째로 기하적으로 직교 분해에 대응합니다.
둘째가 결정적입니다. 평균절대편차에는 이런 규칙이 없습니다. 독립인 두 변수의 합에서 를 각각의 평균절대편차로 쓸 방법이 없습니다.
셋째를 조금 더 봅니다. 확률변수를 벡터로, 를 내적으로 보면
이며 63강의 내적공간 구조가 나타납니다. 평균이 인 독립 변수는 직교하므로
피타고라스 정리입니다. 검산의 셋째 표가 바로 이 식입니다.
이 관점이 여러 것을 설명합니다.
| 확률의 개념 | 내적공간의 개념 |
|---|---|
| 분산 | 노름의 제곱 |
| 표준편차 | 노름 |
| 공분산 | 내적 |
| 상관계수 | 각도의 코사인 |
| 독립이면 무상관 | 직교 |
| 조건부기댓값 | 정사영 |
마지막 줄이 137강의 주제이며, 80강의 정사영이 그대로 옮겨집니다. 제곱오차를 최소화하는 것이 정사영을 구하는 것이며, 82강의 최소제곱과 같은 구조입니다.
절대편차가 쓸모없는 것은 아닙니다. 132강 문제 5에서 절대오차의 최소점이 중앙값이었고, 이상치에 강건합니다. 다만 대수적으로 다루기 어려워 이론의 기본 척도는 분산입니다.
바로 확인 2.
확인 2-1. 제곱을 고르는 세 이유를 쓰세요.
답. 미분가능하고, 독립이면 더해지며, 직교 분해에 대응하기 때문입니다.
확인 2-2. 분산을 내적공간의 무엇으로 읽습니까?
답. 노름의 제곱이며 공분산이 내적입니다.
확인 2-3. 와 의 관계를 쓰세요.
답. 독립이면 같습니다. 부호가 아니라 크기만 더해집니다.
문제. 와 합의 분산을 봅니다.
(1) 여러 에서 변환 후 분산을 계산하세요.
(2) 와 비교하세요.
(3) 독립이 아닌 쌍에서 합의 분산을 확인하세요.
생각의 실마리. 평행이동은 퍼짐을 바꾸지 않고 확대는 바꿉니다. 얼마나 바꾸는지가 문제입니다.
풀이. (1)(2) 검산 결과입니다.
| 변환 후 평균 | 변환 후 분산 | |||
|---|---|---|---|---|
는 분산에 영향이 없고 는 제곱으로 들어갑니다. 셋째 줄에서 인데 분산이 양수인 것도 제곱 때문입니다.
(3) 독립이 아닌 쌍에서는 항이 하나 더 붙습니다.
| 쌍 | 2\operatorname | ||
|---|---|---|---|
| 첫 눈, 둘째 눈 (독립) | |||
| 첫 눈, 합 (종속) | |||
| 첫 눈, 첫 눈 |
셋째 줄이 극단입니다. 이므로 분산이 인데, 각각의 분산을 더하면 입니다. 공분산이 정확히 그만큼 음수입니다.
이 문제에서 배우는 것: 분산의 변환 규칙.
선형변환.
합.
표준편차에는 절댓값이 붙습니다. 분산이 제곱 단위이기 때문이며, 130강 문제 4에서 정규분포에 같은 규칙을 썼습니다.
가 사라지는 것이 분산의 정의에서 바로 나옵니다.
중심에서의 거리만 재므로 통째로 옮겨도 같습니다.
공분산. 이며 독립이면 입니다.
138강에서 정식으로 다루지만 여기서 필요합니다. 여러 개로 늘리면
교차항이 개이므로 상관이 조금만 있어도 크게 어긋납니다.
실무에서 이것이 중요한 자리가 있습니다.
| 상황 | 무엇이 어긋나는가 |
|---|---|
| 시계열 자료의 표준오차 | 자기상관 때문에 과소평가됩니다 |
| 같은 사용자의 여러 기록 | 군집 상관 때문에 좁아집니다 |
| 포트폴리오 위험 | 자산 간 상관이 분산 효과를 줄입니다 |
| 앙상블 모형의 오차 | 모형이 비슷하면 이득이 작습니다 |
넷째 줄이 앙상블의 원리입니다. 모형 개를 평균내면 분산이 로 줄어야 하는데, 모형들이 상관되어 있으면 그만큼 줄지 않습니다. 다양성을 만드는 것이 앙상블 설계의 핵심인 이유입니다.
바로 확인 3.
확인 3-1. 와 표준편차의 변환을 쓰세요.
답. 이고 표준편차는 배입니다.
확인 3-2. 합의 분산을 일반형으로 쓰세요.
답. 입니다.
확인 3-3. 가 인데 각 분산의 합은 양수인 이유를 쓰세요.
답. 공분산이 정확히 그만큼 음수이기 때문입니다.
문제. 독립 표본 개의 평균 를 봅니다.
(1) 를 구하세요.
(2) 을 네 배씩 키우며 표준오차를 보세요.
(3) 정확도를 배 올리려면 표본이 몇 배 필요한지 쓰세요.
생각의 실마리. 이므로 문제 3의 두 규칙을 함께 씁니다. 합의 분산은 더해지고, 을 곱하면 제곱으로 들어갑니다.
풀이. (1) 독립이므로
(2) 검산 결과입니다.
| 표준오차 | 앞 줄 대비 감소 | |||
|---|---|---|---|---|
| 없습니다 | ||||
이 네 배가 되면 표준오차가 정확히 절반입니다.
(3) 표준오차가 이므로 배 줄이려면 이 배 필요합니다.
| 원하는 표준오차 배율 | 필요한 배율 |
|---|---|
이 문제에서 배우는 것: 제곱근 법칙.
표본평균의 분산. 가 독립이고 분산이 이면
을 표준오차라 부릅니다. 표준편차와 구별해야 합니다.
| 양 | 무엇의 퍼짐인가 |
|---|---|
| 표준편차 | 개별 관측의 퍼짐 |
| 표준오차 | 표본평균의 퍼짐 |
표준편차는 과 무관하고 표준오차만 줄어듭니다. 자료를 많이 모아도 개별 값들이 덜 흩어지지는 않습니다. 평균의 추정이 정확해질 뿐입니다.
제곱근 법칙의 대가. 정확도를 열 배 올리려면 표본이 백 배 필요합니다.
이것이 통계와 실험 설계의 근본 제약입니다.
| 분야 | 제곱근 법칙의 결과 |
|---|---|
| A/B 테스트 | 작은 개선일수록 표본이 제곱으로 늘어납니다 |
| 몬테카를로 | 오차가 로만 줄어듭니다 |
| 여론조사 | 명이면 오차가 약 입니다 |
| 미니배치 학습 | 배치를 네 배 키워야 잡음이 절반입니다 |
넷째 줄이 학습률 스케일링과 이어집니다. 배치 크기를 키우면 기울기 잡음의 표준편차가 로 줄고, 그만큼 학습률을 올릴 여지가 생깁니다. 119강 심화 5의 잡음 크기가 에 비례한다는 것과 함께 보면 선형 스케일링 법칙이 나옵니다.
셋째 줄의 도 이 공식입니다. 비율의 분산이 최대 이므로 표준오차가 이고, 구간이 약 입니다. 모집단 크기와 무관하다는 점이 직관에 반하지만, 127강 심화 1의 유한모집단 보정이 무시할 만하기 때문입니다.
바로 확인 4.
확인 4-1. 표본평균의 분산과 표준오차를 쓰세요.
답. 과 입니다.
확인 4-2. 표준편차와 표준오차의 차이를 쓰세요.
답. 개별 관측의 퍼짐과 표본평균의 퍼짐입니다.
확인 4-3. 정확도를 배 올리려면 표본이 몇 배 필요합니까?
답. 배입니다.
문제. 두 정규분포의 혼합에서 분산을 봅니다. 이면 , 이면 이며 각 확률이 입니다.
(1) 전체 분산을 계산하세요.
(2) 집단 안의 분산과 집단 사이의 분산을 각각 구하세요.
(3) 셋의 관계를 확인하세요.
생각의 실마리. 혼합분포의 퍼짐은 두 가지에서 옵니다. 각 집단 안에서 퍼진 것과 집단들의 중심이 서로 떨어진 것입니다.
풀이. 검산 결과입니다.
| \mu_ | 전체 분산 | 합 | 차이 | ||
|---|---|---|---|---|---|
| 4.55\times10^ | |||||
| 8.88\times10^ | |||||
| 1.87\times10^ | |||||
| 1.49\times10^ |
네 줄 모두 정확히 더해집니다.
**첫 줄에서 두 성분이 같으므로 집단 사이 분산이 **이고, 마지막 줄에서는 집단 사이가 전체의 를 차지합니다.
이 문제에서 배우는 것: 전체 분산 법칙.
전체 분산 법칙.
132강 심화 3의 전체 기댓값 법칙에 대응하는 분산판입니다. 137강에서 증명하며, 지금은 두 조각의 뜻이 중요합니다.
| 항 | 이름 | 뜻 |
|---|---|---|
| 집단 내 분산 | 각 집단 안의 평균적 퍼짐 | |
| 집단 간 분산 | 집단 중심들의 퍼짐 |
이 분해가 여러 곳에서 이름을 바꿔 나타납니다.
| 분야 | 이름 | 두 조각 |
|---|---|---|
| 분산분석 | ANOVA | 급내 변동과 급간 변동 |
| 과산포 진단 | 128강 심화 1 | 발생률의 변동이 둘째 항 |
| 편향-분산 분해 | 210강 | 잡음과 모형 변동 |
| 계층 모형 | 다수준 회귀 | 개체 내와 개체 간 |
둘째 줄이 128강에서 예고한 것입니다. 포아송에서 가 개체마다 다르면
이고 둘째 항만큼 평균보다 커집니다. 과산포의 정체가 이 식입니다.
함의 하나. 조건을 걸면 분산이 줄어듭니다.
둘째 항이 비음이기 때문이며, 정보를 얻으면 불확실성이 평균적으로 줄어든다는 뜻입니다. 다만 평균적으로입니다. 특정 에서는 분산이 커질 수도 있습니다.
이 부등식이 특징 공학의 근거입니다. 예측에 도움이 되는 변수를 조건으로 걸면 남은 불확실성이 줄어들며, 그 줄어든 양이 그 변수의 설명력입니다.
바로 확인 5.
확인 5-1. 전체 분산 법칙을 쓰세요.
답. 입니다.
확인 5-2. 두 항의 이름과 뜻을 쓰세요.
답. 집단 내 분산과 집단 간 분산이며 각각 안의 퍼짐과 중심들의 퍼짐입니다.
확인 5-3. 조건을 걸면 분산이 어떻게 됩니까?
답. 평균적으로 줄어들며 특정 값에서는 커질 수도 있습니다.
| 개념 | 식 |
|---|---|
| 분산 | \mathbb{E}[(X-\mu)^{2}]=\mathbb{E}[X^{2}]-\mu^ |
| 표준편차 | |
| 선형변환 | |
| 합 | \operatorname{Var}X+\operatorname{Var}Y+2\operatorname |
| 표본평균 | |
| 표준오차 | |
| 전체 분산 법칙 |
| 확률 | 내적공간 |
|---|---|
| 분산 | 노름의 제곱 |
| 공분산 | 내적 |
| 상관계수 | 코사인 |
| 독립 합의 분산 | 피타고라스 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 계산식을 큰 평균에 씁니다 | 파국적 상쇄가 납니다 |
| 표준편차에 을 곱합니다 | 입니다 |
| 상관된 자료에 을 씁니다 | 공분산 항이 빠졌습니다 |
| 표준편차와 표준오차를 혼동합니다 | 후자만 에 의존합니다 |
문제 6. 분산의 두 식을 쓰세요.
답. 과 입니다.
문제 7. 표준편차를 함께 쓰는 이유를 쓰세요.
답. 원래 변수와 단위가 같기 때문입니다.
문제 8. 계산식이 위험해지는 조건을 쓰세요.
답. 평균이 표준편차보다 훨씬 클 때이며 파국적 상쇄가 납니다.
문제 9. 웰퍼드 알고리즘이 안전한 이유를 쓰세요.
답. 빼는 두 수가 언제나 가까워 상쇄가 일어나지 않습니다.
문제 10. 제곱을 고르는 세 이유를 쓰세요.
답. 미분가능하고, 독립이면 더해지며, 직교 분해에 대응합니다.
문제 11. 분산을 내적공간의 무엇으로 읽는지 쓰세요.
답. 노름의 제곱이며 공분산이 내적입니다.
문제 12. 와 표준편차의 변환을 쓰세요.
답. 이고 표준편차는 배입니다.
문제 13. 합의 분산을 일반형으로 쓰세요.
답. 입니다.
문제 14. 개 합의 분산에서 교차항의 개수를 쓰세요.
답. 개입니다.
문제 15. 표본평균의 분산과 표준오차를 쓰세요.
답. 과 입니다.
문제 16. 표준편차와 표준오차의 차이를 쓰세요.
답. 개별 관측의 퍼짐과 표본평균의 퍼짐입니다.
문제 17. 정확도를 배 올리려면 표본이 몇 배 필요한지 쓰세요.
답. 배입니다.
문제 18. 전체 분산 법칙과 두 항의 뜻을 쓰세요.
답. 이며 집단 내 퍼짐과 집단 간 퍼짐입니다.
심화 1. 표본분산의 이 어디서 오는지 설명하세요.
자료에서 분산을 추정할 때 분모가 이 아니라 입니다.
분모가 이면 과소추정하기 때문입니다. 이유는 가 자료에서 나왔다는 데 있습니다.
132강 문제 5의 분해를 씁니다. 참 평균 대신 를 쓰면
이고 기댓값을 취하면
**둘째 항이 문제 4의 **입니다. 따라서 로 나눠야 불편추정량이 됩니다.
자유도로 읽는 방법도 있습니다. 편차 들은 합이 이라는 제약을 하나 받으므로 자유롭게 움직이는 것이 개입니다. 74강의 차원 계산과 같은 논리입니다.
주의할 점이 있습니다. 은 의 불편추정량이지만 는 의 불편추정량이 아닙니다. 젠센 부등식으로 이며, 제곱근이 오목하기 때문입니다.
실무에서 과 의 차이는 대개 작습니다. 이면 이고, 어느 쪽을 쓰는지 명시하는 것이 더 중요합니다. 라이브러리마다 기본값이 다릅니다.
심화 2. 분산의 다른 표현들을 모으세요.
분산을 다르게 쓰면 새로운 계산법이 열립니다.
첫째로 쌍 표현입니다. 와 이 독립이고 같은 분포를 따르면
평균을 몰라도 계산됩니다. 두 관측의 차이만 쓰므로 중심이 필요 없고, 문제 1의 파국적 상쇄도 자연히 피합니다.
둘째로 꼬리 표현입니다. 132강 심화 2의 공식을 확장하면
꼬리확률만 알면 이차 적률이 나옵니다.
셋째로 적률생성함수 표현입니다. 134강에서 다루며
미분 두 번으로 끝납니다.
넷째로 지니 평균차와의 관계입니다.
는 퍼짐의 또 다른 척도이며 불평등 측정에 쓰입니다. 분산과 달리 제곱하지 않아 이상치에 덜 민감하고, 첫째 표현과 나란히 놓으면 제곱과 절댓값의 차이가 선명합니다.
심화 3. 분산이 존재하지 않는 경우를 정리하세요.
132강 문제 4에서 기댓값이 없을 수 있다고 했습니다. 분산은 더 쉽게 없어집니다.
이고 이것은 보다 강한 조건입니다.
| 꼬리 | 평균 | 분산 |
|---|---|---|
| (코시) | 없습니다 | 없습니다 |
| x^ | 있습니다 | 없습니다 |
| x^ | 있습니다 | 있습니다 |
둘째 줄이 실무에서 자주 나타납니다. 파레토분포 가 이 경우이며, 평균은 안정되는데 표준오차가 안정되지 않습니다. 신뢰구간을 만들 수 없습니다.
진단 방법이 있습니다. 표본분산을 을 늘려가며 그려 보아 계속 커지면 분산이 없다는 신호입니다. 새 극단값이 나올 때마다 뛰어오릅니다.
대응은 세 가지입니다.
| 방법 | 내용 |
|---|---|
| 절단 또는 윈저화 | 극단값을 상한으로 자릅니다 |
| 로그 변환 | 꼬리를 압축합니다 |
| 분위수 기반 척도 | 사분위 범위를 씁니다 |
첫째 줄이 기울기 클리핑입니다. 132강 문제 4에서 예고한 대로, 노름에 상한을 씌워 강제로 유한한 분산을 만듭니다.
심화 4. 분산 감소 기법을 정리하세요.
몬테카를로 추정의 오차가 이므로, 을 늘리는 대신 분산 자체를 줄이는 방법이 있습니다.
대조변수가 대표입니다. 기댓값을 아는 가 와 상관되어 있으면
는 여전히 불편이고 분산이
입니다. 에 대한 이차식이므로 최소점이 있습니다.
상관계수의 제곱만큼 줄어듭니다. 면 분산이 로 줄어 표본을 다섯 배 늘린 효과입니다.
강화학습의 기준선이 정확히 이것입니다. 정책경사 추정에서
의 가 대조변수이며, 기댓값을 바꾸지 않으면서 분산만 줄입니다. 286강에서 다룹니다.
다른 기법들도 같은 구조입니다.
| 기법 | 어떻게 분산을 줄이는가 |
|---|---|
| 대조표본 | 음의 상관을 갖는 쌍을 씁니다 |
| 층화 표집 | 집단 간 분산을 제거합니다 |
| 중요도 표집 | 기여가 큰 영역을 더 뽑습니다 |
| 라오블랙웰화 | 조건부기댓값으로 대체합니다 |
둘째 줄이 문제 5의 분해와 직결됩니다. 층을 나눠 각 층에서 뽑으면 집단 간 분산이 사라지고 집단 내 분산만 남습니다.
넷째 줄도 그렇습니다. 로 대체하면 전체 분산 법칙의 첫째 항이 사라지므로 분산이 반드시 줄어듭니다. 라오블랙웰 정리라 하며 148강에서 다룹니다.
심화 5. 첨도와 꼬리의 두께를 개관하세요.
분산은 퍼짐을 재지만 모양은 재지 못합니다. 같은 분산에 전혀 다른 모양이 가능합니다.
첨도. 이며 정규분포에서 입니다.
초과첨도 을 쓰는 것이 관행입니다.
| 분포 | 첨도 | 초과첨도 |
|---|---|---|
| 균등 | ||
| 정규 | ||
| 라플라스 | ||
| 지수 | ||
| 코시 | 없습니다 | 없습니다 |
초과첨도가 양수면 정규보다 꼬리가 두껍고 가운데가 뾰족합니다.
130강 심화 5의 진단이 이것입니다. 금융 수익률의 초과첨도가 대개 에서 사이이며, 정규분포 가정이 극단 위험을 과소평가하는 이유입니다.
주의할 점이 있습니다. 첨도는 사차 적률이라 추정이 매우 불안정합니다. 이상치 하나가 값을 크게 바꾸며, 표본 첨도의 표준오차가 이라 이면 약 입니다. 작은 표본에서는 신뢰하기 어렵습니다.
134강에서 적률을 일반적으로 다루며, 왜도와 첨도가 각각 삼차와 사차 적률임을 봅니다.
심화 6. 분산이 기계학습에서 나타나는 자리를 정리하세요.
| 자리 | 어떤 분산인가 |
|---|---|
| 편향-분산 분해 | 훈련집합에 대한 모형의 변동 |
| 미니배치 기울기 | 배치 선택에 대한 기울기의 변동 |
| 배치 정규화 | 활성값의 분산을 로 맞춤 |
| 가중치 초기화 | 층을 지나며 분산 유지 |
| 드롭아웃 | 잡음 주입으로 분산 증가 |
| 앙상블 | 상관이 낮을수록 분산 감소 |
| 정책경사 | 기준선으로 분산 감소 |
첫째 줄이 210강의 주제이며 문제 5의 분해와 같은 구조입니다.
셋 중 첫째만 줄일 수 없습니다.
넷째 줄이 130강 심화 6에서 유도한 것입니다. 층의 출력 분산이 이므로 유지하려면 이어야 합니다. 문제 3의 곱 규칙과 문제 4의 합 규칙이 함께 쓰인 계산입니다.
둘째 줄과 여섯째 줄이 짝입니다. 미니배치 기울기의 분산이 이므로 배치를 키우면 잡음이 줄고, 앙상블 모형 개의 평균도 상관이 없으면 분산이 로 줄어듭니다. 둘 다 문제 4의 제곱근 법칙이며, 상관이 있으면 둘 다 이득이 작아집니다.
import numpy as np, itertools
S = list(itertools.product(range(1, 7), repeat=2))
N = len(S)
vals = sorted({a+b for a, b in S})
pmf = {v: sum(1 for w in S if w[0]+w[1] == v)/N for v in vals}
mu = sum(v*pmf[v] for v in vals)
# --- 문제 1: 두 공식은 같지만 수치 성질이 다르다 ------------------------
print(" 주사위 두 개의 합. 정의식과 계산식을 비교합니다")
d1 = sum((v-mu)**2*pmf[v] for v in vals)
d2 = sum(v*v*pmf[v] for v in vals) - mu*mu
print(" 정의식 E[(X-mu)^2] %14.10f" % d1)
print(" 계산식 E[X^2]-E[X]^2 %14.10f" % d2)
print(" 차이 %.2e, 표준편차 %.8f" % (abs(d1-d2), np.sqrt(d1)))
print(" 그런데 평균이 크고 분산이 작으면 계산식이 무너집니다")
print(" 평균 c 정의식 분산 계산식 분산 계산식의 상대오차")
base = np.array([-1.0, 0.0, 1.0]) # 분산이 정확히 2/3
for c in [0.0, 1e3, 1e6, 1e8, 1e9]:
x = base + c
m = x.mean()
v_def = float(((x-m)**2).mean())
v_cal = float((x*x).mean() - m*m)
print(" %11.0e %16.10f %16.10f %18.2e"
% (c, v_def, v_cal, abs(v_cal - 2/3)/(2/3)))
print(" 92강의 파국적 상쇄입니다. 거의 같은 두 큰 수를 빼면 유효숫자가 날아갑니다")
print(" 실무에서는 평균을 먼저 빼거나 웰퍼드 알고리즘을 씁니다")
# 주사위 두 개의 합. 정의식과 계산식을 비교합니다
# 정의식 E[(X-mu)^2] 5.8333333333
# 계산식 E[X^2]-E[X]^2 5.8333333333
# 차이 4.44e-15, 표준편차 2.41522946
# 그런데 평균이 크고 분산이 작으면 계산식이 무너집니다
# 평균 c 정의식 분산 계산식 분산 계산식의 상대오차
# 0e+00 0.6666666667 0.6666666667 0.00e+00
# 1e+03 0.6666666667 0.6666666666 5.82e-11
# 1e+06 0.6666666667 0.6666259766 6.10e-05
# 1e+08 0.6666666667 0.0000000000 1.00e+00
# 1e+09 0.6666666667 0.0000000000 1.00e+00
# 92강의 파국적 상쇄입니다. 거의 같은 두 큰 수를 빼면 유효숫자가 날아갑니다
# 실무에서는 평균을 먼저 빼거나 웰퍼드 알고리즘을 씁니다
# --- 문제 2: 왜 하필 제곱인가 -------------------------------------------
print(" 퍼짐을 재는 후보 셋을 같은 분포에서 비교합니다")
print(" 척도 값 c 에 대해 미분 가능한가")
print(" %-22s %10.6f %20s" % ("E[(X-mu)^2] 분산", d1, "그렇습니다"))
print(" %-22s %10.6f %20s" % ("E[|X-mu|] 평균절대편차",
sum(abs(v-mu)*pmf[v] for v in vals), "mu 에서 꺾입니다"))
print(" %-22s %10.6f %20s" % ("최대편차", max(abs(v-mu) for v in vals), "아닙니다"))
print(" 제곱을 쓰면 피타고라스 구조가 생깁니다. 독립이면 분산이 직각삼각형처럼 더해집니다")
print(" X 의 분산 Y 의 분산 합의 분산(수치) 두 분산의 합")
A = {w: w[0] for w in S}; B = {w: w[1] for w in S}
def var_of(f):
m = sum(f(w) for w in S)/N
return sum((f(w)-m)**2 for w in S)/N
vA = var_of(lambda w: w[0]); vB = var_of(lambda w: w[1])
vS = var_of(lambda w: w[0]+w[1]); vD = var_of(lambda w: w[0]-w[1])
print(" %11.6f %11.6f %16.6f %15.6f" % (vA, vB, vS, vA+vB))
print(" 차 X-Y 의 분산도 %.6f 로 같습니다. 부호가 아니라 크기만 더해집니다" % vD)
# 퍼짐을 재는 후보 셋을 같은 분포에서 비교합니다
# 척도 값 c 에 대해 미분 가능한가
# E[(X-mu)^2] 분산 5.833333 그렇습니다
# E[|X-mu|] 평균절대편차 1.944444 mu 에서 꺾입니다
# 최대편차 5.000000 아닙니다
# 제곱을 쓰면 피타고라스 구조가 생깁니다. 독립이면 분산이 직각삼각형처럼 더해집니다
# X 의 분산 Y 의 분산 합의 분산(수치) 두 분산의 합
# 2.916667 2.916667 5.833333 5.833333
# 차 X-Y 의 분산도 5.833333 로 같습니다. 부호가 아니라 크기만 더해집니다
# --- 문제 3: 분산의 변환 규칙 -------------------------------------------
print(" Var[aX+b] = a^2 Var[X] 를 확인합니다")
print(" a b 변환 후 평균 변환 후 분산 a^2 * Var[X]")
for a, b in [(1.0, 5.0), (2.0, 0.0), (-3.0, 1.0), (0.5, -2.0)]:
m2 = sum((a*v+b)*pmf[v] for v in vals)
v2 = sum((a*v+b-m2)**2*pmf[v] for v in vals)
print(" %9.1f %6.1f %14.6f %14.6f %15.6f" % (a, b, m2, v2, a*a*d1))
print(" b 는 분산에 영향이 없고 a 는 제곱으로 들어갑니다")
print(" 독립이 아니면 공분산 항이 붙습니다. Var[X+Y] = VarX + VarY + 2Cov")
print(" 쌍 Var[X+Y] VarX+VarY 2*Cov")
pairs = [("첫눈, 둘째눈 (독립)", lambda w: w[0], lambda w: w[1]),
("첫눈, 합 (종속)", lambda w: w[0], lambda w: w[0]+w[1]),
("첫눈, -첫눈", lambda w: w[0], lambda w: -w[0])]
for nm, f, g in pairs:
vf, vg = var_of(f), var_of(g)
vsum = var_of(lambda w: f(w)+g(w))
print(" %-20s %12.6f %13.6f %11.6f" % (nm, vsum, vf+vg, vsum-vf-vg))
# Var[aX+b] = a^2 Var[X] 를 확인합니다
# a b 변환 후 평균 변환 후 분산 a^2 * Var[X]
# 1.0 5.0 12.000000 5.833333 5.833333
# 2.0 0.0 14.000000 23.333333 23.333333
# -3.0 1.0 -20.000000 52.500000 52.500000
# 0.5 -2.0 1.500000 1.458333 1.458333
# b 는 분산에 영향이 없고 a 는 제곱으로 들어갑니다
# 독립이 아니면 공분산 항이 붙습니다. Var[X+Y] = VarX + VarY + 2Cov
# 쌍 Var[X+Y] VarX+VarY 2*Cov
# 첫눈, 둘째눈 (독립) 5.833333 5.833333 0.000000
# 첫눈, 합 (종속) 14.583333 8.750000 5.833333
# 첫눈, -첫눈 0.000000 5.833333 -5.833333
# --- 문제 4: 표본평균의 분산은 1/n 로 줄어든다 --------------------------
print(" 독립 표본 n 개의 평균. Var[Xbar] = sigma^2 / n")
sig2 = d1
print(" n Var[Xbar] sigma^2/n 표준오차 sqrt(n) 배 감소 확인")
prev = None
for n in [1, 4, 16, 64, 256]:
v = sig2/n; se = np.sqrt(v)
r = ("%.4f" % (prev/se)) if prev else " -"
print(" %9d %13.8f %13.8f %12.8f %18s" % (n, v, sig2/n, se, r))
prev = se
print(" n 이 4 배가 되면 표준오차가 정확히 절반이 됩니다")
print(" 정확도를 10 배 올리려면 표본이 100 배 필요합니다")
print(" 원하는 표준오차 배율 필요한 n 배율")
for k in [2, 10, 100]:
print(" %22d %18d" % (k, k*k))
# 독립 표본 n 개의 평균. Var[Xbar] = sigma^2 / n
# n Var[Xbar] sigma^2/n 표준오차 sqrt(n) 배 감소 확인
# 1 5.83333333 5.83333333 2.41522946 -
# 4 1.45833333 1.45833333 1.20761473 2.0000
# 16 0.36458333 0.36458333 0.60380736 2.0000
# 64 0.09114583 0.09114583 0.30190368 2.0000
# 256 0.02278646 0.02278646 0.15095184 2.0000
# n 이 4 배가 되면 표준오차가 정확히 절반이 됩니다
# 정확도를 10 배 올리려면 표본이 100 배 필요합니다
# 원하는 표준오차 배율 필요한 n 배율
# 2 4
# 10 100
# 100 10000
# --- 문제 5: 분산은 두 조각으로 나뉜다 ----------------------------------
print(" 혼합분포에서 Var[X] = E[Var[X|Z]] + Var[E[X|Z]] 를 확인합니다")
print(" Z=1 이면 N(0,1), Z=2 이면 N(mu2, 1). 각 확률 0.5")
print(" mu2 전체 분산 E[Var|Z] Var[E|Z] 합 차이")
M, L = 4000000, 60.0
for mu2 in [0.0, 1.0, 3.0, 10.0]:
lo, hi = -L/2, mu2 + L/2
xs = lo + (np.arange(M) + 0.5)*(hi-lo)/M
g = lambda t, m: np.exp(-(t-m)**2/2)/np.sqrt(2*np.pi)
w = 0.5*(g(xs, 0.0) + g(xs, mu2))*(hi-lo)/M
w = w/w.sum()
m = float(xs @ w); tot = float(((xs-m)**2) @ w)
within = 1.0 # 각 성분의 분산이 1
between = 0.5*(0.0-(0+mu2)/2)**2 + 0.5*(mu2-(0+mu2)/2)**2
print(" %7.1f %13.6f %11.6f %11.6f %11.6f %10.2e"
% (mu2, tot, within, between, within+between, abs(tot-(within+between))))
print(" E[Var|Z] 는 집단 안의 퍼짐, Var[E|Z] 는 집단 사이의 퍼짐입니다")
print(" 128강의 과산포가 바로 둘째 항이 0 이 아닌 상황입니다")
# 혼합분포에서 Var[X] = E[Var[X|Z]] + Var[E[X|Z]] 를 확인합니다
# Z=1 이면 N(0,1), Z=2 이면 N(mu2, 1). 각 확률 0.5
# mu2 전체 분산 E[Var|Z] Var[E|Z] 합 차이
# 0.0 1.000000 1.000000 0.000000 1.000000 4.55e-15
# 1.0 1.250000 1.000000 0.250000 1.250000 8.88e-15
# 3.0 3.250000 1.000000 2.250000 3.250000 1.87e-14
# 10.0 26.000000 1.000000 25.000000 26.000000 1.49e-13
# E[Var|Z] 는 집단 안의 퍼짐, Var[E|Z] 는 집단 사이의 퍼짐입니다
# 128강의 과산포가 바로 둘째 항이 0 이 아닌 상황입니다
문제 1의 표가 이 강의에서 가장 실용적인 경고입니다. 대수적으로 완전히 같은 두 식인데 에서 하나는 정답을, 다른 하나는 **정확히 **을 냅니다. 상대오차 이며, 92강에서 배운 파국적 상쇄가 확률 계산에서 어떻게 나타나는지 보여 줍니다.
문제 3의 마지막 줄이 공분산의 존재 이유입니다. 이라 분산이 인데 각 분산의 합은 입니다. 차이 전부가 공분산 항이며, 독립 가정 없이 분산을 더하는 것이 얼마나 위험한지 보여 줍니다.
문제 5에서 일 때 집단 간 분산이 전체의 입니다. 각 집단의 분산은 여전히 인데 중심이 멀어진 것만으로 전체 분산이 이 되었습니다. 자료의 퍼짐이 "다양성"인지 "이질성"인지를 나누는 것이 이 분해입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 분산 | 제곱편차의 기댓값입니다 | |
| 표준편차 | 분산의 제곱근입니다 | |
| 표준오차 | 표본평균의 표준편차입니다 | |
| 공분산 | 함께 움직이는 정도입니다 | |
| 파국적 상쇄 | catastrophic cancellation | 큰 수의 차에서 유효숫자가 사라집니다 |
| 웰퍼드 알고리즘 | Welford's algorithm | 안정적인 한 번 훑기 갱신입니다 |
| 전체 분산 법칙 | law of total variance | 집단 내와 집단 간으로 나눕니다 |
| 자유도 | degrees of freedom | 의 근거입니다 |
| 첨도 | kurtosis | 꼬리의 두께를 잽니다 |
| 대조변수 | control variate | 상관된 양으로 분산을 줄입니다 |
| 라오블랙웰화 | Rao-Blackwellization | 조건부기댓값으로 분산을 줄입니다 |
| 제곱근 법칙 | square-root law | 정확도가 로만 좋아집니다 |
다음 134강에서는 적률과 적률생성함수를 다룹니다. 평균은 일차 적률이고 분산은 이차 중심적률입니다. 더 높은 차수로 올라가면 왜도와 첨도가 나오고, 그 전부를 한 함수에 담는 것이 적률생성함수입니다. 128강 문제 3과 130강 문제 4에서 합성곱으로 힘들게 확인한 가법성이 곱셈 한 번으로 끝나며, 143강 중심극한정리의 증명 도구가 됩니다.