무지와 확신

베이즈 업데이트: 곱셈으로 걷는 길

베이즈 업데이트에서는 사전분포에 우도(가설이 맞을 때 관측이 나올 확률)를 곱한다. 왜 덧셈이 아니라 곱셈인가? 섞는 것이 「모른다」의 표현이었다면, 곱하는 것은 무엇의 표현인가?

의사의 낮: 검사 결과를 곱하다

오후. MRI 결과가 나왔는데, MRI는 녹내장에는 반응하지 않고 편두통과 고혈압에만 특정 패턴을 보인다. 이 정보(우도)를 아침의 믿음(사전분포)에 곱한다.

곱셈이 하는 일을 보자. 녹내장에서는 MRI 우도가 0에 가까우므로 녹내장 확률이 눌리고, 편두통과 고혈압만 살아남아 세 봉우리가 두 봉우리로 줄었다. 「겹치는 영역만 살아남는다」.

사전 (0.4, 0.3, 0.3)에 MRI 우도 (1, 0.05, 1)을 곱하고 합이 1이 되게 나누면 사후 (0.559, 0.021, 0.420). 녹내장 막대가 눌린다
사전 (0.4, 0.3, 0.3)에 MRI 우도 (1, 0.05, 1)을 곱하고 합이 1이 되게 나누면 사후 (0.559, 0.021, 0.420). 녹내장 막대가 눌린다

혈액검사가 추가로 나오면 그 우도를 또 곱하는데, 고혈압의 증거가 약하면 고혈압 확률도 눌려서 마지막에는 편두통 하나만 남는다. 이 이야기에서는 곱할 때마다 봉우리가 줄고 분포가 좁아지므로, 「곱셈은 증거가 쌓여 믿음이 좁아지는 과정을 기록한다」고 말할 수 있다.

다만 「이 이야기에서는」이라는 단서를 붙여 두자. 곱셈이 언제나 분포를 좁히지는 않는다는 것을 다음 절의 반례에서 본다.

이미지 생성의 프롬프트 확장: 가능성을 좁히다

다시 Stable Diffusion. 이번에는 와일드카드 대신 쉼표(,)로 조건을 덧붙여, 「1girl」을 「1girl, smiling」으로 늘린다.

「smiling」은 웃는 소녀의 이미지는 통과시키고 나머지는 누르는 필터처럼 읽히는데, 조건을 하나 더 거는 이 일을 확률로 옮기면 곱이 된다. p(그림 | 1girl) × p(smiling | 그림). 두 조건이 겹치는 영역만 살아남는다.

프롬프트를 더 늘리면 조건마다 필터가 하나씩 곱해지고, 가능한 이미지의 범위가 점점 좁아진다.

1girl, smiling, red hair, school uniform, cherry blossom

각 조건은 로그 공간에서 더해진다. log p(그림 | 모든 조건) = log p(그림 | 1girl) + log p(smiling | 그림) + log p(red hair | 그림) + … − log Z. 곱셈이 로그 공간의 덧셈이 된다. 마지막 항의 log Z는 조건들을 곱한 뒤 전체 확률을 다시 1로 되돌리는 정규화 상수다.

로그 공간의 덧셈 식은 프롬프트를 확률로 옮겨 본 것이다. 보통의 이미지 모델은 쉼표로 이은 프롬프트 전체를 한 번에 읽어 그림을 만들 뿐, 조건마다 확률을 따로 곱하지 않는다. 조건마다 따로 계산해 곱하도록 만든 방법도 있다. 2022년 리우(Nan Liu) 등의 합성 디퓨전(Composable Diffusion)은 「A AND B」를 p(그림) × p(A | 그림) × p(B | 그림)에 비례하는 분포로 정의하고, 두 조건이 그림을 두고 서로 독립이라고 가정해 이 곱을 계산한다.

바다 밑 수색: 찾지 못한 것도 곱한다

실종된 비행기나 배를 몇 달씩 찾는다는 뉴스를 들으면, 한 번 훑고도 아무것도 못 찾은 바다를 왜 꼼꼼히 기록해 두는지 궁금해진다. 「찾지 못했다」도 검사 결과 하나이기 때문이다. 수색대는 「못 찾음」이라는 결과를 의사가 MRI 결과를 곱하듯 수색 지도에 곱한다.

