혼동하기 쉬운 점과 요약
토론 1. 조건부 분포만 있으면 결합 확률표를 되살릴 수 있나
문제 2의 표에서 p(b)를 잃어버리고 칸마다의 분포 p(a ∣ b₁), p(a ∣ b₂)만 남았다면, 네 칸을 되살릴 수 있는가?

문제 2의 표에서 이번에는 p(b)를 잃어버리고, b₁ 칸의 분포 (0.667, 0.333)와 b₂ 칸의 분포 (0.182, 0.818)만 남았어요. 네 칸을 되살릴 수 있을까요?

칸마다 분포를 다 알면 표에 대해 알아야 할 건 다 아는 것 같은데요. 두 분포에서 거꾸로 맞춰 가면 될 것 같아요.

그럼 같은 두 분포를 갖는 표를 하나 더 만들어 볼까요? b₁ 칸이 전체의 절반, b₂ 칸이 절반이라면요?

b₁ 칸은 0.5 × (0.667, 0.333) = (0.333, 0.167), b₂ 칸은 0.5 × (0.182, 0.818) = (0.091, 0.409). 네 칸을 더하면 1이니까 이것도 멀쩡한 표야.

칸마다 다시 나누면 처음 두 분포가 그대로 나오고… 그런데 문제 2의 표에서 0.30이던 칸이 여기선 0.333이네요. 같은 두 분포에서 서로 다른 표가 나왔어요.

그럼 두 분포가 정해 주지 못한 건 뭐예요?

칸마다의 크기요. p(b₁)을 0.45로 두든 0.5로 두든 칸 안의 비율은 그대로라서, 비율만 보고는 칸이 얼마나 큰지 알 수 없어요. 조건의 확률 p(b)를 곱해야 표가 하나로 정해지고요.

레시피에 밀가루 2, 설탕 1이라고 비율만 적혀 있으면, 몇 인분인지 모르니까 밀가루를 몇 그램 넣을지 못 정하는 거랑 같네. 비율이 칸마다의 p(a ∣ b), 몇 인분이 p(b)야.
토론 2. 사후확률은 시간상 나중의 확률인가
「사전확률」과 「사후확률」의 「전」과 「후」는 무엇의 앞과 뒤인가?

문제 8에서 첫 검사 뒤의 16.2%는 사전확률이에요, 사후확률이에요?

첫 검사를 받은 뒤에 나온 값이니까 사후확률이요. 나중에 나온 거니까요.

그럼 둘째 검사를 받기 직전, 그 사람에게 16.2%는 뭐예요?

둘째 검사를 보기 전이니까… 사전확률이요? 같은 16.2%가 사후이기도 하고 사전이기도 하네요. 시간으로 정하면 둘 중 하나여야 하는데.

시간이 기준이 아닌가 봐. 계산에서 16.2%가 어느 자리에 들어갔는지 보면 어때? 첫 계산에서는 답의 자리, 둘째 계산에서는 유병률 p(a)의 자리였어.

그럼 두 검사 결과를 한꺼번에 받아 계산하는데, 실제로는 둘째 검사를 먼저 받았다고 해 봐요. 무엇이 달라질까요?

순서를 바꿔도 곱하는 숫자는 0.02, 0.95, 0.95로 같으니까… 64.8%는 그대로예요. 「나중」이라는 말은 계산에서 아무 일도 안 하네요.

내비게이션 도착 예정 시각이랑 비슷하다. 출발할 때 40분이던 예정 시각이 막히는 길 소식을 하나 받을 때마다 고쳐지잖아. 고친 값이 다음 소식을 받기 전의 출발점이 되고.

