좌표 하나로는 지구를 담을 수 없다

전이함수: 겹치는 곳의 번역 규칙

앞 절 첫머리의 역사에서, 반구 지도 두 장은 이음매에서 항로가 끊겼고 입체사영 두 장은 넉넉히 겹쳐서 그 문제를 풀었다. 그리고 앞 절 끝에서 이 이음매 고민, 곧 겹치는 곳에서 두 차트의 좌표를 어떻게 이을 것인가에 전이함수라는 이름을 붙였다. 이제 그 번역 규칙을 실제로 구해 보자.

문제는 겹치는 부분이다. 지도책의 유럽 지도와 아시아 지도는 터키 근처에서 겹친다.

지도책의 유럽 지도와 아시아 지도 — 보라색 띠가 두 지도가 겹치는 곳이다. 이스탄불은 유럽 지도에서 (8.9, 1.5), 아시아 지도에서 (0.6, 4.0)이다. 숫자는 달라도 같은 장소다
지도책의 유럽 지도와 아시아 지도 — 보라색 띠가 두 지도가 겹치는 곳이다. 이스탄불은 유럽 지도에서 (8.9, 1.5), 아시아 지도에서 (0.6, 4.0)이다. 숫자는 달라도 같은 장소다

앞에서 본 구면의 두 차트도 마찬가지다. 북극과 남극을 뺀 나머지 점은 모두 두 차트에 함께 들어 있고, 같은 점이 두 차트에서 서로 다른 좌표를 받는다. 두 좌표가 같은 점이라는 것을 어떻게 알아볼 수 있을까?

역사: 번역 규칙이 정의가 되기까지

리만은 조각마다 좌표를 붙이고 조각 사이를 번역하면 된다는 씨앗을 뿌렸지만, 그 뒤로도 오랫동안 곡면과 그 고차원 친척들은 바깥 공간 속에 놓인 모양으로 다뤄졌다. 앙리 푸앵카레(Henri Poincaré)가 1895년 논문 「위치 해석(Analysis Situs)」의 첫머리에서 내린 정의도 그랬다. 바깥 공간의 좌표가 어떤 식을 만족하는 점들의 모임이라는 것이다. 원으로 치면 평면에서 x2+y2=1x^2 + y^2 = 1을 만족하는 점들이다. 그런데 이런 모양을 계산하려면 결국 조각으로 나눠야 한다. 원만 해도 위 반원은 y=1−x2y = \sqrt{1 - x^2}, 아래 반원은 y=−1−x2y = -\sqrt{1 - x^2}로 따로 적어야 하고, 양 끝 (1,0)(1, 0)과 (−1,0)(-1, 0) 근처는 xx를 yy로 적는 조각이 또 필요하다. 푸앵카레는 같은 논문의 셋째 절에서 이런 조각을 여러 개 이어 쓰는 더 넓은 정의를 새로 내놓았다. 두 조각이 겹치면 한 조각의 좌표가 다른 조각의 좌표의 매끄러운 함수이고 「그 반대도 그렇다」는 조건을 붙였다. 겹치는 곳의 번역이 양쪽으로 매끄러워야 한다는, 오늘날 전이함수에 거는 조건의 첫 모습이다.

다만 푸앵카레의 조각은 여전히 바깥 공간 속의 그래프였다. 바깥 공간 없이 조각과 번역 규칙만으로 공간을 세우는 정의는 헤르만 바일(Hermann Weyl)이 1911~1912년 리만 곡면 강의에서 내놓고 1913년 책 『리만 곡면의 개념(Die Idee der Riemannschen Fläche)』으로 펴냈다. 그 뒤 오즈월드 베블런(Oswald Veblen)과 J. H. C. 화이트헤드(J. H. C. Whitehead)도 매끄러운 매니폴드를 바깥 공간 없이 정의해 발표했고, 1936년 해슬러 휘트니(Hassler Whitney)는 조각과 번역 규칙만으로 정한 매니폴드가 언제나 차원이 충분히 높은 바깥 공간 속에 곡면처럼 놓일 수 있음을 증명했다. 두 정의가 같은 것을 가리킨다는 뜻이다. 이 책도 바깥에서 곡면을 내려다보는 대신 지도와 번역 규칙만 들고 다니는 쪽을 따른다.