바다를 A, B, C, D 네 칸으로 나누고, 표류 계산과 목격담으로 잔해가 각 칸에 있을 사전 확률을 (0.4, 0.3, 0.2, 0.1)로 잡았다고 하자. 음파 탐지기로 한 칸을 훑으면 잔해가 훑은 칸에 있을 때 열 번에 아홉 번 찾아낸다(탐지 확률 0.9). 가장 그럴듯한 A를 훑었는데 못 찾았다. 「못 찾음」의 우도는 잔해가 A에 있으면 1 − 0.9 = 0.1, 다른 칸에 있으면 1이다. 사전에 곱하면 (0.04, 0.3, 0.2, 0.1)이고, 합 0.64(A를 훑어 못 찾을 확률)로 나누면 (0.062, 0.469, 0.312, 0.156)이다. A의 확률은 0.4에서 0.062로 눌렸고, A에서 줄어든 확률은 나머지 칸에 원래 비율대로 나뉘어 B가 가장 그럴듯한 칸이 되었다. 이어서 B도 못 찾으면 (0.108, 0.081, 0.541, 0.270)이 되어 다음에 훑을 칸은 C다. B를 먼저, A를 나중에 훑어도 결과는 같은데, 두 번의 「못 찾음」은 A와 B에 0.1을 하나씩 곱하는 일이라 순서를 바꿔도 곱은 (0.04, 0.03, 0.2, 0.1)로 같고, 합 0.37로 나누면 같은 (0.108, 0.081, 0.541, 0.270)이 나오기 때문이다. 같은 칸을 거듭 훑을 때도 곱셈이 그대로 쌓여서, A를 두 번 훑어 두 번 다 못 찾은 것은 A에 우도 0.1의 제곱 0.1² = 0.01을 한 번 곱한 것과 같다.

바다를 네 칸으로 나눈 수색 지도. 사전 (0.4, 0.3, 0.2, 0.1)에서 A를 탐지 확률 0.9로 훑어 못 찾으면 (0.062, 0.469, 0.312, 0.156), 이어서 B도 못 찾으면 (0.108, 0.081, 0.541, 0.270). 오른쪽 아래는 A의 신호기가 죽어 실제 탐지 확률이 0인데 0.77로 셈한 경우로, 잔해가 있는 A가 0.133으로 밀려난다(sources/10-무지와확신/fig_search.py)
바다를 네 칸으로 나눈 수색 지도. 사전 (0.4, 0.3, 0.2, 0.1)에서 A를 탐지 확률 0.9로 훑어 못 찾으면 (0.062, 0.469, 0.312, 0.156), 이어서 B도 못 찾으면 (0.108, 0.081, 0.541, 0.270). 오른쪽 아래는 A의 신호기가 죽어 실제 탐지 확률이 0인데 0.77로 셈한 경우로, 잔해가 있는 A가 0.133으로 밀려난다(sources/10-무지와확신/fig_search.py)

이 계산법은 전쟁에서 나왔다. 2차 세계대전 중인 1943년부터 미 해군 작전연구 그룹에서 잠수함 탐색을 연구한 쿠프먼(Bernard Koopman)이 연구 결과를 1946년 보고서 「탐색과 차단(Search and Screening)」으로 묶었고, 이 연구가 베이즈 탐색 이론의 바탕이 되었다. 1966년 스페인 팔로마레스 앞바다에 떨어진 수소폭탄을 찾을 때도, 1968년 5월 귀항하지 않은 미 해군 잠수함 스코피온을 찾을 때도 이 방법을 썼다. 스코피온은 크레이븐(John Craven)의 팀이 일어났을 법한 사고 경위마다 확률을 매겨 만든 지도를 따라 수색한 끝에, 그해 10월 말 아조레스 제도 남서쪽 바다 3,000 m 아래에서 발견되었다.