그러니까 사전·사후는 관측 하나를 기준으로 그걸 보기 전이냐 본 뒤냐구나. 기준으로 삼는 관측에 따라 같은 16.2%가 첫 검사의 사후확률도 되고 둘째 검사의 사전확률도 되고.
혼동하기 쉬운 점
| 혼동하기 쉬운 생각 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 분자가 같으면 조건을 뒤집어도 확률이 같다고 봄 | 1 | 무엇으로 나눴는지(어느 주문만 남겼는지)가 다르다. 커피 주문 0.9 대 0.6 |
| 서로 다른 조건의 조건부 확률을 더해 1이 되기를 기대함 | 2 | 합이 1인 것은 세로 막대 오른쪽을 고정하고 왼쪽을 다 더할 때뿐이다 |
| 조건부 분포만 있으면 결합 확률을 되살릴 수 있다고 봄 | 토론 1 | 조건의 확률 p(b)를 곱해야 한다. 칸마다 비율만으로는 칸의 크기를 모른다 |
| 분류기 출력을 사진들에 대해 그냥 더하면 라벨 확률이 된다고 봄 | 3 | 사진 수로 나눠 평균을 내야 p(y)의 추정값이 된다 |
| 조건마다의 확률을 단순 평균하면 전체 비율이 된다고 봄 | 4 | 조건의 주변확률 p(b)로 무게를 매겨 더한다. 버스 지각률 17.5% 대 10% |
| 주변 분포 둘이면 결합 확률표를 되살릴 수 있다고 봄 | 5 | 줄 합과 칸 합은 서로 다른 식이 셋뿐이라 한 칸이 남는다. 두 변수가 함께 움직인 모양은 주변화에서 지워진다 |
| 잠재 변수를 가장 흔한 값 하나로 놓고 p(x)를 대신함 | 6 | z의 모든 값에 걸쳐 p(x ∣ z) p(z)를 더하거나 적분한다. 그림을 만든 z는 흔한 값이 아닐 수 있다 |
| p(결과 ∣ 원인)을 p(원인 ∣ 결과)로 읽음 | 7 | 베이즈 정리로 뒤집고, 원인의 비율 p(원인)을 곱한다. 우산 0.9 대 0.692 |
| 사후확률은 시간상 나중의 확률이라고 봄 | 토론 2 | 사전·사후는 관측을 보기 전과 본 뒤다. 첫 검사의 사후확률이 둘째 검사의 사전확률이 된다 |
| 학습 데이터와 라벨 비율이 다른 곳에서도 분류기 출력을 그대로 믿음 | 9 | 출력 안에 학습 때의 라벨 비율이 곱해져 있다. 비율을 바꿔 다시 곱한다 |
| 생성기는 그 라벨의 그림 하나만 알면 된다고 봄 | 10, 12 | 같은 조건에도 맞는 그림이 여럿이다. 분포에서 뽑아야 한다 |
| 숫자 하나(가장 그럴듯한 값)를 확실한 값처럼 다룸 | 13, 16 | 숫자 하나 형태는 얼마나 확실한지를 지운다. 표로 끝까지 계산하고 마지막에 줄인다. 앱 A 로는 「하루라도 비」를 구할 수 없고, 여행지는 다수결 3 대 1 바다가 평균으로는 산 0.5625 |
| 샘플로 센 값을 정확한 값으로 보거나, 계산에 쓰이는 샘플이 N개라고 봄 | 14 | 조건에 맞지 않는 샘플은 버려진다. 변동은 샘플을 100배로 늘려야 10분의 1로 준다 |
| 뽑고 버리면 어떤 조건이든 붙일 수 있다고 봄 | 15 | 받아들일 확률이 1만 분의 1이면 100장에 100만 번을 불러야 한다 |
| 뽑은 다음에 계산한 평균도 파라미터로 미분된다고 봄 | 17 | 뽑힌 칸 번호는 정수라 파라미터를 조금 바꿔도 그대로다. 평균은 계단이고 디딤판의 기울기는 0이다 |
| 뽑기는 언제든 마지막으로 미룰 수 있다고 봄 | 18 | 다음 표가 앞에서 뽑은 값에 달려 있으면 그 자리에서 뽑아야 한다 |
| 그림 쪽 조건부 분포의 값을 확률로 읽음 | 11 | 연속인 공간에서는 밀도다. 넓이를 곱해야 확률이 된다 |
| p(y ∣ x)가 높으면 그 그림이 그 라벨다운 그림이라고 봄 | 11 | p(y ∣ x)는 두 라벨 가운데 고른 것일 뿐이다. 그림이 얼마나 그럴듯한지는 p(x ∣ y)에 있다 |
요약
세로 막대 「∣」의 오른쪽은 이미 아는 것(조건), 왼쪽은 묻는 것이다. 조건부 확률은 조건에 맞는 경우만 남기고 그 안에서 다시 잰 확률이고, p(a ∣ b) = p(a, b) ÷ p(b)다. 조건 하나를 고정하고 묻는 쪽의 모든 값에 걸친 확률을 모으면 조건부 분포가 되고, 그 합은 1이다. 결합 확률을 한 변수의 모든 값에 걸쳐 더해 그 변수를 지우면 주변확률이 남는다. b를 지우면 p(a) = Σ p(a, b) = Σ p(a ∣ b) p(b)이고, Σ는 b의 모든 값에 걸쳐 더한다. 조건부 확률을 조건의 주변확률로 무게 매겨 더한 값이라, 단순 평균과는 다르다. 변수가 연속이면 같은 연산을 적분으로 해서 p(x) = ∫ p(x, z) dz가 되고, 생성 모델이 바라는 p(x)도 잠재 변수 z를 이렇게 지워야 얻는다. 주변 분포 둘만으로는 결합 확률을 되살릴 수 없다. 조건을 뒤집은 p(a ∣ b)와 p(b ∣ a)는 분자가 같고 분모가 달라, 조건으로 세운 한쪽 집단(환자처럼)이 작으면 몇 배씩 벌어진다. 뒤집는 식이 베이즈 정리인데, 뒤집을 때는 원인의 비율 p(a)를 곱해야 한다. 관측을 보기 전의 확률을 사전확률, 본 뒤의 확률을 사후확률이라 한다. 그림과 라벨에서 p(y ∣ x)는 라벨 몇 개에 걸친 짧은 막대이고 분류기가 내놓는다. p(x ∣ y)는 그림 전체의 공간에 퍼진 분포이고, p(x ∣ y)의 값은 밀도라서 넓이를 곱해야 확률이 된다. 그림의 가짓수가 너무 많아 p(x ∣ y)는 표로 적을 수 없다. 그래서 라벨을 받아 그림을 내놓는 조건부 생성은 p(x ∣ y)에서 하나씩 뽑는 일이 된다. 코드에서 분포는 숫자 하나, 표, 파라미터 몇 개, 뽑는 함수(샘플러) 가운데 하나로 담긴다. 뒤로 갈수록 담을 수 있는 모양은 넓어지고, 밀도 읽기·곱하기·조건 걸기처럼 정해진 계산으로 바로 끝나는 일은 줄어든다. 뽑는 함수 형태에서 결합 분포는 뽑는 순서로, 주변화는 변수 하나를 보지 않는 일로, 조건 걸기는 맞지 않는 샘플을 버리는 일로 바뀌고, 조건이 드물면 남는 샘플이 적어 값이 흔들린다. 표로 계산할 수 있는 동안은 끝까지 표로 계산하고 숫자 하나나 샘플로는 마지막에 줄인다. 뽑힌 값은 정수 칸 번호라서, 뽑은 다음의 평균은 파라미터로 미분되지 않는다.
flowchart LR A["결합 확률 표<br/>p(a, b)"] --> B["줄이나 칸으로 자르기<br/>조건부 분포 p(a ∣ b)"] A --> M["한쪽을 모두 더해 지우기<br/>주변확률 p(a) = Σ p(a ∣ b) p(b)"] M --> N["연속이면 적분<br/>p(x) = ∫ p(x, z) dz"] M --> D B --> C["방향을 뒤집으면 다른 값<br/>p(a ∣ b) ≠ p(b ∣ a)"] C --> D["베이즈 정리<br/>원인의 비율 p(a)를 곱한다"] D --> E["사전확률 → 사후확률"] B --> F["그림과 라벨<br/>p(y ∣ x): 짧은 막대"] F --> G["p(x ∣ y): 그림 공간에 퍼진 분포<br/>표로 적을 수 없다"] G --> H["조건부 생성<br/>p(x ∣ y)에서 하나씩 뽑기"] H --> I["코드로 담는 형태<br/>숫자 하나 · 표 · 파라미터 · 뽑는 함수"] I --> J["뽑는 시점<br/>표로 끝까지, 뽑으면 그래디언트가 끊긴다"]
정리 연습문제
물음. 카페 주문 기록에서 「커피를 시킨 주문 가운데 케이크도 시킨 비율」과 「케이크를 시킨 주문 가운데 커피도 시킨 비율」을 잰다. 둘 다 커피와 케이크를 함께 시킨 주문 수를 센다. 두 비율은 어떤가?
- [ ] 함께 시킨 주문 수가 같으니 두 비율도 같다 〔틀림: 세는 주문은 같아도 나누는 수가 다르다. 앞은 커피를 시킨 주문 수로, 뒤는 케이크를 시킨 주문 수로 나눈다.〕
- [x] 대개 다르다. 어느 주문만 남겨 그 안에서 다시 쟀는지가 다르다 〔맞음: 조건부 확률은 조건에 맞는 경우만 남기고 그 안에서 다시 잰 확률이다. 남긴 주문의 수가 다르면 비율도 달라진다.〕
- [ ] 두 비율을 더하면 1이 된다 〔틀림: 합이 1이 되는 것은 조건을 하나로 고정하고 묻는 사건의 모든 경우를 더할 때뿐이다. 두 비율은 조건이 서로 다르다.〕
물음. 한 학교에서 버스로 오는 학생이 전체의 4분의 1이고 그 가운데 40%가 지각한다. 걸어오는 학생은 4분의 3이고 아무도 지각하지 않는다. 학교 전체의 지각률은?
- [ ] 20%. 두 집단의 지각률 40%와 0%를 평균한다 〔틀림: 두 집단의 크기가 다르다. 집단마다의 지각률에 그 집단의 비율을 곱해 더해야 한다.〕
- [x] 10% 〔맞음: 주변확률은 조건부 확률을 조건의 비율로 무게 매겨 더한 값이다. 4분의 1에 40%를 곱하고, 4분의 3에 0%를 곱해 더한다.〕
- [ ] 알 수 없다. 집단마다의 비율만으로는 전체를 셀 수 없다 〔틀림: 집단마다의 지각률에 더해 집단이 전체에서 차지하는 비율도 주어졌다. 둘을 곱해 더하면 전체 지각률이 나온다.〕
물음. 잠재 변수 z가 연속인 값을 갖는 생성 모델에서 그림 x의 확률 p(x)를 구하려 한다. 어떻게 구하는가?
- [ ] 가장 흔한 잠재 변수 값 하나를 넣고, 그 잠재 변수에서 그림이 나올 확률을 쓴다 〔틀림: 그 그림을 만든 잠재 변수는 흔한 값이 아닐 수 있다. 값 하나만 쓰면 다른 값에서 그 그림이 나올 확률을 모두 버린다.〕
- [ ] 잠재 변수 값 몇 개에서 그림이 나올 확률을 구해 단순 평균한다 〔틀림: 잠재 변수 값마다 그 값이 나올 확률로 무게를 매겨야 한다.〕
- [x] 잠재 변수가 주어졌을 때 그림이 나올 확률에 그 잠재 변수의 확률을 곱해, 잠재 변수의 모든 값에 걸쳐 적분한다 〔맞음: 연속인 변수를 지우는 주변화는 적분이다. 띄엄띄엄인 변수에서 모두 더하던 연산을 적분으로 한다.〕
물음. 비 오는 날 밖에 나온 사람의 90%가 우산을 든다. 길에서 우산을 든 사람을 보았을 때, 그날 비가 올 확률은?
- [ ] 90%이다 〔틀림: 비가 올 때 우산을 드는 확률을 거꾸로 읽었다. 조건을 뒤집으면 나누는 수가 바뀐다.〕
- [ ] 10%이다 〔틀림: 10%는 비 오는 날 우산을 들지 않는 사람의 비율이다. 묻는 것과 조건이 모두 다르다.〕
- [x] 이것만으로는 알 수 없다. 비 오는 날의 비율과 맑은 날 우산을 드는 비율도 있어야 한다 〔맞음: 베이즈 정리로 뒤집을 때는 원인의 비율인 사전확률을 곱하고, 우산을 든 모든 경우의 확률로 나눈다.〕
물음. 「고양이」 라벨이 주어졌을 때 사진의 분포를 적은 식에 사진 한 장을 넣었더니 2.7이 나왔다. 2.7이라는 수를 어떻게 읽는가?
- [ ] 확률이 1을 넘었으니 계산이 틀렸다 〔틀림: 사진의 공간은 연속이라 2.7은 확률이 아닌 밀도다. 밀도는 1을 넘을 수 있다.〕
- [x] 밀도다. 그 사진 둘레의 작은 넓이를 곱해야 확률이 된다 〔맞음: 연속인 공간에서는 한 점의 확률이 0이고, 밀도에 넓이를 곱한 값이 그 둘레에 사진이 나올 확률이다.〕
- [ ] 그 사진이 고양이 사진일 확률이 2.7%라는 뜻이다 〔틀림: 라벨이 주어졌을 때의 사진 분포에서 나온 값이다. 사진이 그 라벨일 확률은 분류기가 내놓는 반대 방향의 확률이다.〕
물음. 라벨 「고양이」를 받아 사진을 내놓는 생성기는 무엇을 해야 하는가?
- [ ] 고양이 사진 가운데 가장 고양이다운 사진 하나를 늘 내놓는다 〔틀림: 같은 라벨에도 맞는 사진이 여럿이다. 하나만 내놓으면 나머지 고양이 사진은 영영 나오지 않는다.〕
- [ ] 분류기가 「고양이」라고 가장 크게 확신하는 사진을 내놓는다 〔틀림: 분류기의 확신은 라벨 몇 개 가운데 고른 정도일 뿐이다. 사진이 얼마나 그럴듯한지는 라벨이 주어졌을 때의 사진 분포에 있다.〕
- [x] 라벨이 주어졌을 때의 사진 분포에서 한 장씩 뽑는다 〔맞음: 그 분포는 너무 넓어 표로 적을 수 없으니, 생성기는 그 분포에서 뽑아 내놓는 기계여야 한다.〕
물음. 응답 셋 가운데 하나를 고르는 모델이 로짓을 소프트맥스로 바꿔 확률표를 내놓는다. 응답마다 점수가 정해져 있을 때, 평균 점수를 로짓으로 미분한 값을 얻는 계산은?
- [ ] 응답 1,000개를 뽑아 점수를 평균 내고, 같은 난수로 로짓을 0.001 바꿔 다시 뽑아 차이를 잰다 〔틀림: 뽑힌 칸 번호는 정수라 로짓을 조금 바꿔도 대개 그대로다. 평균이 바뀌지 않아 그래디언트가 0으로 나온다.〕
- [x] 확률표의 칸마다 확률과 점수를 곱해 더한 기댓값을 로짓으로 미분한다 〔맞음: 표로 끝까지 계산한 기댓값에는 로짓이 그대로 들어 있어 미분된다. 응답이 셋뿐이라 표로 끝까지 계산할 수 있다.〕
- [ ] 확률이 가장 높은 응답 하나를 골라 그 점수를 로짓으로 미분한다 〔틀림: 고른 응답 하나의 점수는 정해진 숫자라 로짓이 들어 있지 않다. 숫자 하나로 줄이는 순간 확률이 지워진다.〕
막힌 곳
라벨이 주어진 그림의 분포 p(x ∣ y)가 생성이 배워야 할 것이고, 생성기는 그 분포에서 하나씩 뽑아 내놓는 기계여야 한다는 것까지 왔다. 특징 두 개짜리 평면에서는 p(x ∣ y)를 정규분포로 정해 두었으니 뽑기가 쉬웠다. 실제 사진의 분포 p(x ∣ 고양이)는 아무도 모양을 알려 주지 않아서, 가진 것은 「고양이」 라벨이 붙은 사진 수천 장뿐이다. 분류기는 사진마다 붙은 정답 라벨 하나를 맞히도록 학습했다. 라벨 하나에 맞는 사진이 수천 장인데, 생성기에게는 무엇을 맞히라고 가르쳐야 할까?