거리 아닌 거리, 직선 아닌 직선

사영: 발산으로 재는 가장 가까운 점

관측을 본 뒤 숨은 값의 분포, 봉우리가 여럿인 데이터 분포처럼 식은 있어도 평균 하나 내기 어려운 분포를 만날 때마다 되풀이하는 일이 있다. 그런 복잡한 분포 p\textcolor{#2e8b3a}{p}를 다루기 쉬운 분포들의 모임 M\textcolor{#0098c7}{M} 안의 한 점으로 바꿔 놓고 계산하는 것이다. 모임 안의 어느 점을 고를까? 자연스러운 답은 "M\textcolor{#0098c7}{M} 안에서 p\textcolor{#2e8b3a}{p}에 가장 가까운 점"이다. 그런데 가깝다는 것을 발산으로 재면, 발산에는 방향이 있다. 어느 방향으로 잰 가장 가까운 점일까?

두 방향의 가장 가까운 점

작은 예로 시작하자. p=N(2,1)\textcolor{#2e8b3a}{p} = N(2, 1)이고, 모임 M\textcolor{#0098c7}{M}은 평균이 0으로 고정된 정규분포 N(0,σ2)N(0, \textcolor{#1b9e77}{\sigma}^2)들이다. 이 모임을 고른 까닭은 둘이다. 다이얼이 σ2\textcolor{#1b9e77}{\sigma}^2 하나뿐이라 후보를 한 줄로 늘어놓고 가장 가까운 점을 찾을 수 있고, p\textcolor{#2e8b3a}{p}의 평균이 2라서 p\textcolor{#2e8b3a}{p}가 모임 밖에 있으니 두 방향이 갈린다. M\textcolor{#0098c7}{M} 안의 후보 두 개를 두 방향으로 재 보면 다음과 같다.

후보 q\textcolor{#2e8b3a}{q} D(p∣q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} | \textcolor{#2e8b3a}{q}) D(q∣p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} | \textcolor{#2e8b3a}{p})
N(0,1)N(0, 1) 2.00 2.00
N(0,5)N(0, 5) 0.80 3.20
p = N(2, 1)(초록)과 평균 0인 두 후보 N(0, 1)(점선), N(0, 5)(실선). N(0, 1)은 p와 폭이 같지만 p가 있는 곳에서 비켜나 있고, N(0, 5)는 넓게 퍼져 p가 있는 곳까지 덮는다
p = N(2, 1)(초록)과 평균 0인 두 후보 N(0, 1)(점선), N(0, 5)(실선). N(0, 1)은 p와 폭이 같지만 p가 있는 곳에서 비켜나 있고, N(0, 5)는 넓게 퍼져 p가 있는 곳까지 덮는다

σ2\textcolor{#1b9e77}{\sigma}^2를 모든 양수 값으로 바꿔 가며 재 보면, D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})는 σ2=5\textcolor{#1b9e77}{\sigma}^2 = 5에서 가장 작고(0.80) D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})는 σ2=1\textcolor{#1b9e77}{\sigma}^2 = 1에서 가장 작다(2.00). 같은 p\textcolor{#2e8b3a}{p}, 같은 M\textcolor{#0098c7}{M}인데 가장 가까운 점이 둘이다. D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q}) 쪽은 p\textcolor{#2e8b3a}{p}가 있는 곳(평균 2 근처)까지 덮으려고 넓게 퍼진다. 실제로 N(0,5)N(0, 5)는 x2\textcolor{#007a72}{x}^2의 평균이 5로 p\textcolor{#2e8b3a}{p}와 같다(1+22=51 + 2^2 = 5). D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p}) 쪽은 p\textcolor{#2e8b3a}{p}가 거의 없는 곳에 확률을 흘리기 싫어서 좁게 머문다.

이렇게 발산을 가장 작게 하는 M\textcolor{#0098c7}{M} 위의 점을 찾는 일을 사영 (가장 가까운 점 찾기 / Projection, Π\Pi, 대문자 파이)이라 한다. q∗=arg⁡min⁡q∈MD(p∥q)\textcolor{#2e8b3a}{q}^* = \arg\min_{\textcolor{#2e8b3a}{q} \in \textcolor{#0098c7}{M}} \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})처럼 p\textcolor{#2e8b3a}{p}를 앞에 두고 재는 쪽을 m-사영, arg⁡min⁡q∈MD(q∥p)\arg\min_{\textcolor{#2e8b3a}{q} \in \textcolor{#0098c7}{M}} \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})처럼 p\textcolor{#2e8b3a}{p}를 뒤에 두고 재는 쪽을 e-사영이라 부른다. 위 예에서 N(0,5)N(0, 5)가 m-사영, N(0,1)N(0, 1)이 e-사영이다.

두 이름의 m과 e는 두 종류의 “직선”, 곧 측지선(그 공간에서 가장 곧은 길)에서 왔다. m-측지선은 두 분포를 섞은 (1−t)p+tq(1-t)\textcolor{#2e8b3a}{p} + t\textcolor{#2e8b3a}{q}들이 이루는 길이고, e-측지선은 로그를 섞은 log⁡rt=(1−t)log⁡p+tlog⁡q+상수\log \textcolor{#2e8b3a}{r}_t = (1-t)\log \textcolor{#2e8b3a}{p} + t\log \textcolor{#2e8b3a}{q} + \text{상수}가 이루는 길이다. m-사영에서는 p\textcolor{#2e8b3a}{p}와 사영점을 잇는 m-측지선이 M\textcolor{#0098c7}{M}에 직교하고, e-사영에서는 e-측지선이 직교한다.

사영점이 하나뿐인지는 M\textcolor{#0098c7}{M}의 모양에 달려 있다. 위의 M\textcolor{#0098c7}{M}에서 두 점 N(0,1)N(0, 1)과 N(0,5)N(0, 5)를 반씩 섞어 보자. 봉우리는 하나지만 꼬리가 두꺼워서, 정규분포라면 늘 3인 첨도(x4\textcolor{#007a72}{x}^4의 평균을 x2\textcolor{#007a72}{x}^2의 평균의 제곱으로 나눈 값)가 39/9≈4.3339/9 \approx 4.33이 된다. 섞는 길(m-측지선)은 M\textcolor{#0098c7}{M} 밖으로 나간다. 이번에는 로그를 섞어 보자. 두 분포의 로그는 −x2/2-\textcolor{#007a72}{x}^2/2와 −x2/10-\textcolor{#007a72}{x}^2/10에 상수를 더한 것이라, 반씩 섞으면 −0.3 x2+상수-0.3\,\textcolor{#007a72}{x}^2 + \text{상수}, 곧 다시 평균 0인 정규분포 N(0,5/3)N(0, 5/3)이 된다. 로그를 섞는 길(e-측지선)은 M\textcolor{#0098c7}{M} 안에 머문다. 이렇게 두 점을 잇는 e-측지선이 늘 M\textcolor{#0098c7}{M} 안에 머물면 M\textcolor{#0098c7}{M}이 e-평탄하다고 하고, m-측지선이 그러면 m-평탄하다고 한다. 위의 M\textcolor{#0098c7}{M}은 e-평탄하지만 m-평탄하지는 않다. exp⁡(θ⋅x−ψ)\exp(\textcolor{#1b9e77}{\theta}\cdot \textcolor{#007a72}{x} - \textcolor{#455a64}{\psi}) 꼴로 쓰이는 분포들의 모임(지수족)은 늘 e-평탄하다. M\textcolor{#0098c7}{M}이 e-평탄하면 m-사영은 하나뿐이고, 평균 같은 기댓값을 p\textcolor{#2e8b3a}{p}와 맞추는 점이 된다. 위 표의 N(0,5)N(0, 5)가 x2\textcolor{#007a72}{x}^2의 평균을 p\textcolor{#2e8b3a}{p}와 맞춘 것이 그 예다. M\textcolor{#0098c7}{M}이 m-평탄하면 거꾸로 e-사영이 하나로 정해진다.

출발 문제의 물음으로 돌아가 보자. 봉우리가 둘인 p\textcolor{#2e8b3a}{p}를 정규분포 하나로 근사하면, 두 방향의 가장 가까운 점은 각각 어디에 놓일까? 아래 문제 6에서 직접 계산한다.

ML에서: 변분추론은 e-사영

변분추론(variational inference)은 이 틀로 이해된다. 참 사후분포 p\textcolor{#2e8b3a}{p}(관측을 본 뒤 숨은 값의 분포)는 계산하기 어려워서, 다루기 쉬운 분포족 Q\textcolor{#0098c7}{Q} 위에서 p\textcolor{#2e8b3a}{p}에 가장 가까운 점을 D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})로 재어 찾는다. 근사 분포 q\textcolor{#2e8b3a}{q}를 앞에 둔 방향(영어로 reverse KL)으로 재므로 e-사영이다. 실제로는 D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})를 바로 계산할 수 없어서 증거 하한(ELBO, evidence lower bound: 관측의 로그확률보다 늘 작거나 같은 값)을 최대화한다. 둘은 log⁡p(x)=ELBO(q)+D(q∥p)\log \textcolor{#2e8b3a}{p}(\textcolor{#007a72}{x}) = \text{ELBO}(\textcolor{#2e8b3a}{q}) + \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p}) 한 줄로 이어진다. 왼쪽의 관측 로그확률은 q\textcolor{#2e8b3a}{q}와 상관없으므로 ELBO를 키우는 것이 곧 D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})를 줄이는 e-사영이다. 여기서 움직이는 것은 근사 분포 q\textcolor{#2e8b3a}{q}의 매개변수다.

문제 6 — 봉우리가 둘인 분포를 정규분포 하나로

킬러 p=12N(−3,1)+12N(3,1)\textcolor{#2e8b3a}{p} = \frac12 N(-3, 1) + \frac12 N(3, 1)을 정규분포 q=N(μ,σ2)\textcolor{#2e8b3a}{q} = N(\textcolor{#1b9e77}{\mu}, \textcolor{#1b9e77}{\sigma}^2)로 근사한다. (가) D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})를 최소화하는 q\textcolor{#2e8b3a}{q}와 (나) D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})를 최소화하는 q\textcolor{#2e8b3a}{q}를 구하고, 각각을 m-사영과 e-사영의 언어로 설명하라.

문제 6의 분포 p. 평균이 −3과 3인 두 정규분포를 반씩 섞어 봉우리가 둘이다
문제 6의 분포 p. 평균이 −3과 3인 두 정규분포를 반씩 섞어 봉우리가 둘이다

같이 풀기 세션 6

선생님 T01
선생님

이번 건 천천히 가 봅시다. 먼저 (가)부터요.

김민준 M01
김민준

D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})를 줄이는 쪽은 평균 같은 기댓값을 p\textcolor{#2e8b3a}{p}와 맞춘다고 했죠. 평균은 좌우대칭이라 0이고, 분산은 봉우리 둘 다 1이니까 1. q=N(0,1)\textcolor{#2e8b3a}{q} = N(0, 1)이요.

이서연 S01
이서연

난 다르게 나왔어. D(p∥q)=−H(p)−Ep[log⁡q]\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q}) = -H(\textcolor{#2e8b3a}{p}) - \mathbb{E}_{\textcolor{#2e8b3a}{p}}[\log \textcolor{#2e8b3a}{q}]이고 앞 항은 q\textcolor{#2e8b3a}{q}와 상관없으니까, Ep[log⁡q]\mathbb{E}_{\textcolor{#2e8b3a}{p}}[\log \textcolor{#2e8b3a}{q}]만 키우면 돼. 정규분포면 이건 평균과 분산을 p\textcolor{#2e8b3a}{p}와 맞추는 건데, p\textcolor{#2e8b3a}{p}의 분산은 봉우리 안의 퍼짐 1에 봉우리 중심이 0에서 3씩 떨어진 몫 9가 더해져. μ=0\textcolor{#1b9e77}{\mu} = 0, σ2=1+9=10\textcolor{#1b9e77}{\sigma}^2 = 1 + 9 = 10.

선생님 T01
선생님

민준 학생, 서연 학생의 q=N(0,10)\textcolor{#2e8b3a}{q} = N(0, 10)과 민준 학생의 q=N(0,1)\textcolor{#2e8b3a}{q} = N(0, 1) 중에 어느 쪽이 D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})가 작을지, 한 번 돌려 볼래요?

김민준 M05
김민준

수치적분 해 보니까… N(0,10)N(0, 10)은 0.46인데, N(0,1)N(0, 1)은 3.8이 나와요. 봉우리가 있는 ±3 근처에서 q\textcolor{#2e8b3a}{q}가 거의 0이라 log⁡pq\log\frac{\textcolor{#2e8b3a}{p}}{\textcolor{#2e8b3a}{q}}가 폭발하네요.

선생님 T01
선생님

그게 D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})의 성격이에요. p\textcolor{#2e8b3a}{p}가 있는 곳에서 q\textcolor{#2e8b3a}{q}가 0에 가까우면 벌점이 무한히 커지니까, q\textcolor{#2e8b3a}{q}는 p\textcolor{#2e8b3a}{p}가 있는 곳을 전부 덮으려고 넓게 퍼져요. 분산을 맞춘다는 건 봉우리 하나의 폭이 아니라 봉우리 사이의 거리까지 맞춘다는 뜻이에요.

김민준 M01
김민준

그러니까 이건 평균이랑 분산을 맞추는 사영이고… 앞에서 본 m-사영이네요. 정규분포족이 지수족이라 답이 하나로 정해지고요.

이서연 S01
이서연

(나)는 쉬워 보여. 문제가 좌우대칭이니까 답도 좌우대칭이어야지. μ=0\textcolor{#1b9e77}{\mu} = 0으로 두고 σ\textcolor{#1b9e77}{\sigma}만 최적화하면 σ≈2.74\textcolor{#1b9e77}{\sigma} \approx 2.74, 발산은 0.84.

선생님 T01
선생님

대칭인 문제의 답은 반드시 대칭이어야 할까요? 서연 학생 식으로 μ\textcolor{#1b9e77}{\mu}를 조금 옮겨서 μ=3\textcolor{#1b9e77}{\mu} = 3, σ=1\textcolor{#1b9e77}{\sigma} = 1을 넣어 보면요?

이서연 S06
이서연

D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})가… 0.69? 내 답 0.84보다 작아. 대칭인 점보다 한쪽으로 치우친 점이 더 좋다니, 이상한데.

이서연 S08
이서연

아, 대칭인 건 답 하나가 아니라 답들의 모임이구나. μ≈2.98\textcolor{#1b9e77}{\mu} \approx 2.98이 최소라면, 거울에 비친 μ≈−2.98\textcolor{#1b9e77}{\mu} \approx -2.98도 최소야. 최소점 두 개가 서로를 비추고 있으니까 모임은 대칭이지만, 점 하나하나는 대칭일 필요가 없어.

선생님 T01
선생님

그래서 D(q∥p)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{p})는 q\textcolor{#2e8b3a}{q}가 p\textcolor{#2e8b3a}{p}가 없는 곳에 확률을 두는 걸 싫어해요. 골짜기에 확률을 쏟느니 봉우리 하나를 확실히 잡는 거죠. 이게 e-사영이고, 변분추론이 사후분포의 봉우리 하나만 잡는 경향이 있는 이유예요. 정규분포족은 m-평탄하지 않아서 e-사영이 하나로 안 정해지는 것도 여기서 보이고요.

김민준 M07
김민준

그럼 (가)는 봉우리를 다 덮는 넓은 분포, (나)는 봉우리 하나에 붙는 좁은 분포. 출발 문제에서 물은 게 이거였네요.

이서연 S01
이서연

미적분 시간에 f(x)=x4−2x2f(x) = x^4 - 2x^2의 최솟값을 구할 때도 그랬어요. 좌우대칭인 함수인데 최솟값은 x=±1x = \pm 1 두 곳이고, 대칭인 자리 x=0x = 0은 오히려 극대였죠. 알면서도 똑같은 함정에 빠졌네요.

선생님 T13
선생님

대칭은 답을 하나로 정해 주는 게 아니라 답들을 짝지어 줄 뿐이에요. 둘 다 잘 찾아냈어요.

문제 6의 두 답. 초록은 p, 실선은 (가)의 N(0, 10)으로 두 봉우리와 골짜기를 함께 덮는다. 점선은 (나)의 최소점(평균 약 2.98, 표준편차 약 1.02)으로 오른쪽 봉우리에 붙고, 흐린 점선은 같은 값을 갖는 거울 쪽 최소점이다
문제 6의 두 답. 초록은 p, 실선은 (가)의 N(0, 10)으로 두 봉우리와 골짜기를 함께 덮는다. 점선은 (나)의 최소점(평균 약 2.98, 표준편차 약 1.02)으로 오른쪽 봉우리에 붙고, 흐린 점선은 같은 값을 갖는 거울 쪽 최소점이다