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

일반화된 피타고라스 정리: 발산으로 그린 직각삼각형

유클리드 공간에서는 점 pp에서 직선이나 평면으로 가장 가까운 점을 찾을 때 수선의 발을 내리고, 피타고라스 정리가 그 점이 가장 가깝다는 것을 보장한다. 앞 절에서 발산으로 잰 사영을 보았다. 사영에도 수선의 발과 피타고라스 정리가 있을까? 숫자로 먼저 확인해 보자.

따라 계산해 보기 2 — 피타고라스 등식을 숫자로 확인하기

분산이 1로 고정된 정규분포 M={N(μ,1)}\textcolor{#0098c7}{M} = \{N(\textcolor{#1b9e77}{\mu}, 1)\}은 지수족이라 e-평탄하다. M\textcolor{#0098c7}{M} 밖의 점 p=N(0,22)\textcolor{#2e8b3a}{p} = N(0, 2^2)을 M\textcolor{#0098c7}{M}으로 m-사영하면, 평균만 맞춘 q=N(0,1)\textcolor{#2e8b3a}{q} = N(0, 1)이 나온다(m-사영은 평균 같은 기댓값을 맞추는 사영이다). M\textcolor{#0098c7}{M} 위의 다른 점 r=N(1,1)\textcolor{#2e8b3a}{r} = N(1, 1)을 골라 두 정규분포 사이의 KL 식 D(N(μ1,σ12) ∥ N(μ2,σ22))=log⁡σ2σ1+σ12+(μ1−μ2)22σ22−12\textcolor{#7a5c1e}{D}\big(N(\textcolor{#1b9e77}{\mu_1}, \textcolor{#1b9e77}{\sigma_1}^2) \,\|\, N(\textcolor{#1b9e77}{\mu_2}, \textcolor{#1b9e77}{\sigma_2}^2)\big) = \log\frac{\textcolor{#1b9e77}{\sigma_2}}{\textcolor{#1b9e77}{\sigma_1}} + \frac{\textcolor{#1b9e77}{\sigma_1}^2 + (\textcolor{#1b9e77}{\mu_1} - \textcolor{#1b9e77}{\mu_2})^2}{2\textcolor{#1b9e77}{\sigma_2}^2} - \frac{1}{2}로 세 변을 계산하면

  • D(p∥r)=log⁡12+4+12−12≈1.3069\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{r}) = \log\frac12 + \frac{4 + 1}{2} - \frac12 \approx 1.3069
  • D(p∥q)=log⁡12+42−12≈0.8069\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q}) = \log\frac12 + \frac{4}{2} - \frac12 \approx 0.8069
  • D(q∥r)=0+1+12−12=0.5\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \| \textcolor{#2e8b3a}{r}) = 0 + \frac{1 + 1}{2} - \frac12 = 0.5

이고, 실제로 0.8069+0.5=1.30690.8069 + 0.5 = 1.3069가 된다. 직각삼각형에서 빗변의 제곱이 두 변의 제곱의 합인 것과 똑같은 모양이다. r\textcolor{#2e8b3a}{r}을 N(2,1)N(2, 1)로 옮겨도 2.8069=0.8069+22.8069 = 0.8069 + 2로 등식이 유지되고, M\textcolor{#0098c7}{M} 위의 어느 점으로 바꿔도 마찬가지다.

빗변의 발산이 두 변의 발산의 합과 딱 맞았다.

쌍대 직교와 세 변의 발산

위 계산의 조건을 그대로 일반화하면 정리가 된다. D\textcolor{#7a5c1e}{D}를 KL 발산이라 하자. M\textcolor{#0098c7}{M}이 e-평탄한 부분매니폴드(예: 지수족)이고, q\textcolor{#2e8b3a}{q}가 p\textcolor{#2e8b3a}{p}를 M\textcolor{#0098c7}{M}으로 내린 m-사영이라 하자. 곧 p\textcolor{#2e8b3a}{p}와 q\textcolor{#2e8b3a}{q}를 잇는 m-측지선이 M\textcolor{#0098c7}{M}과 직교한다. 그러면 M\textcolor{#0098c7}{M} 위의 모든 점 r\textcolor{#2e8b3a}{r}에 대해 다음이 성립한다.

D(p ∥ r)=D(p ∥ q)+D(q ∥ r),∀ r∈M \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \,\|\, \textcolor{#2e8b3a}{r}) = \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \,\|\, \textcolor{#2e8b3a}{q}) + \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q} \,\|\, \textcolor{#2e8b3a}{r}), \quad \forall\, \textcolor{#2e8b3a}{r} \in \textcolor{#0098c7}{M}
DKL 발산pM 밖의 분포qp 의 m-사영 (M 위에서 D(p∥⋅) 을 최소화하는 점)rM 위의 임의의 분포Me-평탄한 부분매니폴드 (예: 지수족) \begin{array}{ll} \textcolor{#7a5c1e}{D} & \text{KL 발산} \\ \textcolor{#2e8b3a}{p} & \textcolor{#0098c7}{M} \text{ 밖의 분포} \\ \textcolor{#2e8b3a}{q} & \textcolor{#2e8b3a}{p} \text{ 의 m-사영 (}\textcolor{#0098c7}{M}\text{ 위에서 } \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p}\|\cdot) \text{ 을 최소화하는 점)} \\ \textcolor{#2e8b3a}{r} & \textcolor{#0098c7}{M} \text{ 위의 임의의 분포} \\ \textcolor{#0098c7}{M} & \text{e-평탄한 부분매니폴드 (예: 지수족)} \end{array}

이것이 일반화된 피타고라스 정리 (발산의 직각삼각형 / Generalized Pythagorean Theorem)로, 유클리드 기하의 피타고라스 정리 ∣pr∣2=∣pq∣2+∣qr∣2|\textcolor{#2e8b3a}{p}\textcolor{#2e8b3a}{r}|^2 = |\textcolor{#2e8b3a}{p}\textcolor{#2e8b3a}{q}|^2 + |\textcolor{#2e8b3a}{q}\textcolor{#2e8b3a}{r}|^2의 정보기하학적 일반화다. "거리의 제곱"이 "발산"으로, "직교"가 "p\textcolor{#2e8b3a}{p}에서 내려오는 m-측지선과 M\textcolor{#0098c7}{M} 안의 e-측지선의 직교"로 바뀌었다. 보통의 피타고라스 정리가 직각삼각형에서만 성립하듯, 이 정리도 서로 다른 두 종류의 측지선이 직교하는 “쌍대 직교” 조건이 있어야 성립한다. 이 등식에서 곧바로 D(p∥r)≥D(p∥q)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{r}) \geq \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q})가 나오므로, q\textcolor{#2e8b3a}{q}가 M\textcolor{#0098c7}{M} 위에서 p\textcolor{#2e8b3a}{p}에 가장 가까운 점이라는 것도 함께 따라온다.

따라 계산해 보기 2의 세 점으로 그린 발산의 직각삼각형. M 은 분산이 1인 정규분포들의 모임이고, p 에서 내려온 m-측지선이 q 에서 M 과 직교한다. 두 변의 발산 0.8069와 0.5를 더하면 빗변의 발산 1.3069가 된다. 실제 공간은 휘어 있어 곧은 선은 그림을 위한 것이다
따라 계산해 보기 2의 세 점으로 그린 발산의 직각삼각형. M 은 분산이 1인 정규분포들의 모임이고, p 에서 내려온 m-측지선이 q 에서 M 과 직교한다. 두 변의 발산 0.8069와 0.5를 더하면 빗변의 발산 1.3069가 된다. 실제 공간은 휘어 있어 곧은 선은 그림을 위한 것이다

그런데 피타고라스 정리는 유클리드 거리의 제곱에 대한 정리다. KL 발산이 왜 거리의 제곱처럼 더해질까? 직각은 어디에 숨어 있을까? 이 물음에 답하려면 KL 발산과 거리의 제곱을 한 가지 방법으로 만들어 내는 틀이 필요하다.

역사: 레프 브레그만 (Lev M. Bregman, 1941–2023)

KL 발산은 확률분포에만 쓰는 양이다. 이것을 더 일반적인 틀로 넓힌 사람이 소련의 수학자 레프 브레그만이다.

브레그만은 1966년 레닌그라드 대학에서 여러 볼록집합(어느 두 점을 이어도 그 선분이 안에 머무는 집합)이 함께 겹치는 곳의 한 점을 찾는 방법으로 박사 학위를 받았다. 조건이 여럿 걸린 최적화 문제에서는 조건 하나하나가 볼록집합을 이루고, 모든 조건을 지키는 답은 그 집합들이 겹치는 곳에 있다. 이런 점을 찾는 익숙한 방법은 지금 점에서 집합 하나로 가장 가까운 점(유클리드 거리로 잰 사영)을 찾아 옮기고, 다음 집합으로 또 옮기기를 되풀이하는 것이다. 1967년 논문 「볼록집합의 공통점을 찾는 이완 방법과 그 볼록 계획 문제 풀이에의 응용」에서 브레그만은 이 "가장 가까운 점"을 유클리드 거리 대신 볼록함수 하나로 만든 양으로 재도 같은 되풀이가 통하게 했다. 그 양이 지금 브레그만 발산이라 부르는 것이다. 브레그만은 뒤에 이스라엘로 옮겨 베에르셰바의 산업수학연구소에서 일했다.

브레그만 발산은 정보기하학의 핵심 도구가 되었다. 사영을 되풀이하는 그의 출발점은 이 장 끝의 EM 알고리즘과도 같은 모양이다.

접선 아래로 벌어진 틈

가장 단순한 볼록함수 ϕ(x)=x2\textcolor{#455a64}{\phi}(x) = x^2로 시작하자. 아래 그림처럼 q=1\textcolor{#2e8b3a}{q} = 1에서 그래프에 접선 y=1+2(x−1)y = 1 + 2(x - 1)을 긋고, p=3\textcolor{#2e8b3a}{p} = 3에서 그래프와 접선의 높이를 견준다. 그래프는 9, 접선은 5라서 틈이 4이고, 이 틈은 (3−1)2=4(3 - 1)^2 = 4와 같다. 볼록함수와 접선 사이의 틈이 거리의 제곱을 만든 것이다.

볼록함수 φ(x) = x² 의 그래프와 q = 1 에서 그은 접선(점선). p = 3 에서 그래프 높이 9와 접선 높이 5 사이의 틈 4가 (3 − 1)² 과 같다
볼록함수 φ(x) = x² 의 그래프와 q = 1 에서 그은 접선(점선). p = 3 에서 그래프 높이 9와 접선 높이 5 사이의 틈 4가 (3 − 1)² 과 같다

이 틈을 여러 차원으로 넓혀 쓰면 다음과 같다.

Dϕ(p ∥ q)=ϕ(p)−ϕ(q)−⟨∇ϕ(q), p−q⟩ \textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}}(\textcolor{#2e8b3a}{p} \,\|\, \textcolor{#2e8b3a}{q}) = \textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{p}) - \textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{q}) - \langle \nabla\textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{q}),\, \textcolor{#2e8b3a}{p} - \textcolor{#2e8b3a}{q} \rangle
Dϕϕ 가 만드는 브레그만 발산ϕ볼록 퍼텐셜 (볼록함수)p,q두 점 (확률벡터일 때는 두 분포)∇ϕϕ 의 그래디언트 (접속 아님, 기본색) \begin{array}{ll} \textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}} & \textcolor{#455a64}{\phi} \text{ 가 만드는 브레그만 발산} \\ \textcolor{#455a64}{\phi} & \text{볼록 퍼텐셜 (볼록함수)} \\ \textcolor{#2e8b3a}{p}, \textcolor{#2e8b3a}{q} & \text{두 점 (확률벡터일 때는 두 분포)} \\ \nabla\textcolor{#455a64}{\phi} & \textcolor{#455a64}{\phi} \text{ 의 그래디언트 (접속 아님, 기본색)} \end{array}

이것을 브레그만 발산이라 부른다(볼록함수가 만드는 비대칭 거리). q\textcolor{#2e8b3a}{q}에서 그은 접선(여러 차원이면 접하는 평면)이 p\textcolor{#2e8b3a}{p} 위치에서 그래프보다 얼마나 아래에 있는지를 잰다. 볼록함수의 그래프는 항상 접선 위에 있으므로 Dϕ≥0\textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}} \geq 0이다. ϕ(x)=∥x∥2\textcolor{#455a64}{\phi}(x) = \|x\|^2이면 유클리드 거리의 제곱이 나오고, 확률벡터에서 ϕ(x)=∑xilog⁡xi\textcolor{#455a64}{\phi}(x) = \sum x_i \log x_i로 잡으면 KL 발산이 나온다. KL 발산과 거리의 제곱이 같은 틀, 곧 볼록함수와 접선 사이의 틈에서 나온 셈이다.

남는 항이 직각을 잰다

이제 처음 물음, "왜 더해지는가"에 답할 수 있다. 세 점 p\textcolor{#2e8b3a}{p}, q\textcolor{#2e8b3a}{q}, r\textcolor{#2e8b3a}{r}의 틈을 브레그만 발산의 정의대로 풀어 쓰면, ϕ(p)\textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{p}), ϕ(q)\textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{q}), ϕ(r)\textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{r})가 모두 지워지고 한 항만 남는다.

Dϕ(p ∥ r)=Dϕ(p ∥ q)+Dϕ(q ∥ r)+⟨∇ϕ(q)−∇ϕ(r), p−q⟩ \textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}}(\textcolor{#2e8b3a}{p} \,\|\, \textcolor{#2e8b3a}{r}) = \textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}}(\textcolor{#2e8b3a}{p} \,\|\, \textcolor{#2e8b3a}{q}) + \textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}}(\textcolor{#2e8b3a}{q} \,\|\, \textcolor{#2e8b3a}{r}) + \langle \nabla\textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{q}) - \nabla\textcolor{#455a64}{\phi}(\textcolor{#2e8b3a}{r}),\, \textcolor{#2e8b3a}{p} - \textcolor{#2e8b3a}{q} \rangle
Dϕϕ 가 만드는 브레그만 발산p,q,r세 점 (빗변의 두 끝 p,r 과 꼭짓점 q)∇ϕϕ 의 그래디언트 (기본색)⟨⋅,⋅⟩두 벡터의 내적 \begin{array}{ll} \textcolor{#7a5c1e}{D}_{\textcolor{#455a64}{\phi}} & \textcolor{#455a64}{\phi} \text{ 가 만드는 브레그만 발산} \\ \textcolor{#2e8b3a}{p}, \textcolor{#2e8b3a}{q}, \textcolor{#2e8b3a}{r} & \text{세 점 (빗변의 두 끝 } \textcolor{#2e8b3a}{p}, \textcolor{#2e8b3a}{r} \text{ 과 꼭짓점 } \textcolor{#2e8b3a}{q}\text{)} \\ \nabla\textcolor{#455a64}{\phi} & \textcolor{#455a64}{\phi} \text{ 의 그래디언트 (기본색)} \\ \langle \cdot, \cdot \rangle & \text{두 벡터의 내적} \end{array}

포물선에서 p=3\textcolor{#2e8b3a}{p} = 3, q=1\textcolor{#2e8b3a}{q} = 1, r=0\textcolor{#2e8b3a}{r} = 0을 넣어 보면 9=4+1+49 = 4 + 1 + 4다. 남는 항이 4나 된다. 한 줄 위의 세 점으로는 직각을 만들 수 없으니 남는 항이 사라질 수 없다. ϕ(x)=∥x∥2\textcolor{#455a64}{\phi}(x) = \|x\|^2인 평면에서는 ∇ϕ(x)=2x\nabla\textcolor{#455a64}{\phi}(x) = 2x라서 남는 항이 2⟨q−r, p−q⟩2\langle \textcolor{#2e8b3a}{q} - \textcolor{#2e8b3a}{r},\, \textcolor{#2e8b3a}{p} - \textcolor{#2e8b3a}{q} \rangle가 되고, 두 변이 꼭짓점 q\textcolor{#2e8b3a}{q}에서 직각으로 만날 때만 0이 된다. 그때 보통의 피타고라스 정리가 나온다. 거리의 제곱이 더해지는 까닭은 직각이 남는 항을 지우기 때문이다.

KL 발산에서는 ϕ(x)=∑xilog⁡xi\textcolor{#455a64}{\phi}(x) = \sum x_i \log x_i라 ∇ϕ(x)\nabla\textcolor{#455a64}{\phi}(x)의 성분이 log⁡xi+1\log x_i + 1이고, 남는 항은 ∑i(pi−qi)(log⁡qi−log⁡ri)\sum_i (\textcolor{#2e8b3a}{p}_i - \textcolor{#2e8b3a}{q}_i)(\log \textcolor{#2e8b3a}{q}_i - \log \textcolor{#2e8b3a}{r}_i)가 된다. 두 벡터의 내적인데, 한쪽 p−q\textcolor{#2e8b3a}{p} - \textcolor{#2e8b3a}{q}는 두 분포를 섞는 방향(q\textcolor{#2e8b3a}{q}에서 p\textcolor{#2e8b3a}{p}로 가는 m-측지선의 방향)이고 다른 쪽 log⁡q−log⁡r\log\textcolor{#2e8b3a}{q} - \log\textcolor{#2e8b3a}{r}는 로그를 섞는 방향(r\textcolor{#2e8b3a}{r}에서 q\textcolor{#2e8b3a}{q}로 가는 e-측지선의 방향)이다. 서로 다른 두 종류의 방향이 만나 이 내적이 0이 되는 것, 이것이 쌍대 직교다. 앞의 정규분포 예에서 이 항이 왜 0이었는지, q\textcolor{#2e8b3a}{q}를 사영점이 아닌 곳으로 옮기면 얼마가 남는지는 아래 문제 8에서 직접 셈해 본다.

짝을 이루는 두 접속 모두로 보아 휘지 않은 공간(쌍대 평탄 공간)에서는 이런 발산이 늘 어떤 볼록함수의 브레그만 발산으로 나오고, 그래서 이 피타고라스 정리가 자연스럽게 성립한다는 것이 아마리의 이론으로 밝혀진다.

ML에서: EM 알고리즘과 미러 디센트

EM 알고리즘은 관측되지 않은 숨은 값(예: 데이터 점 하나하나가 어느 무리에서 왔는지)이 있는 모델의 매개변수를 맞추는 방법이다. 지금 모델로 숨은 값의 확률을 채우는 단계(E-단계, 기댓값 Expectation)와 채운 값으로 매개변수를 다시 맞추는 단계(M-단계, 최대화 Maximization)를 번갈아 한다. 아래 그림은 두 무리로 모인 실제 데이터에서 그 과정을 보인 것이다.

EM 알고리즘이 실제 데이터에서 하는 일 — 두 무리로 모인 데이터 점(가로축 Duration, 세로축 Delay) 위에서 정규분포 두 개(타원)가 단계를 거듭하며 각 무리에 자리 잡아 간다
EM 알고리즘이 실제 데이터에서 하는 일 — 두 무리로 모인 데이터 점(가로축 Duration, 세로축 Delay) 위에서 정규분포 두 개(타원)가 단계를 거듭하며 각 무리에 자리 잡아 간다

정보기하학으로 보면 이 왕복은 두 사영의 교대다. 관측 데이터와 맞는 분포들의 모임(데이터 쪽)과 모델의 매개변수가 정하는 분포들의 모임(모델 쪽)을 생각하면, 숨은 값을 채우는 단계는 지금 모델을 데이터 쪽으로 내리는 e-사영이고, 다시 맞추는 단계는 그 결과를 모델 쪽으로 내리는 m-사영이다(아마리, 1995). E와 e, M과 m의 글자가 짝지어 맞지만 서로 다른 낱말의 머리글자다(E·M은 기댓값과 최대화, e·m은 지수와 섞기). 두 쪽이 늘 같은 계산인 것도 아니어서, 모델 쪽 모임이 굽은 경우에는 E-단계와 e-사영이 다른 답을 내기도 한다.

두 사영의 교대. 위의 곡선은 관측과 맞는 분포들의 모임(데이터 쪽), 아래 곡선은 모델이 나타낼 수 있는 분포들의 모임(모델 쪽)이다. 처음 모델에서 출발해 데이터 쪽으로 e-사영(실선), 모델 쪽으로 m-사영(점선)을 번갈아 하며 두 모임이 가장 가까워지는 곳으로 다가간다
두 사영의 교대. 위의 곡선은 관측과 맞는 분포들의 모임(데이터 쪽), 아래 곡선은 모델이 나타낼 수 있는 분포들의 모임(모델 쪽)이다. 처음 모델에서 출발해 데이터 쪽으로 e-사영(실선), 모델 쪽으로 m-사영(점선)을 번갈아 하며 두 모임이 가장 가까워지는 곳으로 다가간다

각 단계가 한쪽 점을 고정하고 두 모임 사이의 발산을 가장 작게 하므로, 발산은 단계마다 늘어나지 않는다. EM 알고리즘이 한 번도 뒷걸음질하지 않는 까닭이다. 두 모임이 평탄하면 피타고라스 정리가 한 단계에서 줄어든 양을 두 변으로 나누어 보여 준다. 다만 도착하는 곳은 가장 가까운 점이 아니라 국소적으로 가장 가까운 점일 수 있다.

통신 채널이 보낼 수 있는 정보량(채널 용량)을 구하는 블라후트-아리모토 알고리즘도 두 묶음의 변수를 번갈아 고치는 같은 꼴의 알고리즘이다. 다만 채널 용량은 두 모임 사이의 발산을 가장 크게 하는 문제라서, 두 사영을 그대로 번갈아 하는 것만으로는 풀리지 않는다.

브레그만 발산 자체도 최적화 알고리즘에 쓰인다. 경사 하강의 한 걸음은 "손실의 1차 근사 + 이동 거리의 제곱"을 최소화하는 점으로 가는 것이라고 볼 수 있다. 미러 디센트는 이 이동 거리의 제곱 자리에 브레그만 발산을 넣는다. ϕ(x)=∥x∥2\textcolor{#455a64}{\phi}(x) = \|x\|^2이면 보통의 경사 하강으로 돌아가고, 확률벡터 위에서 ϕ(x)=∑xilog⁡xi\textcolor{#455a64}{\phi}(x) = \sum x_i \log x_i를 쓰면 각 성분에 exp⁡(−학습률×그래디언트 성분)\exp(-\text{학습률} \times \text{그래디언트 성분})을 곱한 뒤 합이 1이 되게 다시 나누는 갱신이 나온다. 매개변수가 확률벡터처럼 모양이 정해진 공간 위를 움직일 때, 그 모양에 맞는 발산으로 걸음을 재는 셈이다.

문제 7 — 도로에서 가장 가까운 점

확인 집 H에서 곧은 도로까지 수직으로 잰 거리가 4 km이고, 그 수선의 발을 F라 하자. 도로 위의 가게 S는 F에서 3 km 떨어져 있다. (가) H에서 S까지의 곧은 거리는? (나) 친구는 도로에서 집에 가장 가까운 점이 F가 아니라 F에서 가게 쪽으로 1 km 간 G라고 우긴다. HG² + GS²을 HS²과 견주어 보라. 차이는 어디서 오는가?

같이 풀기 세션 7

김민준 M01
김민준

(가)는 3, 4, 5니까 5 km요. (나)는 HG² = 4² + 1² = 17, GS² = 2² = 4라서 합이 21이에요. 25가 나와야 하는데 4가 모자라네요. 어디서 계산이 틀렸지?

선생님 T01
선생님

계산은 맞아요. H, G, S로 만든 삼각형에서 꼭짓점 G의 각은 몇 도예요?

김민준 M07
김민준

아, 직각이 아니네요. 피타고라스는 직각삼각형에서만 맞는 건데 그냥 썼어요.

이서연 S01
이서연

F를 원점, 도로를 가로축으로 놓으면 H = (0, 4), G = (1, 0), S = (3, 0)이야. HS² = HG² + GS² + 2⟨H − G, G − S⟩이고, (−1, 4)와 (−2, 0)의 내적이 2라서 남는 항이 4. G를 F로 옮기면 H − F = (0, 4)가 도로와 수직이라 이 항이 0이 돼.

선생님 T01
선생님

그러면 F가 가장 가깝다는 것도 같은 식에서 나와요. 도로 위 아무 점 X에 대해 HX² = HF² + FX²이니까요.

이서연 S01
이서연

FX²은 0 이상이니까 HX ≥ HF. 피타고라스 정리가 "가장 가까운 점"까지 보장해 주는구나.

문제 8 — 사영점에서 비켜나면

계산 따라 계산해 보기 2의 설정(M={N(μ,1)}\textcolor{#0098c7}{M} = \{N(\textcolor{#1b9e77}{\mu}, 1)\}, p=N(0,22)\textcolor{#2e8b3a}{p} = N(0, 2^2), r=N(1,1)\textcolor{#2e8b3a}{r} = N(1, 1), 빗변 D(p∥r)≈1.3069\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{r}) \approx 1.3069)에서 꼭짓점을 m-사영점 N(0,1)N(0, 1)이 아닌 M\textcolor{#0098c7}{M} 위의 점 q′=N(0.5,1)\textcolor{#2e8b3a}{q'} = N(0.5, 1)로 바꾼다. (가) D(p∥q′)+D(q′∥r)\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q'}) + \textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q'} \| \textcolor{#2e8b3a}{r})를 빗변과 견주어라. (나) 차이를 남는 항 ∫(p(x)−q′(x))log⁡q′(x)r(x) dx\int (\textcolor{#2e8b3a}{p}(x) - \textcolor{#2e8b3a}{q'}(x)) \log\frac{\textcolor{#2e8b3a}{q'}(x)}{\textcolor{#2e8b3a}{r}(x)}\,dx로 계산해 맞는지 확인하고, 꼭짓점이 N(0,1)N(0, 1)일 때는 왜 이 항이 0인지 설명하라.

같이 풀기 세션 8

김민준 M01
김민준

두 정규분포 사이의 KL 식에 넣으면 D(p∥q′)=log⁡12+4+0.252−12≈0.9319\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{p} \| \textcolor{#2e8b3a}{q'}) = \log\frac12 + \frac{4 + 0.25}{2} - \frac12 \approx 0.9319, D(q′∥r)=1+0.252−12=0.125\textcolor{#7a5c1e}{D}(\textcolor{#2e8b3a}{q'} \| \textcolor{#2e8b3a}{r}) = \frac{1 + 0.25}{2} - \frac12 = 0.125요. 합이 1.0569라서 빗변 1.3069에 0.25가 모자라요.

이서연 S01
이서연

(나)는 로그부터 풀자. 분산이 둘 다 1이니까 log⁡q′r=(x−1)2−(x−0.5)22=−0.5x+0.375\log\frac{\textcolor{#2e8b3a}{q'}}{\textcolor{#2e8b3a}{r}} = \frac{(x-1)^2 - (x-0.5)^2}{2} = -0.5x + 0.375. xx의 1차식이야. 여기에 p−q′\textcolor{#2e8b3a}{p} - \textcolor{#2e8b3a}{q'}를 곱해 적분하면 상수항은 두 분포의 넓이가 똑같이 1이라 지워지고, xx 항만 남아. −0.5×(p의 평균 0−q′의 평균 0.5)=0.25-0.5 \times (\textcolor{#2e8b3a}{p}\text{의 평균 } 0 - \textcolor{#2e8b3a}{q'}\text{의 평균 } 0.5) = 0.25. 딱 맞아.

선생님 T01
선생님

꼭짓점이 N(0,1)N(0, 1)이면요? 같은 계산을 해 볼래요?

김민준 M06
김민준

로그 비는 또 xx의 1차식이고, 남는 항은 (어떤 수) × (p\textcolor{#2e8b3a}{p}의 평균 − 꼭짓점의 평균)이 돼요. 둘 다 0이라 남는 항이 0이네요. m-사영이 평균을 맞추는 점이라서 그런 거였어요!

선생님 T01
선생님

그래요. 이 모임에서는 평균을 맞추는 것이 곧 쌍대 직교였어요.

이서연 S07
이서연

아까 도로 문제랑 같네요. G가 수선의 발에서 1 km 비켜나서 4가 남았던 것처럼, 꼭짓점이 평균을 맞춘 점에서 0.5 비켜나서 0.25가 남았어요.

문제 9 — 비중을 음수로 만들지 않는 걸음

계산 세 전문가 모델의 답을 섞어 쓰는 비중 w=(0.5, 0.3, 0.2)w = (0.5,\ 0.3,\ 0.2)를 학습한다(세 수의 합은 1). 지금 손실의 그래디언트가 (1, 0, −1)(1,\ 0,\ -1)이고 학습률은 1이다. (가) 보통의 경사 하강(비중 − 학습률 × 그래디언트)으로 한 걸음 가면 비중은 어떻게 되는가? (나) 미러 디센트(성분마다 exp⁡(−학습률×그래디언트 성분)\exp(-\text{학습률} \times \text{그래디언트 성분})을 곱한 뒤 합이 1이 되게 나눔)로 한 걸음 가면?

같이 풀기 세션 9

김민준 M01
김민준

(가)는 (0.5−1, 0.3, 0.2+1)=(−0.5, 0.3, 1.2)(0.5 - 1,\ 0.3,\ 0.2 + 1) = (-0.5,\ 0.3,\ 1.2)요. 합이 1이니까 됐네요.

선생님 T01
선생님

첫째 전문가의 비중 −0.5는 무슨 뜻일까요?

김민준 M05
김민준

음수 비중이요… 섞는 비율로는 말이 안 되네요. 그래서 예전에 음수를 0으로 자르고 다시 나누는 코드를 덧붙인 적이 있어요.

이서연 S01
이서연

(나)는 (0.5e−1, 0.3, 0.2e)≈(0.184, 0.3, 0.544)(0.5e^{-1},\ 0.3,\ 0.2e) \approx (0.184,\ 0.3,\ 0.544), 합이 1.028이라 나누면 (0.179, 0.292, 0.529)(0.179,\ 0.292,\ 0.529). 양수에 exp⁡\exp를 곱하니까 아무리 큰 걸음이어도 0 아래로는 못 가.

선생님 T01
선생님

보통의 경사 하강은 걸음을 거리의 제곱으로 잴 때 나오는 갱신이고, 미러 디센트는 그 자리에 KL 발산을 넣을 때 나오는 갱신이에요. 비중 하나를 0 가까이로 밀면 KL로 잰 걸음은 어떻게 될까요?

이서연 S08
이서연

KL은 확률이 작은 칸의 변화를 크게 쳐. 0에 다가갈수록 로그가 무한대로 가니까, 그 자로 잰 걸음은 0이라는 벽에 닿을 수가 없구나. 비중이 확률벡터라는 모양을 자가 알고 있는 셈이네.

김민준 M01
김민준

음수를 0으로 자르는 땜질이 필요 없었던 거네요. 공간의 모양에 맞는 자로 걸었으면 처음부터 벽 안에 있었어요.