곱셈이 믿음을 제대로 옮기려면 곱하는 우도가 맞아야 한다. 2009년 6월 1일 대서양에서 사라진 에어프랑스 447편(탑승 228명)의 수색에서 우도가 틀렸을 때 어떻게 되는지 볼 수 있다. 사고 직후 31일 동안 배 두 척이 블랙박스에 달린 수중 위치 신호기의 소리를 들으며 비행 경로를 훑었지만 아무것도 듣지 못했다. 두 해의 수색이 실패한 뒤 프랑스 사고조사국(BEA)의 의뢰로 스톤(Lawrence Stone) 등이 그때까지의 실패를 모두 지도에 곱했는데, 이 청음 수색의 탐지 확률을 0.77로 잡아 훑은 자리에 1 − 0.77 = 0.23을 곱했다. 그런데 잔해는 바로 그 청음 수색이 촘촘히 훑은 구역 안에 있었고, 회수한 신호기는 충전된 전지를 이어도 소리를 내지 않았다. 신호기가 망가져 있었다면 배가 아무리 가까이 지나가도 들을 소리가 없으니 실제 탐지 확률은 0이고 「못 찾음」의 우도는 1이어야 했는데, 지도는 청음 수색이 훑은 구역에 0.23을 곱했던 것이다. 네 칸 지도로 옮기면, 잔해가 실제로 A에 있는데 A에 0.23을 곱하면 A의 확률이 0.4에서 0.133으로 내려가 수색 순서가 B와 C 뒤로 밀린다. 스톤의 팀은 신호기가 고장 났다고 가정한 지도를 따로 만들었고, 2011년 수색은 그 지도의 확률이 높은 구역에서 한 주 만에 잔해를 찾았다(스톤 외 2014). 곱셈은 우도가 말하는 만큼만 믿음을 옮기므로, 우도가 틀리면 사후분포도 틀린다.

식으로

두 분포 p0, p1을 곱해서 잇는 경로를 기하평균 보간이라 한다.

