123강 문제 3에서 이미 한 번 계산했습니다. 공장별 불량률을 알 때, 불량품 하나를 집었으면 어느 공장에서 왔을 확률이 얼마인가를 구했습니다.
그 계산이 이 강의의 주제입니다.
유도는 한 줄입니다. 123강의 곱셈법칙을 두 방향으로 쓰면
이고 양변을 로 나누면 끝입니다. 새로운 내용이 전혀 없습니다.
그런데 이 한 줄의 해석이 확률론을 넘어섭니다. 각 항에 이름을 붙이면 이렇게 됩니다.
가설 에 대한 믿음이 증거 를 보고 어떻게 갱신되는가를 말하는 식입니다. 이것이 통계적 추론, 기계학습, 과학적 방법론의 공통 뼈대입니다.
| 분야 | ||
|---|---|---|
| 의료 진단 | 질병의 유무 | 검사 결과 |
| 스팸 분류 | 스팸인지 여부 | 메일의 단어들 |
| 모수 추정 | 파라미터 값 | 관측 데이터 |
| 과학 | 이론 | 실험 결과 |
그리고 사람이 가장 자주 틀리는 계산이기도 합니다. 문제 1에서 정답과 직관이 배 어긋나는 것을 봅니다.
문제. 유병률이 인 병에 대해 민감도 , 특이도 인 검사를 합니다.
(1) 양성이 나오는 두 경로의 확률을 각각 구하세요.
(2) 양성일 때 실제로 병일 확률을 구하세요.
(3) 직관과 왜 다른지 설명하세요.
생각의 실마리. 123강 문제 3의 구조와 완전히 같습니다. "병 있음"과 "병 없음"이 분할이고, 양성이라는 사건을 두 조각으로 쪼갠 뒤 각 조각의 몫을 따집니다.
풀이. (1) 검산 결과입니다.
| 경로 | 확률 |
|---|---|
| 병 있고 양성 (참양성) | |
| 병 없고 양성 (거짓양성) | |
| 합 |
(2) 참양성이 전체 양성에서 차지하는 몫이 답입니다.
약 뿐입니다.
(3) 와 혼동하면 배 틀립니다. 이유는 검산의 마지막 줄에 있습니다. 거짓양성이 참양성의 배입니다.
병이 있는 사람이 천 명 중 한 명뿐이라, 검사가 아무리 좋아도 양성 판정의 대부분은 건강한 사람에게서 나옵니다. 건강한 사람 명 중 인 약 명이 위양성인데, 진짜 환자는 명도 안 됩니다.
이 문제에서 배우는 것: 베이즈 정리와 기저율.
베이즈 정리. 일 때
이며 분모는 123강의 전확률의 법칙입니다.
네 항의 이름을 정확히 씁니다.
| 항 | 이름 | 뜻 |
|---|---|---|
| 사전확률 | 증거를 보기 전의 믿음입니다 | |
| 가능도 | 가설이 참일 때 증거가 나올 확률입니다 | |
| 사후확률 | 증거를 본 뒤의 믿음입니다 | |
| 주변가능도 | 정규화 상수입니다 |
기저율 무시. 사전확률 를 빠뜨리고 가능도만으로 판단하는 오류를 말합니다.
이 오류가 강력한 이유는 가능도가 커 보이기 때문입니다. 라는 수를 보면 결론도 근처일 것 같지만, 사전확률 이 그 전부를 압도합니다.
작은 확률에 큰 모집단을 곱한 쪽이 이깁니다.
실무의 교훈이 분명합니다. 드문 사건을 찾는 분류기는 정확도가 높아도 양성 예측의 신뢰도가 낮습니다. 사기 탐지, 희귀질환 선별, 이상 탐지가 모두 이 구조이며, 정확도 대신 정밀도를 봐야 하는 이유입니다.
바로 확인 1.
확인 1-1. 베이즈 정리를 쓰고 분모의 정체를 쓰세요.
답. 이며 분모는 전확률의 법칙입니다.
확인 1-2. 네 항의 이름을 쓰세요.
답. 사전확률, 가능도, 사후확률, 주변가능도입니다.
확인 1-3. 유병률 , 민감도 , 특이도 에서 양성일 때 병일 확률을 쓰세요.
답. 약 이며 에 못 미칩니다.
문제. 문제 1의 계산을 오즈로 다시 씁니다.
(1) 사전오즈와 양성우도비를 구하세요.
(2) 사후오즈를 구하고 확률로 되돌리세요.
(3) 로그를 취하면 무엇이 되는지 보세요.
생각의 실마리. 베이즈 정리의 분모 는 계산이 번거롭습니다. 두 가설의 비를 취하면 분모가 약분되어 사라집니다.
풀이. (1)(2) 검산 결과입니다.
| 양 | 값 | \log_ |
|---|---|---|
| 사전오즈 | ||
| 양성우도비 | ||
| 사후오즈 | ||
| 음성우도비 |
사후확률로 되돌리면 이며 **문제 1의 값과 차이가 **입니다.
(3) 로그를 취하면 곱이 합이 됩니다.
이 문제에서 배우는 것: 오즈 형태의 베이즈 정리.
오즈 형태. 두 가설 와 에 대해
분모 가 양쪽에 똑같이 나타나 약분되므로 계산할 필요가 없습니다.
검사에서 우도비는 익숙한 두 지표로 표현됩니다.
| 우도비 | 식 | 값 |
|---|---|---|
| 양성우도비 | 민감도 특이도 | |
| 음성우도비 | 민감도특이도 |
**이라는 수가 "이 검사 하나가 믿음을 몇 배로 올리는가"**입니다. 사전오즈가 이었으니 사후오즈는 이며, 여전히 보다 훨씬 작습니다. 배로도 부족했던 것입니다.
로그오즈. 양변에 로그를 취하면 곱셈이 덧셈이 됩니다.
여기서 입니다.
증거가 로그오즈에 더해지는 점수가 됩니다. 이 구조가 여러 곳에서 재등장합니다.
| 분야 | 로그오즈의 정체 |
|---|---|
| 로지스틱 회귀 | 가 로그오즈입니다 |
| 나이브 베이즈 | 단어별 점수의 합입니다 |
| 이진 분류의 로짓 | 시그모이드 이전의 값입니다 |
로지스틱 회귀가 왜 선형인지가 여기서 설명됩니다. 증거가 조건부 독립이면 우도비가 곱이 되고, 로그를 취하면 합이 되므로 선형 결합이 자연스럽게 나옵니다.
바로 확인 2.
확인 2-1. 오즈 형태의 베이즈 정리를 쓰세요.
답. 사후오즈는 사전오즈에 우도비를 곱한 것입니다.
확인 2-2. 오즈를 쓰면 무엇이 사라집니까?
답. 정규화 상수 가 약분되어 사라집니다.
확인 2-3. 양성우도비를 민감도와 특이도로 쓰세요.
답. 민감도 나누기 특이도입니다.
문제. 같은 검사를 독립적으로 두 번 합니다.
(1) 네 가지 결과 조합의 사후확률을 구하세요.
(2) 양성 하나와 음성 하나가 나온 두 순서를 비교하세요.
(3) 순차 갱신과 일괄 계산이 같은지 확인하세요.
생각의 실마리. 오즈 형태에서 갱신은 우도비를 곱하는 것입니다. 곱셈은 순서에 무관합니다.
풀이. (1)(2) 검산 결과입니다.
| 1차 | 2차 | 사후오즈 | 사후확률 | 우도비 곱 |
|---|---|---|---|---|
둘째와 셋째 줄이 완전히 같습니다. 우도비의 곱이 순서에 무관하기 때문입니다.
(3) 순차 갱신을 확인합니다. 1차 양성 뒤 사후확률이 이고, 이것을 2차의 사전으로 삼아 다시 갱신하면 입니다. 한 번에 계산한 첫 줄과 정확히 같습니다.
두 번 양성이어도 뿐이라는 점이 주목할 만합니다. 우도비가 배인데도 사전오즈가 워낙 작아 절반을 넘지 못합니다.
이 문제에서 배우는 것: 순차 갱신.
순차 갱신. 증거 이 가 주어졌을 때 조건부 독립이면
오늘의 사후확률이 내일의 사전확률이 됩니다. 이것이 베이즈 추론의 실전 형태이며, 데이터를 한 번에 다 모으지 않아도 됩니다.
| 성질 | 근거 |
|---|---|
| 순서에 무관합니다 | 곱셈이 교환법칙을 지킵니다 |
| 일괄과 순차가 같습니다 | 결합법칙을 지킵니다 |
| 온라인으로 갱신됩니다 | 이전 사후만 기억하면 됩니다 |
셋째 줄이 실무에서 결정적입니다. 과거 데이터를 저장할 필요 없이 현재의 믿음 하나만 들고 다니면 됩니다. 155강의 마르코프 성질, 칼만 필터, 톰슨 샘플링이 모두 이 구조를 씁니다.
조건부 독립 가정이 어디에 쓰였는지 주의해야 합니다. 우도비를 곱으로 쪼갤 때 썼으며, 124강 문제 5의 나이브 베이즈와 같은 가정입니다. 같은 검사를 두 번 하면 대개 결과가 상관되므로 이 가정은 실제로는 낙관적입니다.
바로 확인 3.
확인 3-1. 순차 갱신에서 오늘의 사후는 무엇이 됩니까?
답. 내일의 사전이 됩니다.
확인 3-2. 증거의 순서가 결과에 영향을 줍니까?
답. 주지 않습니다. 우도비의 곱이 순서에 무관합니다.
확인 3-3. 우도비를 곱으로 쪼갤 때 필요한 가정을 쓰세요.
답. 가설이 주어졌을 때 증거들의 조건부 독립입니다.
문제. 같은 검사를 유병률만 바꿔 가며 적용합니다.
(1) 유병률별로 양성 사후확률과 음성 사후확률을 구하세요.
(2) 양성 사후확률이 를 넘는 임계 유병률을 구하세요.
(3) 실무의 함의를 쓰세요.
생각의 실마리. 오즈 형태에서 우도비는 고정이고 사전오즈만 바뀝니다. 사후오즈가 사전오즈에 비례합니다.
풀이. (1) 검산 결과입니다.
| 유병률 | 양성의 신뢰도 | ||
|---|---|---|---|
| 낮음 | |||
| 낮음 | |||
| 낮음 | |||
| 높음 | |||
| 높음 | |||
| 높음 |
검사는 하나도 안 바뀌었는데 같은 양성의 뜻이 에서 까지 움직입니다.
(2) 사후오즈가 이 되는 지점을 풀면
입니다. 유병률이 약 를 넘어야 양성이 절반을 넘습니다.
(3) 같은 검사도 쓰이는 맥락에 따라 뜻이 다릅니다.
이 문제에서 배우는 것: 사전확률의 힘.
핵심. 사후확률은 가능도만으로 정해지지 않습니다. 사전확률이 함께 정합니다.
같은 검사가 두 맥락에서 전혀 다른 도구가 됩니다.
| 맥락 | 유병률 | 양성의 뜻 |
|---|---|---|
| 무증상 전수 선별 | 대부분 위양성이라 추가 검사가 필요합니다 | |
| 증상이 있어 의뢰됨 | 거의 확진에 가깝습니다 |
의사가 증상을 보고 검사를 지시하는 것이 사전확률을 올리는 행위입니다. 검사 자체는 같지만 사전확률이 높아진 상태에서 하므로 결과의 정보 가치가 커집니다.
음성 쪽은 반대로 안정적입니다. 표의 오른쪽 열은 유병률 에서도 에 머뭅니다. 이 검사는 병을 배제하는 데는 훌륭하고 확진에는 약합니다. 음성우도비가 로 매우 작기 때문이며, 선별검사의 설계 목표가 대개 이쪽입니다.
기계학습에서 같은 구조가 클래스 불균형입니다. 양성이 인 데이터에서 정확도 모형은 전부 음성이라 찍어도 나오는 수치이며, 정밀도와 재현율을 나눠 봐야 하는 이유가 이 표입니다.
바로 확인 4.
확인 4-1. 사후오즈와 사전오즈의 관계를 쓰세요.
답. 사후오즈는 사전오즈에 비례하며 비례상수가 우도비입니다.
확인 4-2. 양성 사후확률이 가 되는 유병률을 우도비로 쓰세요.
답. 입니다.
확인 4-3. 이 검사가 확진과 배제 중 어느 쪽에 강한지 쓰세요.
답. 배제에 강합니다. 음성우도비가 매우 작기 때문입니다.
문제. 문 을 골랐고 사회자가 문 을 열어 염소가 나왔습니다. 를 "차가 문 에 있다"라 합니다.
(1) 두 규칙에서 가능도 를 각각 쓰세요.
(2) 사후확률을 계산하세요.
(3) 두 답의 차이가 어디서 오는지 한 곳을 지목하세요.
생각의 실마리. 123강 문제 5를 모든 경우를 전개해 풀었습니다. 베이즈로 풀면 차이가 나는 자리가 한 칸으로 압축됩니다.
풀이. (1)(2) 관측 사건은 "문 을 열었고 그 뒤가 염소였다"입니다. 검산 결과입니다.
| 규칙 | H_ | H_ | H_ | 사후 H_ | 사후 H_ |
|---|---|---|---|---|---|
| 알고 연다 | |||||
| 모르고 연다 |
123강에서 얻은 과 이 그대로 재현됩니다.
(3) 열 하나만 다릅니다. 이냐 냐입니다.
차가 문 에 있으면, 규칙을 아는 사회자는 문 을 반드시 열어야 합니다. 문 은 내가 골랐고 문 에는 차가 있으니 선택의 여지가 없습니다. 반면 모르는 사회자는 문 와 문 중 아무거나 열므로 입니다.
이 문제에서 배우는 것: 가능도는 관측 절차의 모형이다.
핵심. 가능도 는 "가설이 참일 때 이런 데이터가 관측될 확률"입니다. 관측이 어떻게 이루어졌는지를 담아야 합니다.
사전확률은 두 경우에 똑같이 씩이었습니다. 데이터도 눈에 보이기로는 같았습니다. 오직 가능도 하나가 답을 갈랐습니다.
베이즈 관점의 이득이 이것입니다. 모든 경우를 전개하는 대신 어디를 잘못 모형화했는지 정확히 짚을 수 있습니다.
| 항 | 두 규칙에서 |
|---|---|
| 사전확률 | 같습니다 |
| 관측된 사건 | 같아 보입니다 |
| 가능도 | 대 로 다릅니다 |
| 사후확률 | 대 |
이 교훈이 실무에서 반복됩니다. 데이터가 어떻게 수집되었는지를 모형에 넣지 않으면 사후확률이 틀립니다.
| 상황 | 놓친 가능도 |
|---|---|
| 결측 데이터 | 왜 빠졌는지가 정보입니다 |
| 중도 절단 자료 | 관측이 중단된 이유가 정보입니다 |
| 능동 학습 | 어떤 표본을 골라 물었는지가 정보입니다 |
| A/B 테스트 조기 중단 | 언제 멈췄는지가 정보입니다 |
마지막 줄이 특히 위험합니다. 유의해질 때까지 들여다보다 멈추면 중단 규칙이 가능도에 들어가야 하는데, 대개 무시되어 거짓 발견을 낳습니다. 152강에서 다룹니다.
바로 확인 5.
확인 5-1. 몬티 홀에서 두 규칙의 차이가 어느 항에 있습니까?
답. 가능도 이며 과 입니다.
확인 5-2. 가능도가 무엇을 담아야 하는지 쓰세요.
답. 가설이 참일 때 그 데이터가 관측되는 절차까지 담아야 합니다.
확인 5-3. 결측 데이터에서 가능도에 넣어야 할 것을 쓰세요.
답. 왜 결측이 되었는지의 기제입니다.
| 개념 | 식 |
|---|---|
| 베이즈 정리 | |
| 분모 | |
| 오즈 형태 | 사후오즈 사전오즈 우도비 |
| 로그오즈 | 사후 사전 우도비 |
| 순차 갱신 | 우도비를 차례로 곱합니다 |
| 임계 사전 |
| 네 항 | 이름 |
|---|---|
| 사전확률 | |
| 가능도 | |
| 사후확률 | |
| 주변가능도 |
| 검사 지표 | 식 |
|---|---|
| 민감도 | |
| 특이도 | |
| 양성우도비 | 민감도 특이도 |
| 음성우도비 | 민감도특이도 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 기저율을 빠뜨립니다 | 사전확률을 반드시 넣습니다 |
| 를 로 읽습니다 | 분모가 다릅니다 |
| 관측 절차를 가능도에 안 넣습니다 | 어떻게 얻은 데이터인지가 정보입니다 |
| 증거의 조건부 독립을 무비판적으로 씁니다 | 상관되면 과신합니다 |
문제 6. 베이즈 정리를 쓰고 유도의 근거를 쓰세요.
답. 이며 곱셈법칙을 두 방향으로 쓴 것입니다.
문제 7. 분모의 정체를 쓰세요.
답. 전확률의 법칙 입니다.
문제 8. 네 항의 이름을 쓰세요.
답. 사전확률, 가능도, 사후확률, 주변가능도입니다.
문제 9. 유병률 , 민감도 , 특이도 에서 양성일 때 병일 확률을 쓰세요.
답. 약 입니다.
문제 10. 그 값이 직관과 다른 이유를 쓰세요.
답. 거짓양성이 참양성의 약 배라 양성의 대부분이 건강한 사람이기 때문입니다.
문제 11. 오즈 형태의 베이즈 정리를 쓰세요.
답. 사후오즈는 사전오즈에 우도비를 곱한 것입니다.
문제 12. 오즈를 쓰는 이점을 쓰세요.
답. 정규화 상수 가 약분되어 계산이 필요 없습니다.
문제 13. 양성우도비와 음성우도비를 쓰세요.
답. 민감도 특이도와 민감도특이도입니다.
문제 14. 로그오즈 형태를 쓰고 어디에 나타나는지 쓰세요.
답. 사전 로그오즈에 로그우도비를 더하며 로지스틱 회귀의 선형항입니다.
문제 15. 순차 갱신에서 오늘의 사후가 무엇이 되는지 쓰세요.
답. 내일의 사전이 됩니다.
문제 16. 증거의 순서가 결과를 바꿉니까?
답. 바꾸지 않습니다. 우도비의 곱이 순서에 무관합니다.
문제 17. 양성 사후확률이 가 되는 임계 유병률을 쓰세요.
답. 이며 이 검사에서는 약 입니다.
문제 18. 몬티 홀 두 규칙의 차이가 어느 항에 있는지 쓰세요.
답. 가능도 이며 과 입니다.
심화 1. 주변가능도의 역할을 정리하세요.
분모 는 계산에서 약분되기 쉬워 무시하기 쉽지만 고유한 의미가 있습니다.
"이 데이터가 나올 법한 정도"를 모형 전체에 대해 평균낸 값입니다.
모형 비교에서 이것이 주역이 됩니다. 모형 과 를 비교할 때
이고 오른쪽 비를 베이즈 인수라 합니다. 여기서 이 바로 그 모형의 주변가능도입니다.
여기에 자동적인 복잡도 벌점이 들어 있습니다. 파라미터가 많은 모형은 설명할 수 있는 데이터의 범위가 넓으므로, 어느 특정 데이터에 배분되는 확률이 얇게 퍼집니다. 잘 맞히지만 아무것이나 맞힐 수 있는 모형은 손해를 봅니다.
| 모형 | 설명 범위 | 특정 데이터에 준 확률 |
|---|---|---|
| 단순 | 좁습니다 | 맞으면 큽니다 |
| 복잡 | 넓습니다 | 얇게 퍼집니다 |
이를 오컴의 면도날이 자동으로 적용된다고 말합니다. 별도의 정규화를 넣지 않아도 주변화 자체가 복잡한 모형에 불리하게 작용합니다.
계산이 어려운 것이 문제입니다. 적분이 대개 닫힌 형태로 풀리지 않으며, 262강의 ELBO가 이 적분의 하한을 최적화하는 방법입니다.
심화 2. 베이즈 인수로 증거의 강도를 읽으세요.
우도비 하나를 증거의 강도로 읽는 관습적 척도가 있습니다.
| 우도비 | \log_ | 해석 |
|---|---|---|
| 언급할 가치가 거의 없습니다 | ||
| 약한 증거입니다 | ||
| 상당한 증거입니다 | ||
| 강한 증거입니다 | ||
| 결정적입니다 |
**문제 2의 양성우도비 은 "상당한 증거"**입니다. 그런데도 사후확률이 였습니다. 증거가 강해도 사전확률이 충분히 낮으면 결론이 뒤집히지 않습니다.
"비범한 주장에는 비범한 증거가 필요하다"는 말이 이 표로 정량화됩니다. 사전오즈가 인 주장을 위로 올리려면 우도비가 을 넘어야 합니다.
값과 혼동하면 안 됩니다. 값은 쪽의 양이고 베이즈 인수는 두 가설의 비입니다. 가 대립가설을 지지하는 강한 증거가 아닌 경우가 흔하며, 152강에서 다룹니다.
심화 3. 사전확률을 어떻게 정할지 정리하세요.
베이즈 추론에서 가장 논쟁적인 부분입니다.
| 접근 | 방식 | 문제 |
|---|---|---|
| 무정보 사전 | 균등분포를 씁니다 | 변수변환에 안 변합니다 |
| 제프리스 사전 | 피셔 정보의 제곱근에 비례 | 변수변환에 불변입니다 |
| 켤레 사전 | 사후가 같은 족이 되게 고릅니다 | 계산이 쉽지만 표현력이 제한됩니다 |
| 경험적 사전 | 데이터로 사전을 정합니다 | 데이터를 두 번 씁니다 |
| 전문가 사전 | 도메인 지식을 씁니다 | 주관적입니다 |
첫째 줄의 문제가 미묘합니다. 에 균등을 주면 에는 균등이 아니므로, "정보가 없다"는 것이 좌표계에 의존합니다. 122강 심화 5의 무차별의 원리 역설과 같은 뿌리입니다.
제프리스 사전이 그 해법이며 매개변수화를 바꿔도 같은 사전을 줍니다.
데이터가 많으면 사전의 영향이 사라집니다. 순차 갱신에서 우도비가 개 곱해지므로, 이 커지면 사전오즈의 기여가 상대적으로 작아집니다. 이를 베이즈 일치성이라 하며, 서로 다른 사전에서 출발해도 같은 결론에 수렴합니다.
다만 사전이 인 곳은 영원히 입니다. 곱셈이므로 어떤 증거로도 되살릴 수 없으며, 가능성을 처음부터 배제하지 말라는 실무 지침이 여기서 나옵니다.
심화 4. 라플라스의 후속 법칙을 유도하세요.
동전을 번 던져 번 앞이 나왔을 때 다음이 앞일 확률을 묻습니다. 최대우도추정은 이라 답하는데, 에 이면 이 되어 "절대 뒷면이 안 나온다"고 주장하게 됩니다.
베이즈로 하면 다릅니다. 앞면 확률 에 균등 사전을 주면 사후가 이렇게 됩니다.
다음이 앞일 확률은 사후평균이며
입니다. 이를 라플라스의 후속 법칙이라 합니다.
| 최대우도 | 라플라스 | ||
|---|---|---|---|
| 정의되지 않습니다 | |||
셋째 줄까지가 요점입니다. 데이터가 적을 때 극단적인 결론을 막아 주고, 데이터가 많아지면 최대우도와 거의 같아집니다.
이것이 나이브 베이즈의 라플라스 평활입니다. 훈련 데이터에 없던 단어의 확률이 이 되면 곱 전체가 이 되므로, 모든 계수에 을 더해 막습니다. 131강의 베타분포와 150강의 최대사후추정에서 정식으로 다룹니다.
심화 5. 베이즈 갱신이 온라인 알고리즘이 되는 과정을 보이세요.
문제 3에서 사후가 다음의 사전이 된다고 했습니다. 이 성질이 실시간 알고리즘을 낳습니다.
칼만 필터가 대표입니다. 상태에 정규분포 사전을 주고 관측이 오면 정규 가능도로 갱신하는데, 정규분포의 켤레성 덕분에 사후도 정규분포입니다. 따라서 평균과 분산 두 수만 들고 다니면 됩니다.
가 칼만 이득이며 "사전과 관측 중 어느 쪽을 얼마나 믿을지"의 가중치입니다. 사전분산이 크면 관측을 많이 반영하고, 작으면 옛 믿음을 유지합니다.
톰슨 샘플링이 또 하나입니다. 여러 선택지의 보상률에 사후분포를 유지하고, 매 회 사후에서 하나씩 표본을 뽑아 가장 좋은 것을 고릅니다. 탐색과 활용의 균형이 사후분포의 폭에서 자동으로 나옵니다.
| 알고리즘 | 유지하는 것 | 쓰이는 곳 |
|---|---|---|
| 칼만 필터 | 정규 사후의 평균과 분산 | 추적, 항법, 시계열 |
| 톰슨 샘플링 | 각 팔의 사후분포 | 추천, A/B 테스트 |
| 베이즈 최적화 | 함수 위의 가우스 과정 | 하이퍼파라미터 탐색 |
| 입자 필터 | 표본으로 표현한 사후 | 비선형 상태 추정 |
공통 구조는 하나입니다. 사후를 유지하고, 관측이 오면 우도를 곱하고, 정규화합니다.
심화 6. 정규화가 사전분포임을 보이세요.
116강에서 정규화를 제약으로 읽었습니다. 베이즈로 읽으면 정규화가 사전분포입니다.
최대사후추정은 사후를 최대화합니다.
로그를 취하면 합이 됩니다.
둘째 항이 정확히 정규화항입니다. 사전분포를 무엇으로 두느냐가 어떤 정규화를 쓰느냐를 정합니다.
| 사전분포 | 정규화 | |
|---|---|---|
| 가우스 | \dfrac{1}{2\sigma^{2}}\lVert\boldsymbol{\theta}\rVert_{2}^ | 능형회귀, \ell^ |
| 라플라스 | \dfrac{1}{b}\lVert\boldsymbol{\theta}\rVert_ | 라소, \ell^ |
| 균등 | 상수 | 정규화 없음, 최대우도 |
셋째 줄이 최대우도추정입니다. 사전이 균등이면 정규화항이 상수가 되어 사라집니다.
116강 심화에서 예고한 것이 여기서 회수됩니다. 그때 와 이 각각 가우스 사전과 라플라스 사전에 대응한다고 했는데, 위 표가 그 대응입니다. 정규화 계수 가 사전분포의 폭에 반비례하며, 사전을 좁게 잡을수록 강한 정규화가 됩니다.
이 관점의 실질적 이득이 있습니다. 새로운 정규화가 필요할 때 어떤 사전이 타당한지를 물으면 자연스럽게 형태가 나옵니다. 파라미터가 대개 근처이고 가끔 크다면 두꺼운 꼬리 사전이며, 이것이 스파이크앤슬랩과 호스슈 사전으로 이어집니다.
import numpy as np
# --- 문제 1: 기저율을 넣지 않으면 50 배가 틀린다 ------------------------
prev, sens, spec = 0.001, 0.99, 0.95
print(" 유병률 %.3f, 민감도 %.2f, 특이도 %.2f" % (prev, sens, spec))
print(" 경로 확률")
tp = prev*sens
fp = (1-prev)*(1-spec)
print(" 병 있고 양성 (참양성) %14.8f" % tp)
print(" 병 없고 양성 (거짓양성) %14.8f" % fp)
print(" P(양성) = 합 %14.8f" % (tp+fp))
post = tp/(tp+fp)
print(" P(병 | 양성) %14.8f" % post)
print(" P(양성 | 병) = %.8f 과 혼동하면 %.1f 배 틀립니다" % (sens, sens/post))
print(" 거짓양성이 참양성의 %.1f 배라 양성의 대부분이 건강한 사람입니다" % (fp/tp))
# 유병률 0.001, 민감도 0.99, 특이도 0.95
# 경로 확률
# 병 있고 양성 (참양성) 0.00099000
# 병 없고 양성 (거짓양성) 0.04995000
# P(양성) = 합 0.05094000
# P(병 | 양성) 0.01943463
# P(양성 | 병) = 0.99000000 과 혼동하면 50.9 배 틀립니다
# 거짓양성이 참양성의 50.5 배라 양성의 대부분이 건강한 사람입니다
# --- 문제 2: 오즈로 쓰면 곱셈 한 번이다 ---------------------------------
print(" 사후오즈 = 사전오즈 * 우도비")
prior_odds = prev/(1-prev)
LRp = sens/(1-spec)
LRn = (1-sens)/spec
post_odds = prior_odds*LRp
print(" 양 값 로그10")
for nm, v in [("사전오즈", prior_odds), ("양성우도비", LRp),
("사후오즈", post_odds), ("음성우도비", LRn)]:
print(" %-14s %14.8f %12.6f" % (nm, v, np.log10(v)))
print(" 사후확률 = 사후오즈/(1+사후오즈) = %.8f" % (post_odds/(1+post_odds)))
print(" 문제 1 의 값과 차이 %.2e" % abs(post_odds/(1+post_odds) - post))
print(" 로그를 취하면 곱이 합이 됩니다: %.6f + %.6f = %.6f"
% (np.log10(prior_odds), np.log10(LRp), np.log10(post_odds)))
# 사후오즈 = 사전오즈 * 우도비
# 양 값 로그10
# 사전오즈 0.00100100 -2.999565
# 양성우도비 19.80000000 1.296665
# 사후오즈 0.01981982 -1.702900
# 음성우도비 0.01052632 -1.977724
# 사후확률 = 사후오즈/(1+사후오즈) = 0.01943463
# 문제 1 의 값과 차이 3.47e-18
# 로그를 취하면 곱이 합이 됩니다: -2.999565 + 1.296665 = -1.702900
# --- 문제 3: 증거를 차례로 넣어도 순서는 상관없다 -----------------------
print(" 독립인 검사 두 번. 결과 조합별 사후확률입니다")
print(" 1차 2차 사후오즈 사후확률 우도비 곱")
for r1 in ["+", "-"]:
for r2 in ["+", "-"]:
lr = (LRp if r1 == "+" else LRn)*(LRp if r2 == "+" else LRn)
o = prior_odds*lr
print(" %7s %5s %14.8f %14.8f %14.6f" % (r1, r2, o, o/(1+o), lr))
print(" (+,-) 와 (-,+) 가 같습니다. 우도비의 곱은 순서에 무관하기 때문입니다")
o1 = prior_odds*LRp
print(" 순차 갱신 확인: 1차 + 뒤 사후 %.8f 가 2차의 사전이 됩니다" % (o1/(1+o1)))
o2 = o1*LRp
print(" 거기에 2차 + 를 곱하면 %.8f 이고 한 번에 계산한 값과 같습니다" % (o2/(1+o2)))
# 독립인 검사 두 번. 결과 조합별 사후확률입니다
# 1차 2차 사후오즈 사후확률 우도비 곱
# + + 0.39243243 0.28183230 392.040000
# + - 0.00020863 0.00020859 0.208421
# - + 0.00020863 0.00020859 0.208421
# - - 0.00000011 0.00000011 0.000111
# (+,-) 와 (-,+) 가 같습니다. 우도비의 곱은 순서에 무관하기 때문입니다
# 순차 갱신 확인: 1차 + 뒤 사후 0.01943463 가 2차의 사전이 됩니다
# 거기에 2차 + 를 곱하면 0.28183230 이고 한 번에 계산한 값과 같습니다
# --- 문제 4: 기저율이 답을 지배한다 -------------------------------------
print(" 같은 검사, 유병률만 바꿉니다")
print(" 유병률 P(병|양성) P(병|음성) 양성의 신뢰도")
for pv in [0.0001, 0.001, 0.01, 0.1, 0.3, 0.5]:
o = (pv/(1-pv))
pp, pn = o*LRp, o*LRn
print(" %10.4f %14.8f %14.8f %16s"
% (pv, pp/(1+pp), pn/(1+pn), "낮음" if pp/(1+pp) < 0.5 else "높음"))
print(" 유병률이 %.4f 를 넘어야 양성이 절반을 넘습니다" % (1/(1+LRp)))
print(" 선별검사와 유증상 검사에서 같은 양성이 전혀 다른 뜻을 갖습니다")
# 같은 검사, 유병률만 바꿉니다
# 유병률 P(병|양성) P(병|음성) 양성의 신뢰도
# 0.0001 0.00197628 0.00000105 낮음
# 0.0010 0.01943463 0.00001054 낮음
# 0.0100 0.16666667 0.00010632 낮음
# 0.1000 0.68750000 0.00116822 높음
# 0.3000 0.89457831 0.00449102 높음
# 0.5000 0.95192308 0.01041667 높음
# 유병률이 0.0481 를 넘어야 양성이 절반을 넘습니다
# 선별검사와 유증상 검사에서 같은 양성이 전혀 다른 뜻을 갖습니다
# --- 문제 5: 몬티 홀을 베이즈로 다시 푼다 -------------------------------
print(" 내가 문 1 을 골랐고 사회자가 문 3 을 열었습니다")
print(" 가설 H_i = 차가 문 i 에 있다. 사전은 모두 1/3 입니다")
print(" 우도는 P(문3 을 열었고 그 뒤가 염소였다 | H_i) 입니다")
print(" 규칙 H1 H2 H3 사후 H1 사후 H2")
for nm, lik in [("알고 연다", np.array([0.5, 1.0, 0.0])),
("모르고 연다", np.array([0.5, 0.5, 0.0]))]:
pri = np.ones(3)/3
un = pri*lik
post5 = un/un.sum()
print(" %-14s %8.4f %8.4f %8.4f %10.6f %10.6f"
% (nm, lik[0], lik[1], lik[2], post5[0], post5[1]))
print(" 차이는 오직 우도 P(문3 을 연다 | H2) 가 1 이냐 1/2 이냐입니다")
print(" 알고 열면 H2 에서 반드시 문 3 을 열어야 하므로 우도가 두 배 셉니다")
# 내가 문 1 을 골랐고 사회자가 문 3 을 열었습니다
# 가설 H_i = 차가 문 i 에 있다. 사전은 모두 1/3 입니다
# 우도는 P(문3 을 열었고 그 뒤가 염소였다 | H_i) 입니다
# 규칙 H1 H2 H3 사후 H1 사후 H2
# 알고 연다 0.5000 1.0000 0.0000 0.333333 0.666667
# 모르고 연다 0.5000 0.5000 0.0000 0.500000 0.500000
# 차이는 오직 우도 P(문3 을 연다 | H2) 가 1 이냐 1/2 이냐입니다
# 알고 열면 H2 에서 반드시 문 3 을 열어야 하므로 우도가 두 배 셉니다
문제 1의 마지막 두 줄이 이 강의의 핵심입니다. 정확도 라는 수에 속으면 배 틀리며, 그 이유는 거짓양성이 참양성의 배이기 때문입니다. 두 수가 거의 같은 것이 우연이 아닙니다.
문제 3에서 두 번 양성이어도 뿐입니다. 우도비가 배인데도 절반을 못 넘습니다. 사전확률이 얼마나 무거운지를 보여 줍니다.
문제 5의 표에서 다른 칸은 단 하나입니다. 의 우도가 이냐 냐이고, 그 한 칸이 과 을 가릅니다. 123강에서 모든 경우를 전개해 얻은 답과 정확히 같으면서, 어디가 다른지가 한눈에 보입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 사전확률 | 증거 전의 믿음입니다 | |
| 가능도 | 가설 아래 증거가 나올 확률입니다 | |
| 사후확률 | 증거 뒤의 믿음입니다 | |
| 주변가능도 | 정규화 상수이며 모형 비교에 씁니다 | |
| 오즈 | odds | 입니다 |
| 로짓 | 입니다 | |
| \text{LR}^ | 양성우도비 | 민감도 특이도 |
| 베이즈 인수 | Bayes factor | 두 모형의 주변가능도 비입니다 |
| 기저율 무시 | base rate neglect | 사전확률을 빠뜨리는 오류입니다 |
| 켤레 사전 | conjugate prior | 사후가 같은 족이 됩니다 |
| 후속 법칙 | rule of succession | 입니다 |
| 최대사후추정 | MAP | 사후를 최대화합니다 |
여기서 S6의 01단원 확률의 언어가 끝납니다. 121강에서 표본공간과 사건이라는 무대를 세우고, 122강에서 그 위에 세 공리로 확률을 얹고, 123강에서 정보가 들어오는 통로인 조건부확률을 정의하고, 124강에서 정보가 없는 상태인 독립을 규정하고, 125강에서 정보를 반영해 믿음을 갱신하는 절차를 완성했습니다.
다섯 강 전체가 사실은 한 정의의 전개입니다. 조건부확률의 정의 하나에서 곱셈법칙, 전확률의 법칙, 독립, 베이즈 정리가 모두 나왔습니다.
다음 126강부터 02단원 확률변수와 분포가 시작됩니다. 지금까지 사건은 집합이었고 확률은 집합에 붙는 수였습니다. 이제 표본점에 수를 대응시켜 확률을 수직선 위로 옮깁니다. 121강 문제 3에서 "함수의 값으로 분할을 만든다"고 한 것이 정확히 그 작업이며, 그 순간 미적분이 확률에 들어옵니다.