좌표 번역기

구면의 두 차트로 번역을 한 건 해 보자. φN\textcolor{#3949ab}{\varphi_N} 지도에서 (2,0)(2, 0)에 찍힌 점은 구면 위의 (0.8,0,0.6)(0.8, 0, 0.6)이다. 이 점을 φS\textcolor{#3949ab}{\varphi_S} 지도로 보면 0.8/(1+0.6)=0.50.8/(1+0.6) = 0.5이므로 (0.5,0)(0.5, 0)에 찍힌다. 같은 점이 한 지도에서는 (2,0)(2, 0), 다른 지도에서는 (0.5,0)(0.5, 0)이다. 원점에서의 거리 2가 1/21/2로 뒤집혔다.

이 번역은 두 걸음이다. 먼저 φN\textcolor{#3949ab}{\varphi_N} 지도의 (2,0)(2, 0)에서 구면 위의 점으로 되돌아가고(지도에서 구면으로 거꾸로 가는 함수라서 φN−1\textcolor{#3949ab}{\varphi_N}^{-1}로 적는다), 그 점을 φS\textcolor{#3949ab}{\varphi_S} 지도로 읽는다. 두 걸음을 이어 붙인 함수를 φS∘φN−1\textcolor{#3949ab}{\varphi_S} \circ \textcolor{#3949ab}{\varphi_N}^{-1}로 적는다. 오른쪽에 적힌 함수부터 차례로 한다는 뜻이다.

C∞C^\infty는 「C 무한」이라 읽고, 몇 번이든 미분할 수 있다는 뜻이다. 번역 규칙에 이런 조건을 거는 까닭은 둘이다.

  1. 번역은 매끄러워야 한다. 유럽 좌표를 아시아 좌표로, 또는 그 반대로 바꾸는 함수가 매끄럽지 않으면, 한 지도에서 곧게 가던 배가 다른 지도에서는 갑자기 꺾이거나 튄다 — 갑자기 좌표가 점프하면 곤란하니까. 매끄럽지 않은 번역이 실제로 무엇을 망가뜨리는지는 아래 문제 9에서 숫자로 본다.

  2. 번역 규칙들이 서로 모순이 없어야 한다. A → B → C로 가든, A → C로 직접 가든, 결과는 같아야 한다. 차트들이 모두 한 공간에서 왔다면 이 조건은 저절로 지켜진다. 원점이 두 개인 직선처럼 지도만 들고 이어 붙여 공간을 만들 때는 따로 챙겨야 한다.

두 차트가 겹치는 영역(북극과 남극을 모두 뺀 부분) 전체에서 이 번역을 식 하나로 쓸 수 있다.

φS∘φN−1(x,y)=1x2+y2 (x,y) \textcolor{#3949ab}{\varphi_S} \circ \textcolor{#3949ab}{\varphi_N}^{-1}(\textcolor{#1b9e77}{x}, \textcolor{#1b9e77}{y}) = \frac{1}{\textcolor{#1b9e77}{x}^2 + \textcolor{#1b9e77}{y}^2}\,(\textcolor{#1b9e77}{x}, \textcolor{#1b9e77}{y})
x,y차트 φN 에서 읽은 좌표φS∘φN−1전이함수: φN 좌표를 φS 좌표로 번역 \begin{array}{ll} \textcolor{#1b9e77}{x}, \textcolor{#1b9e77}{y} & \text{차트 } \textcolor{#3949ab}{\varphi_N} \text{ 에서 읽은 좌표} \\ \textcolor{#3949ab}{\varphi_S} \circ \textcolor{#3949ab}{\varphi_N}^{-1} & \text{전이함수: } \textcolor{#3949ab}{\varphi_N} \text{ 좌표를 } \textcolor{#3949ab}{\varphi_S} \text{ 좌표로 번역} \end{array}

이것은 단위원을 거울 삼아 안과 밖을 뒤집는 반전(inversion)이다. 적도는 두 차트 모두에서 단위원 위에 놓이고, 북반구는 φN\textcolor{#3949ab}{\varphi_N}에서는 단위원 밖으로, φS\textcolor{#3949ab}{\varphi_S}에서는 단위원 안으로 간다. 전이함수는 원점에서만 정의되지 않는데, φN\textcolor{#3949ab}{\varphi_N}의 원점은 남극이라 애초에 겹치는 영역에 없다. 겹치는 영역 전체에서 무한히 미분 가능하므로 이 아틀라스는 매끄럽다.

지금까지를 정리하면 다음과 같다:

국소적으로 Rn\mathbb{R}^{\textcolor{#c4724f}{n}}처럼 보이는 공간은, Rn\mathbb{R}^{\textcolor{#c4724f}{n}}으로의 좌표를 붙이는 함수들(차트)의 모음과 겹치는 영역에서의 매끄러운 변환 규칙(전이함수)으로 빠짐없이 나타낼 수 있다.

두 입체사영 차트로 구면을 덮은 아틀라스다. 두 평면 중 어느 쪽에서든 점을 끌면 구면 위의 점이 따라 움직이고, 구면은 끌어서 돌려 볼 수 있다. 점을 북극 쪽으로 가져가면서 φN\textcolor{#3949ab}{\varphi_N} 좌표가 어떻게 되는지, 그동안 φS\textcolor{#3949ab}{\varphi_S} 좌표와 전이함수는 어떻게 되는지 지켜보자.

ML에서: 같은 분포를 두 좌표로 읽기

정규분포 하나는 평균 μ\textcolor{#1b9e77}{\mu}(뮤)와 표준편차 σ\textcolor{#1b9e77}{\sigma}(시그마, σ>0\textcolor{#1b9e77}{\sigma} > 0) 두 숫자로 정해지므로, 정규분포들의 모임은 2차원 매니폴드이고 (μ,σ)(\textcolor{#1b9e77}{\mu}, \textcolor{#1b9e77}{\sigma})는 그 위의 차트 하나다. 그런데 신경망이 σ\textcolor{#1b9e77}{\sigma}를 직접 내놓게 하면 σ>0\textcolor{#1b9e77}{\sigma} > 0이라는 제약을 따로 챙겨야 해서, 흔히 로그값을 대신 출력하게 한다. VAE(변분 오토인코더, Variational Autoencoder. 이미지 같은 데이터를 적은 수의 숫자로 줄였다가 되살리도록 학습하는 생성 모델)의 인코더가 분산 σ2\textcolor{#1b9e77}{\sigma}^2 대신 log⁡σ2\log \textcolor{#1b9e77}{\sigma}^2을 내놓는 것이 대표적인 예다.

이렇게 하면 같은 분포 모임에 차트가 두 장 생긴다. 예컨대 (μ,σ)(\textcolor{#1b9e77}{\mu}, \textcolor{#1b9e77}{\sigma})와 (μ,s)(\textcolor{#1b9e77}{\mu}, s), s=log⁡σs = \log \textcolor{#1b9e77}{\sigma} 사이의 전이함수는 σ=es\textcolor{#1b9e77}{\sigma} = e^{s}, s=log⁡σs = \log\textcolor{#1b9e77}{\sigma}로 양쪽 모두 무한히 미분 가능하다. 여기서 움직이는 것은 모델이 출력하는 분포의 매개변수이고, 좌표가 달라도 가리키는 분포는 같다. 유럽 지도의 좌표와 아시아 지도의 좌표가 같은 이스탄불을 가리키는 것과 같다.

문제 7 — 온도 눈금 세 개 사이의 번역

확인 섭씨, 화씨, 켈빈 세 온도 눈금 사이에는 번역 규칙이 있다. 화씨 = 1.8 × 섭씨 + 32이고, 켈빈 = 섭씨 + 273.15이다. (1) 섭씨 25도를 화씨로 바꾼 뒤 그 값을 켈빈으로 바꾼 결과가, 섭씨 25도를 켈빈으로 바로 바꾼 결과와 같은지 확인하라. (2) 어떤 사람은 화씨를 섭씨로 바꿀 때 「30을 빼고 반으로 나눈다」는 어림 규칙을 쓰고, 거기에 273을 더해 켈빈을 얻는다. 섭씨 25도로 같은 확인을 해 보라. 어느 길로 가느냐에 따라 답이 달라지면 무엇이 곤란한가?

같이 풀기 세션 7

김민준 M01
김민준

섭씨 25도는 화씨 77도예요. 77에서 32를 빼고 1.8로 나누면 다시 25, 273.15를 더하면 298.15 K. 섭씨에서 바로 가도 298.15 K라 같아요.

선생님 T01
선생님

(2)는요?

김민준 M01
김민준

77에서 30을 빼고 반으로 나누면 23.5, 273을 더하면 296.5 K. 1.65 K 차이인데, 어림이니까 그 정도는 괜찮지 않아요?

이서연 S01
이서연

차이가 일정하지 않은데. 섭씨 0도로 해 보면 화씨 32도라서 어림 길로는 274 K, 바로 가면 273.15 K야. 이번엔 0.85 K 더 커. 100도면 9.15 K나 작고.

선생님 T01
선생님

누군가 「오늘 낮 기온 296.5 K」라고 적어 놓았어요. 원래 섭씨로 몇 도였을까요?

김민준 M07
김민준

바로 바꾼 거면 23.35도, 어림 길로 바꾼 거면 25도예요. 어느 길로 왔는지 모르면 알 수가 없네요. 번역표끼리 말이 안 맞으면 같은 날씨가 적는 사람마다 다른 숫자가 되는 거예요.

이서연 S01
이서연

지도책도 똑같겠네요. 유럽 지도에서 아시아 지도를 거쳐 러시아 지도로 옮긴 좌표와 유럽 지도에서 러시아 지도로 바로 옮긴 좌표가 다르면, 같은 도시가 러시아 지도에 두 군데 찍혀요.

문제 8 — 두 장의 지도에서 같은 점 읽기

계산 단위구 위의 두 점 A=(0.6, 0, 0.8)A = (0.6,\ 0,\ 0.8), B=(0, −0.8, −0.6)B = (0,\ -0.8,\ -0.6)의 φN\textcolor{#3949ab}{\varphi_N} 좌표와 φS\textcolor{#3949ab}{\varphi_S} 좌표를 구하라. 전이함수로 φN\textcolor{#3949ab}{\varphi_N} 좌표를 번역하면 φS\textcolor{#3949ab}{\varphi_S} 좌표가 나오는지 확인하고, 북극 (0,0,1)(0, 0, 1)에서는 어떻게 되는지 설명하라.

풀이를 마친 뒤 위 도구의 「점 A」「점 B」를 누르거나, X·Y·Z 칸에 점의 위치를 넣고 「이 점 찍기」를 눌러 자기 답과 비교해 보자.

같이 풀기 세션 8

김민준 M01
김민준

numpy로 먼저 돌려 봤어요. AA는 φN(A)=(3,0)\textcolor{#3949ab}{\varphi_N}(A) = (3, 0), φS(A)=(1/3,0)\textcolor{#3949ab}{\varphi_S}(A) = (1/3, 0)이 나와요. 그런데 전이함수에 (3,0)(3, 0)을 넣으니까 (27,0)(27, 0)이 나와서 안 맞아요. 공식이 틀린 거 아니에요?

이서연 S01
이서연

너 (x,y)(\textcolor{#1b9e77}{x}, \textcolor{#1b9e77}{y})에 x2+y2\textcolor{#1b9e77}{x}^2 + \textcolor{#1b9e77}{y}^2를 곱했지? 공식은 나누는 거야. (3,0)/9=(1/3,0)(3, 0) / 9 = (1/3, 0), 딱 맞아.

선생님 T01
선생님

곱할지 나눌지 헷갈릴 때 쓸 수 있는 검산이 하나 있어요. 적도는 두 차트에서 어디로 가죠?

김민준 M07
김민준

둘 다 단위원이요. 그러면 북반구에 있는 AA는 φN\textcolor{#3949ab}{\varphi_N}에선 단위원 밖, φS\textcolor{#3949ab}{\varphi_S}에선 안이어야 하니까, 3이 27로 가면 여전히 밖이라 말이 안 되네요. 안팎을 뒤집으려면 나눠야 하고요.

김민준 M01
김민준

PyTorch 과제에서 역행렬 대신 행렬을 곱해 놓고 조교한테 “단위벡터 하나 넣어서 검산은 해 봤어요?” 소리 들었던 거랑 똑같아요.

이서연 S01
이서연

BB도 해 볼게요. φN(B)=(0,−0.8)/1.6=(0,−0.5)\textcolor{#3949ab}{\varphi_N}(B) = (0, -0.8)/1.6 = (0, -0.5)이고 φS(B)=(0,−0.8)/0.4=(0,−2)\textcolor{#3949ab}{\varphi_S}(B) = (0, -0.8)/0.4 = (0, -2). 번역하면 (0,−0.5)/0.25=(0,−2)(0, -0.5)/0.25 = (0, -2)로 맞아요. 그런데 북극은 φN(0,0,1)=(0/0, 0/0)\textcolor{#3949ab}{\varphi_N}(0, 0, 1) = (0/0,\ 0/0)이니까 부정형이잖아요. 극한을 잡으면 값이 나오지 않을까요?

선생님 T01
선생님

한번 잡아 보세요. 경도는 고정하고, 북극에서 각도 tt만큼 떨어진 점에서 출발해서 t→0t \to 0으로 보내면요?

이서연 S06
이서연

X=sin⁡tX = \sin t, 1−Z=1−cos⁡t≈t2/21 - Z = 1 - \cos t \approx t^2/2니까 X/(1−Z)≈2/tX/(1-Z) \approx 2/t. 0으로 수렴하는 게 아니라 무한대로 가네요. 어느 방향에서 다가가든 ∣φN∣→∞|\textcolor{#3949ab}{\varphi_N}| \to \infty예요.

선생님 T01
선생님

그래서 북극은 φN\textcolor{#3949ab}{\varphi_N}의 영역에 처음부터 넣지 않은 거예요. 그 자리는 φS\textcolor{#3949ab}{\varphi_S}가 맡아서 (0,0)(0, 0)으로 멀쩡하게 보여 줘요. 차트 한 장이 못 담는 점은 다른 장이 담으면 돼요.

이서연 S01
이서연

해석학 시간에 1/x1/x가 (0,1](0, 1]에서는 연속인데 00에서 값을 억지로 붙일 수는 없다고 배운 것과 같네요. 정의역 밖의 점을 극한으로 끌어들이려고 하면 안 되는 거군요.

문제 9 — 표준편차를 어느 좌표로 내놓을까

계산 정규분포의 표준편차 σ\textcolor{#1b9e77}{\sigma}를 모델마다 다른 좌표로 내놓는다. 모델 A는 로그 분산 log⁡σ2\log\textcolor{#1b9e77}{\sigma}^2을, 모델 B는 s=log⁡σs = \log\textcolor{#1b9e77}{\sigma}를, 모델 C는 분산 v=σ2v = \textcolor{#1b9e77}{\sigma}^2을 내놓는다. (1) 모델 A가 −1.2-1.2를 내놓았다. 같은 분포를 모델 B와 모델 C의 좌표로 적어라. (2) 모델 B의 좌표 ss와 모델 C의 좌표 vv 사이의 전이함수를 양쪽 방향으로 적고, 두 차트가 호환되는지 판정하라. (3) 모델 D는 일부러 c=s3c = s^3을 내놓게 만들었다. 모델 B와 모델 D의 차트는 호환되는가?

같이 풀기 세션 9

김민준 M01
김민준

로그 분산이 −1.2면 s=log⁡σs = \log\textcolor{#1b9e77}{\sigma}는 그 절반이라 −0.6이고, σ=e−0.6=0.549\textcolor{#1b9e77}{\sigma} = e^{-0.6} = 0.549, 분산 vv는 0.301이에요.

선생님 T01
선생님

(2)는요?

김민준 M01
김민준

v=e2sv = e^{2s}, 거꾸로는 s=12log⁡vs = \frac{1}{2}\log v예요. 그런데 log⁡v\log v는 v=0v = 0에서 음의 무한대로 가잖아요. 매끄럽지 않으니까 호환이 안 돼요.

이서연 S01
이서연

v=0v = 0이면 σ=0\textcolor{#1b9e77}{\sigma} = 0인데, 그건 정규분포가 아니잖아. 처음부터 σ>0\textcolor{#1b9e77}{\sigma} > 0인 분포만 모은 공간이니까 v=0v = 0은 모델 C의 좌표 범위에 없어.

김민준 M07
김민준

아, 북극이랑 같네요. 차트에 없는 점을 끌어와서 매끄럽지 않다고 한 거예요. v>0v > 0에서는 두 방향 다 몇 번이든 미분되니까 호환돼요.

선생님 T01
선생님

그럼 (3)의 모델 D는요?

이서연 S01
이서연

c=s3c = s^3은 매끄럽고, 거꾸로 s=c1/3s = c^{1/3}도 연속이에요. 서로 일대일로 대응하고요. 호환될 것 같은데요.

선생님 T01
선생님

σ=1\textcolor{#1b9e77}{\sigma} = 1 근처에서 모델 D의 출력 cc를 아주 조금 바꾸면 σ\textcolor{#1b9e77}{\sigma}가 얼마나 바뀌는지 재 볼래요?

김민준 M01
김민준

σ=1\textcolor{#1b9e77}{\sigma} = 1이면 s=0s = 0, c=0c = 0이에요. cc를 0.001 올리면 s=0.1s = 0.1, σ=1.105\textcolor{#1b9e77}{\sigma} = 1.105라서 0.105 바뀌어요. cc를 0.000001 올리면 s=0.01s = 0.01, σ=1.010\textcolor{#1b9e77}{\sigma} = 1.010이라서 0.01 바뀌고요. 걸음을 1000분의 1로 줄였는데 변화는 10분의 1밖에 안 줄었어요.

이서연 S06
이서연

그러면 cc로 잰 σ\textcolor{#1b9e77}{\sigma}의 변화율이 105에서 10,050으로 커진 거네. c1/3c^{1/3}을 미분하면 13c−2/3\frac{1}{3}c^{-2/3}이라 c=0c = 0에서 끝없이 커져요. 연속이긴 한데 매끄럽지 않은 번역이었어요. 그러니 호환되지 않아요.

선생님 T01
선생님

모델 D로 학습하면 σ\textcolor{#1b9e77}{\sigma}가 1 근처에 올 때 무슨 일이 생길까요?

김민준 M08
김민준

손실을 cc로 미분한 값, 곧 cc 쪽 그래디언트(손실이 가장 가파르게 느는 방향과 크기)에 이 변화율이 곱해지니까, σ=1\textcolor{#1b9e77}{\sigma} = 1 근처에서 그래디언트가 폭주해요. 모델 B의 좌표로는 멀쩡한 한 걸음이, 모델 D의 좌표로 번역하면 무한대가 되는 거예요.

선생님 T01
선생님

그래서 전이함수는 양쪽 방향 모두 매끄러워야 한다고 요구해요. 점을 번역하는 것만이 아니라, 점이 움직이는 걸음까지 번역할 수 있어야 하니까요.

김민준 M01
김민준

조교가 제곱근이 들어간 손실은 0 근처에서 그래디언트가 NaN(계산이 깨져 숫자가 아니게 된 값)이 된다고 작은 값을 더해 두라고 했던 게 이거였네요.