pt(x)=p0(x)1−t p1(x)tZ(t),log⁡pt=(1−t)log⁡p0+tlog⁡p1−log⁡Z(t)\textcolor{#d6479f}{p}_t(\textcolor{#6f8fa6}{x}) = \frac{\textcolor{#d6479f}{p}_0(\textcolor{#6f8fa6}{x})^{1-\textcolor{#007800}{t}}\, \textcolor{#d6479f}{p}_1(\textcolor{#6f8fa6}{x})^{t}}{\textcolor{#7d8a3a}{Z}(\textcolor{#007800}{t})}, \qquad \log \textcolor{#d6479f}{p}_t = (1-\textcolor{#007800}{t}) \log \textcolor{#d6479f}{p}_0 + \textcolor{#007800}{t} \log \textcolor{#d6479f}{p}_1 - \log \textcolor{#7d8a3a}{Z}(\textcolor{#007800}{t})
p0, p1양 끝의 두 분포pt길 위의 분포Z(t)정규화 상수, ∑xp0(x)1−tp1(x)tx샘플t보간 비율\begin{array}{ll} \textcolor{#d6479f}{p}_0,\ \textcolor{#d6479f}{p}_1 & \text{양 끝의 두 분포} \\ \textcolor{#d6479f}{p}_t & \text{길 위의 분포} \\ \textcolor{#7d8a3a}{Z}(\textcolor{#007800}{t}) & \text{정규화 상수, } \sum_x p_0(x)^{1-t} p_1(x)^t \\ \textcolor{#6f8fa6}{x} & \text{샘플} \\ \textcolor{#007800}{t} & \text{보간 비율} \end{array}

기하평균 보간 pt에 로그를 씌우면 t에 대한 직선이 된다. 이 경로를 e-측지선(로그 밀도를 더해 잇는 측지선, 곧 확률을 곱해 잇는 측지선)이라 한다. m-측지선이 밀도를 더하는 직선이었다면, e-측지선은 로그 밀도를 더하는 직선이다.

베이즈 업데이트는 사전분포와 사후분포를 잇는 e-측지선 위에 있다.

π(h∣y)=π(h) L(y∣h)∑h′π(h′) L(y∣h′),πt(h)∝π(h) L(y∣h)t\textcolor{#7f8f10}{\pi}(\textcolor{#b83840}{h} \mid \textcolor{#506890}{y}) = \frac{\textcolor{#139696}{\pi}(\textcolor{#b83840}{h})\, \textcolor{#b58a00}{L}(\textcolor{#506890}{y} \mid \textcolor{#b83840}{h})}{\sum_{\textcolor{#b83840}{h'}} \textcolor{#139696}{\pi}(\textcolor{#b83840}{h'})\, \textcolor{#b58a00}{L}(\textcolor{#506890}{y} \mid \textcolor{#b83840}{h'})}, \qquad \textcolor{#7f8f10}{\pi}_t(\textcolor{#b83840}{h}) \propto \textcolor{#139696}{\pi}(\textcolor{#b83840}{h})\, \textcolor{#b58a00}{L}(\textcolor{#506890}{y} \mid \textcolor{#b83840}{h})^{\textcolor{#007800}{t}}
π(h)사전분포: 가설 h 에 대한 아침의 믿음L(y∣h)우도: 가설 h 가 맞을 때 검사 결과 y 가 나올 확률π(h∣y)사후분포: 결과를 본 뒤의 믿음πt(h)우도를 t 제곱만 반영한 중간 믿음 (t=0 사전, t=1 사후)h, h′가설 (편두통, 녹내장, 고혈압)y검사 결과\begin{array}{ll} \textcolor{#139696}{\pi}(\textcolor{#b83840}{h}) & \text{사전분포: 가설 } h \text{ 에 대한 아침의 믿음} \\ \textcolor{#b58a00}{L}(\textcolor{#506890}{y} \mid \textcolor{#b83840}{h}) & \text{우도: 가설 } h \text{ 가 맞을 때 검사 결과 } y \text{ 가 나올 확률} \\ \textcolor{#7f8f10}{\pi}(\textcolor{#b83840}{h} \mid \textcolor{#506890}{y}) & \text{사후분포: 결과를 본 뒤의 믿음} \\ \textcolor{#7f8f10}{\pi}_t(\textcolor{#b83840}{h}) & \text{우도를 } \textcolor{#007800}{t} \text{ 제곱만 반영한 중간 믿음 } (\textcolor{#007800}{t} = 0 \text{ 사전, } \textcolor{#007800}{t} = 1 \text{ 사후}) \\ \textcolor{#b83840}{h},\ \textcolor{#b83840}{h'} & \text{가설 (편두통, 녹내장, 고혈압)} \\ \textcolor{#506890}{y} & \text{검사 결과} \end{array}

식의 π는 원주율이 아니라 가설 위의 믿음(분포)을 적는 글자다. 우도를 조금씩(t만큼) 반영하며 사전에서 사후로 가는 길 πt는 사전과 사후를 잇는 기하평균 보간과 정확히 같은 곡선이다. 사후 ∝ 사전 × 우도이므로, 사전1−t × 사후t ∝ 사전 × 우도t이기 때문이다. 다시 말해 베이즈 업데이트는 e-측지선(로그 밀도를 더해 잇는 측지선)을 따라 걷는 일이다.

직접 움직여 보기

불러오는 중…

파이썬

import numpy as np

def H(p):
    p = p[p > 0]
    return -np.sum(p * np.log(p)) + 0.0     # -0.0 을 0.0 으로

def update(prior, lik, t=1.0):              # 사전 × 우도^t, 정규화
    u = prior * lik**t
    return u / u.sum()

# 아침의 믿음: 편두통, 녹내장, 고혈압.  MRI: 녹내장에는 반응 없음
prior = np.array([0.4, 0.3, 0.3])
mri = np.array([1.0, 0.05, 1.0])
for t in [0, 0.5, 1]:
    q = update(prior, mri, t)
    print(f"t={t:<3}  {np.round(q, 3)}  H {H(q):.3f}")
# t=0    [0.4 0.3 0.3]  H 1.089
# t=0.5  [0.521 0.087 0.391]  H 0.920
# t=1    [0.559 0.021 0.42 ]  H 0.770

우도를 반만 반영한 믿음 π0.5는 녹내장을 이미 0.087까지 눌렀다. 사전에서 사후로 가는 e-측지선 위에서 엔트로피는 1.089에서 0.770으로 줄어든다.

이 절의 결론

「프롬프트에 쉼표로 조건을 더하는 것을 확률로 옮기면 곱셈이 된다. 확률을 곱해 잇는 경로는 로그 밀도를 더하는 직선(e-측지선)이고, 베이즈 업데이트는 사전에서 사후로 가는 e-측지선을 따라 걷는다.」

인물 이야기: 베이즈와 「역방향 확률」

토머스 베이즈의 초상으로 전해지는 그림. 출처: Wikimedia Commons, 퍼블릭 도메인
토머스 베이즈의 초상으로 전해지는 그림. 출처: Wikimedia Commons, 퍼블릭 도메인

그림: 1936년에 나온 생명보험 역사책에 「T. 베이즈 목사」로 실린 초상. 머리 모양과 옷차림이 베이즈가 살던 18세기 것과 맞지 않아, 실제로 베이즈인지는 의심받는다. 출처 Wikimedia Commons, 퍼블릭 도메인

1730년대, 잉글랜드 턴브리지웰스. 토머스 베이즈(Thomas Bayes)는 이곳 마운트 시온 예배당의 장로교 목사였다(1752년까지). 직업 수학자는 아니었고, 생전에 낸 수학 저작도 익명의 소책자 하나뿐이었다. 1736년, 철학자이자 주교인 버클리(George Berkeley)의 비판에 맞서 뉴턴의 유율법(미적분)을 변호한 글이다. 그래도 수학 실력은 알려져 있었던지, 1742년 왕립학회 회원이 되었다.

그가 남긴 문제는 이것이었다. 무언가가 일어난 횟수와 일어나지 않은 횟수만 알 때, 그 일이 한 번에 일어날 확률이 어느 범위에 있다고 말할 수 있는가? 논문은 이 문제를 네모난 탁자 위의 공으로 푼다. 공 하나를 던져 멈춘 자리를 모른 채, 공을 더 던져 그 공들이 첫 공의 왼쪽에 몇 번 멈췄는지만 세고, 그 횟수로 첫 공의 자리를 거꾸로 추론한다. 흔히 당구대 이야기로 옮겨지지만 베이즈 자신은 당구라는 말을 쓰지 않았다. 프라이스가 논문 끝에 붙인 부록에는 복권 예도 있는데, 꽝 열 장과 당첨 한 장을 본 사람이 꽝과 당첨의 참 비율이 9 : 1에서 11 : 1 사이에 있을 확률을 셈하면 7.7%쯤이다. 꽝 1만 장과 당첨 1천 장을 보고 나면, 프라이스는 그 확률이 0.974보다 크다는 데까지만 셈할 수 있었다. 오늘 컴퓨터로 다시 셈하면 99.7%쯤이다.

꽝과 당첨을 더 많이 볼수록 당첨 비율의 사후 믿음이 1/11 근처로 좁아지고, 꽝 : 당첨이 9 : 1에서 11 : 1 사이일 확률이 7.7%에서 99.7%로 오른다. 베이즈 논문(1763)에 프라이스가 붙인 부록의 복권 예를 고른 사전 믿음으로 이 책에서 다시 계산해 그렸다
꽝과 당첨을 더 많이 볼수록 당첨 비율의 사후 믿음이 1/11 근처로 좁아지고, 꽝 : 당첨이 9 : 1에서 11 : 1 사이일 확률이 7.7%에서 99.7%로 오른다. 베이즈 논문(1763)에 프라이스가 붙인 부록의 복권 예를 고른 사전 믿음으로 이 책에서 다시 계산해 그렸다

설명을 위해 더 익숙한 예로 바꿔 보자(베이즈의 원래 예는 아니다). 동전을 열 번 던져서 앞면이 일곱 번 나왔다고 하자. 앞면 확률이 0.7인 동전이 열 번 중 일곱 번 앞면을 낼 확률은 계산할 수 있으니 순방향은 쉽지만, 일곱 번의 앞면을 본 뒤 앞면 확률이 얼마인지를 역으로 추론하는 역방향은 어렵다.

답의 핵심은 던지기 전에 앞면 확률에 대해 이미 갖고 있는 믿음, 「사전 확률(prior)」이다. 그 믿음에 데이터의 우도를 곱해서 업데이트하면 새로운 믿음(사후 확률, posterior)이 된다.

사전 × 우도 → 사후. 이 관계를 베이즈 정리라 하는데, 사전에 우도를 「곱한다」는 이 연산이 바로 이 장의 주제다.

곱한다는 것은 AND다. 사전 믿음이 「이 동전은 대체로 공정할 것이다」이고 데이터가 「앞면이 많이 나왔다」이면, 두 정보가 함께 지지하는 곳만 살아남아서 사후는 대개 사전보다 좁아진다. 믿음이 한쪽으로 모이는 방향이지만, 언제나 좁아지는 것은 아니다.

베이즈는 1761년 4월에 세상을 떠났다. 친구 리처드 프라이스(Richard Price)가 유고에서 이 논문을 찾아 2년 가까이 다듬은 뒤, 1763년 12월 왕립학회에서 읽히게 했다. 프라이스는 서문을 쓰고 고친 곳과 보탠 곳을 더했으며, 베이즈가 남긴 두 풀이 가운데 하나를 골라 실었다. 「베이즈의 정리」에는 사실 프라이스의 공로가 적지 않다.

1774년, 프랑스의 라플라스(Pierre-Simon Laplace)가 베이즈의 논문을 모르는 채로 같은 생각에 이르러 훨씬 더 체계적으로 발전시켰다. 오늘 우리가 「베이즈적」이라 부르는 넓은 해석을 펼치고 퍼뜨린 사람은 오히려 라플라스였다.

이 장에서 「곱셈은 증거가 쌓이는 과정을 기록한다」고 했는데, 베이즈와 라플라스가 연 문이 바로 새로운 증거를 곱하며 믿음을 고쳐 가는 과정이다. 그 과정이 파라미터 공간에서 e-측지선을 따라 걷는 것임이 기하학의 말로 쓰이기까지는 200년이 넘게 걸렸다.

김민준 M01
김민준

꽝 열 장과 당첨 한 장을 보고 7.7%를 낸 거면, 지금은 scipy 함수 한 줄이면 나오는 값이네요. 탁자에 공을 던지는 이야기까지 꺼낼 일이었나 싶어요.

선생님 T01
선생님

그 함수가 속에서 하는 일은 곡선 아래 넓이를 재는 거예요. 당첨 비율이 1/12과 1/10 사이에 있을 확률이 그 넓이니까요. 꽝 1만 장과 당첨 1천 장을 본 뒤라면, 그 곡선은 몇 차 다항식일까요?

김민준 M04
김민준

음, 당첨 비율 p를 천 번, 1 − p를 만 번 곱하니까… 11,000차요. 그걸 손으로 전개해서 넓이를 구하라는 건 말이 안 되네요.

선생님 T01
선생님

그래서 베이즈의 논문은 수가 커질 때 그 넓이가 들어갈 범위를 근사하는 규칙을 따로 세웠고, 프라이스는 1764년에 그 규칙의 증명을 보충하는 글을 다시 냈어요. 넓이 하나를 구하는 데 규칙과 그 증명이 따로 필요했던 거예요.

이서연 S01
이서연

넓이는 그렇다 치고, 탁자는 왜 나와요? 동전이라면 앞면 확률에 대한 처음 믿음부터 정해야 하는데, 그걸 무엇으로 정할지 근거가 없잖아요.

선생님 T01
선생님

거기가 탁자가 맡은 일이에요. 탁자에 굴린 첫 공은 어디에나 고르게 멈추니까, 처음 믿음이 고르다는 것을 공을 던지는 장면이 정해 줘요. 베이즈가 문제를 공 던지기로 짠 것을 그렇게 읽는 연구자가 많아요.

이서연 S03
이서연

그럼 처음 믿음을 정해 두고 증거를 한 장씩 곱해 간 거네요. 꽝 열 장에서 1만 장으로 늘어나는 동안 믿음이 지나간 자리를 이으면, 그건 사전과 사후를 섞는 길이에요, 곱하는 길이에요?

문제 4. 앞면이 세 번 나온 동전

친구가 동전 두 개 가운데 하나를 집어 왔다. 하나는 공정한 동전(앞면 0.5)이고 하나는 앞면이 0.8로 나오는 기운 동전이다. 어느 쪽인지에 대한 처음 믿음은 반반인 상태에서 이 동전을 던졌더니 앞면이 세 번 연속 나왔다. (가) 앞면을 한 번, 두 번, 세 번 본 뒤마다 기운 동전일 확률을 구하라. (나) 앞면 세 번을 한꺼번에 반영한 것과 한 번씩 차례로 반영한 것은 같은가? (다) 세 번 본 뒤의 믿음을 「앞면 한 번의 우도를 t 제곱만큼 반영한 믿음」으로 쓰면 t는 얼마인가?

앞면 확률이 0.5인 공정한 동전과 0.8인 기운 동전, 반반인 처음 믿음, 연속 세 번의 앞면
앞면 확률이 0.5인 공정한 동전과 0.8인 기운 동전, 반반인 처음 믿음, 연속 세 번의 앞면

함께 풀기

김민준 M01
김민준

앞면이 나올 때마다 믿음을 기운 동전의 앞면 확률 0.8 쪽으로 반씩 옮겼어요. 0.5 → 0.65 → 0.725 → 0.763이요.

선생님 T01
선생님

앞면이 백 번 연속 나오면 그 방식으로는 몇이 돼요?

김민준 M04
김민준

0.8에 거의 붙어요. …백 번 연속 앞면이면 거의 확실히 기운 동전인데 0.8에서 멈추네요. 동전의 앞면 확률이랑 「기운 동전일 확률」을 섞어 버렸어요.

이서연 S01
이서연

곱해야 해. 앞면 한 번의 우도는 공정한 쪽이 0.5, 기운 쪽이 0.8이야. 0.5 × 0.8 : 0.5 × 0.5 = 0.4 : 0.25, 정규화하면 0.615. 두 번이면 0.719, 세 번이면 0.804야.

선생님 T01
선생님

(나)는요?

이서연 S01
이서연

한꺼번에 반영하면 우도가 0.8³ = 0.512 대 0.5³ = 0.125라서, 정규화하면 똑같이 0.804예요. 곱셈은 순서도 묶는 방법도 가리지 않으니까요.

선생님 T01
선생님

수색 지도에서도 그랬어요. A를 탐지 확률 0.9로 두 번 훑어 두 번 다 못 찾았다면, 두 번을 한꺼번에 반영할 때 A에 무엇을 곱하죠?

김민준 M07
김민준

0.1을 두 번이니까 0.01이요. 사전 0.4에 곱하면 0.004이고, 나머지 0.3, 0.2, 0.1은 그대로라 합이 0.604예요.

선생님 T01
선생님

나누면 A는 얼마죠? 한 번씩 반영할 때와도 맞춰 봐요.

김민준 M01
김민준

A는 0.007이에요. 한 번씩 반영해도 0.4에서 0.062, 다시 0.007로 같아요. 동전의 앞면 세 번이랑 똑같네요.

김민준 M07
김민준

(다)는 앞면 한 번의 우도를 세제곱한 거니까 t = 3이요. 중간 믿음 식에서 t는 0에서 1까지만 쓰는 줄 알았는데, 1보다 크면 같은 증거를 여러 번 본 거네요.

김민준 M01
김민준

맛집 리뷰가 하나일 때보다 세 개가 다 「맛있다」일 때 훨씬 믿게 되는데, 그게 평균이 아니라 곱으로 쌓이는 거네요.

문제 5. 우도를 반만 믿으면

사전이 (0.4, 0.3, 0.3)일 때 이번에는 혈액검사 결과가 나왔고, 그 우도는 (0.6, 1, 0.1)이다. (가) 우도를 t = 0.5 제곱만 반영한 중간 믿음 π0.5를 구하라. (나) 사전과 사후의 확률을 그대로 평균한 점, 그리고 기하평균을 정규화한 점과 비교하라. π0.5는 어느 쪽과 같은가? (위 위젯의 「문제 5」로 이 사전과 우도를 불러올 수 있다.)

사전 (0.4, 0.3, 0.3)과 혈액검사 우도 (0.6, 1, 0.1). 우도를 0.5 제곱만 반영한 믿음은 물음으로 남겼다
사전 (0.4, 0.3, 0.3)과 혈액검사 우도 (0.6, 1, 0.1). 우도를 0.5 제곱만 반영한 믿음은 물음으로 남겼다

함께 풀기

김민준 M01
김민준

중간이니까 사전이랑 사후를 반씩 더했어요. 사후가 (0.421, 0.526, 0.053)이니까 평균은 (0.411, 0.413, 0.176)이에요.

이서연 S01
이서연

문제는 우도에 0.5 제곱을 한 거야. 0.4 × √0.6, 0.3 × 1, 0.3 × √0.1을 정규화하면 (0.440, 0.426, 0.135)야. 네 답이랑 달라.

김민준 M01
김민준

둘 다 「중간」인데 왜 달라요?

선생님 T01
선생님

사전과 사후의 기하평균을 정규화해 볼래요?

김민준 M01
김민준

√(0.4 × 0.421) 이런 식으로… (0.440, 0.426, 0.135)요. 서연이 답이랑 같아요.

김민준 M07
김민준

사후가 사전 × 우도니까, 기하평균에는 우도의 제곱근이 들어가는 거네요. 우도를 반만 믿는 건 e-측지선(확률을 곱해 잇는 측지선)으로 반 가는 거고, 제가 한 건 m-측지선(확률을 섞어 잇는 측지선)으로 반 간 거예요.

선생님 T01
선생님

그래요. 고혈압 확률을 봐요. m-측지선의 중간점은 0.176, e-측지선의 중간점은 0.135예요. e-측지선은 우도가 누르는 곳을 더 빨리 눌러요.

김민준 M01
김민준

보고서 두 개를 합칠 때 문단을 반반 섞는 거랑, 한 사람 첨삭을 반쯤 반영하는 거랑 다른 것 같은 거네요.

풀어 본 뒤 위젯에서 확인 → 위 베이즈 업데이트 위젯의 「문제 5」 단추

문제 6. 가이던스 배율을 올리면

디퓨전 모델에 조건을 거는 방법 가운데 분류기 가이던스(classifier guidance)는 그림의 분포 p(x)에, 분류기가 그 그림이 조건 y에 맞는다고 준 확률 p(y | x)를 배율만큼 제곱해 곱한다. p(x) p(y | x)t 꼴이다. 원 논문은 배율을 s로 적지만, 이 절의 중간 믿음 식에서 우도에 붙인 지수 t와 같은 자리라서 여기서는 글자만 t로 바꿔 적는다. 그림을 숫자 하나 x로 줄인 장난감으로 보자. p(x) = N(0, 1)이고, 「웃는 얼굴」이라는 조건의 확률이 p(y | x) ∝ exp(−(x − 2)²/2)라고 하자. (가) t = 1과 t = 3에서 조건을 건 분포의 평균과 분산을 구하라. (나) 조건을 건 분포의 로그 밀도의 그래디언트 ∇ₓ log를, p(x)의 것과 p(y | x)의 것으로 나눠 적어라. (다) 배율을 올리면 뽑히는 그림은 어떻게 달라지는가?

그림의 분포 p(x) = N(0, 1)과 「웃는 얼굴」 조건의 확률 p(y | x) ∝ exp(−(x − 2)²/2)
그림의 분포 p(x) = N(0, 1)과 「웃는 얼굴」 조건의 확률 p(y | x) ∝ exp(−(x − 2)²/2)

함께 풀기

김민준 M01
김민준

(가)는 지수끼리 더하면 돼요. −x²/2 − t(x − 2)²/2를 정리하면 평균이 2t/(1 + t)라서, t = 1이면 1, t = 3이면 1.5요. 배율을 올리면 조건을 건 분포의 평균이 「웃는 얼굴」의 중심 2에 가까워져요.

선생님 T01
선생님

옮겨 가기만 해요? 분산은요?

김민준 M05
김민준

x²의 계수가 (1 + t)/2라서 분산이 1/(1 + t)예요. t = 1이면 0.5, t = 3이면 0.25. 평균만 움직이는 게 아니라 분포가 좁아져요.

이서연 S01
이서연

문제 4(앞면이 세 번 나온 동전)랑 같아. 우도를 세제곱한 건 같은 증거를 세 번 본 거니까, 그만큼 한쪽으로 몰리고 분산이 줄어. 배율 3은 「웃는 얼굴」이라는 증거를 세 번 들은 거야.

선생님 T01
선생님

(나)는요?

이서연 S01
이서연

로그를 씌우면 곱이 합이 되니까 ∇ₓ log(p(x) p(y | x)t) = ∇ₓ log p(x) + t ∇ₓ log p(y | x)예요. 정규화 상수는 x와 상관없어서 그래디언트에서 빠지고요. 여기서는 −x + t(2 − x)예요.

이서연 S08
이서연

디퓨전 모델은 원래 ∇ₓ log p(x)를 배워 두었으니까, 분류기의 그래디언트에 t를 곱해서 더하기만 하면 되는 거네요. 분포는 곱하고, 로그 밀도의 그래디언트는 더하는 거고요.

선생님 T01
선생님

그래요. (다)는 원 논문도 같은 말을 해요. 배율을 키우면 조건에 더 잘 맞는 그림이 나오지만, 그림들이 서로 덜 다양해진다고요. 오늘 계산에서 분산이 1/(1 + t)로 줄어든 것이 바로 그 다양성이에요.

김민준 M01
김민준

과제 피드백을 세 배로 세게 반영하면 다들 조교님 취향 답안으로 비슷해지는 거랑 같네요.