메르카토르 지도는 구면의 극지방을 부풀려 그렸지만, 끝없이 넓은 것을 종이 한 장에 그려야 할 때도 있다. 가지가 계속 둘씩 갈라지는 족보나 분류 나무는 몇 대만 내려가도 종이 가장자리가 모자란다. 그렇다면 반대로 가장자리로 갈수록 한없이 줄여 그리는 눈금도 가능할까? 가능하다면 유한한 그림 안에 무엇을 담을 수 있을까?
역사: 이천 년 동안 증명하려던 약속
에우클레이데스(Euclid)의 『원론』에는 다른 약속들보다 유난히 길고 덜 당연해 보이는 약속이 하나 있었다. 오늘날 흔히 쓰는 꼴로 말하면 「직선 밖의 한 점을 지나 그 직선과 만나지 않는 직선은 하나뿐이다」라는 평행선 공준이다. 수학자들은 오랫동안 이 약속을 나머지 약속들로 증명해 내려 했다. 1733년 이탈리아의 사케리(Giovanni Saccheri)는 이 약속을 부정하면 모순이 생긴다는 것을 보이려 했다. 그는 밑변 양 끝에 같은 길이의 수직선을 세운 사각형을 그리고, 윗변의 두 각이 직각인 경우와 둔각인 경우와 예각인 경우를 나눠 따졌다. 직각이면 평행선 공준이 따라 나오므로, 나머지 두 경우에서 모순을 찾으면 증명이 끝난다. 둔각인 경우의 모순은 찾아냈지만, 예각인 경우에는 결과를 길게 끌어내다가 실제로는 모순에 이르지 않았는데도 모순을 찾았다고 믿고 멈췄다.
사케리가 1733년 밀라노에서 펴낸 책 『모든 흠에서 벗어난 에우클레이데스』의 속표지. 평행선 공준을 증명했다고 믿은 책이다 (Wikimedia Commons, 퍼블릭 도메인)
방향을 바꾼 사람들은 모순을 찾는 대신 그 기하를 하나의 기하로 받아들였다. 러시아의 로바쳅스키(Nikolai Lobachevsky)는 1829~1830년에, 헝가리의 보여이(János Bolyai)는 1832년에 따로따로, 만나지 않는 직선이 여럿인 기하를 펴냈다. 가우스는 보여이의 글을 보고 자신도 여러 해 전에 같은 생각에 이르렀지만 펴내지 않았다고 답했다.
그래도 걱정은 남았다. 이 기하가 언젠가 모순에 부딪히지 않는다고 어떻게 믿는가? 1868년 이탈리아의 벨트라미(Eugenio Beltrami)는 이 기하를 익숙한 대상 위에 그려 보였다. 새 기하의 그림을 보통 기하 안에 그릴 수 있으면, 새 기하의 모순은 곧 보통 기하의 모순이 된다. 보통 기하를 믿는 만큼 새 기하도 믿을 수 있게 된 것이다. 아래의 원판 그림도 이런 그림 가운데 하나로, 리만이 1854년 강연에서 처음 적었다.
사케리의 사각형을 보통 평면과 푸앵카레 원판에 같은 짜임으로 세운 그림. 원판 위에서는 윗변의 두 각이 약 32°인 예각이 되어, 사케리가 모순을 찾으려던 예각인 경우가 모순 없이 그려진다 (밑변과 수직선의 실제 길이 1.6은 그림을 위해 고른 값, 직접 계산해 그림)
이 원판에 푸앵카레(Henri Poincaré)의 이름이 붙은 것은 전혀 다른 길에서 그가 이 그림에 닿았기 때문이다. 그는 1880년 무렵 복소 함수의 한 부류(그가 푹스 함수라고 이름 붙인 것)를 연구하고 있었다. 1908년에 쓴 회고에 따르면, 그는 보름 동안 그런 함수가 있을 수 없다는 것을 증명하려다 실패했고, 지질 답사를 떠나 수학을 잊고 있던 어느 날 쿠탕스에서 합승 마차에 발을 올리는 순간 자신이 쓴 변환들이 비유클리드 기하의 변환과 똑같다는 생각이 떠올랐다. 그는 그 자리에서 확인하지 않고 하던 이야기를 이어 갔고, 돌아와서야 차분히 확인했다. 1882년 논문들에서 그는 이 원판을 써서 함수를 다루었다.
김민준
사케리처럼 결과를 계속 끌어냈는데 모순이 안 나왔으면, 그냥 모순이 없다고 하면 되지 않나요? 저라면 테스트를 많이 돌려 보고 다 통과하면 끝이라고 할 것 같은데요.
선생님
테스트를 천 개 통과한 코드에 버그가 없다고 장담할 수 있어요?
김민준
아… 천한 번째에서 터질 수도 있죠. 끌어낸 결과가 아무리 많아도 다음 줄에서 모순이 나올지 모르는 거네요.
이서연
그래서 벨트라미가 그림을 그린 거구나. 새 기하를 보통 기하 안에 그려 놓으면, 새 기하의 모순은 보통 기하의 모순이 되니까.
선생님
맞아요. 그런데 사케리가 살던 1733년에는 그런 그림을 그릴 재료가 없었어요. 무엇이 없었을까요?
이서연
음, 만나지 않는 직선이 여럿인 그림이면 평면의 피타고라스 거리로 재서는 안 될 테니까… 거리를 자리마다 다르게 재는 방법이요? 원판 그림을 리만이 1854년 강연에서 처음 적었다고 했으니, 그 전에는 없었겠네요.
김민준
푸앵카레도 그 원판을 일부러 찾은 게 아니라, 함수를 연구하다가 마차에 오르는 순간 알아챘잖아요. 다들 돌아서 도착했네요.
선생님
그럼 하나 물어볼게요. 끝없이 넓은 평면을 반지름 1인 원판 그림 안에 다 담으려면, 그림 위의 0.01은 가장자리 쪽에서 실제로 어떤 길이가 되어야 할까요?
원판 위의 줄어드는 눈금
가장자리로 갈수록 한없이 줄여 그리는 눈금의 대표가 푸앵카레 원판 모델인데, 가장자리에서 얼마나 빨리 줄여 그릴지는 여러 가지로 고를 수 있다. 아래 배율은 원판 안 어느 점을 중심으로 옮겨 와도 둘레의 모습이 똑같도록(공간 어디서나 곡률이 같도록) 고른 것이다. 반지름 1인 원판 그림 위에서 오른쪽으로 0.01 옮기면 실제로는 얼마를 간 것인지, 그림 속 위치마다 적으면 이렇다.
그림 속 위치
그림 위 0.01 이동의 실제 길이
계산
중심 (0,0)
0.02
2/(1−0)×0.01
(0.5,0)
약 0.027
2/(1−0.25)×0.01
(0.8,0)
약 0.056
2/(1−0.64)×0.01
가장자리로 갈수록 그림 속 같은 0.01이 점점 긴 실제 거리가 되는데, 배율 2/(1−x2−y2)를 제곱해 선소로 적으면 다음 계량이다. 이 계량을 단 원판은 어디서나 말안장처럼 같은 정도로 휜(일정한 음의 곡률을 가진) 쌍곡 평면이 된다.
쌍곡 평면 (어디서나 같은 정도로 말안장처럼 휜 끝없는 평면 / Hyperbolic Plane): 곡률이 어디서나 같은 음수인, 끝이 없는 2차원 공간. 푸앵카레 원판 모델은 이 공간을 반지름 1인 원판 그림에 담은 것으로, 그림 위 자리 (x,y)에서 배율 2/(1−x2−y2)의 눈금을 쓴다.
원판의 가장자리에 가까워질수록 분모가 0에 가까워져 눈금이 폭발적으로 커지고, 원판의 가장자리는 "무한히 먼 곳"이 된다. 에셔(M.C. Escher)의 유명한 목판화 Circle Limit 시리즈는 바로 이 쌍곡 기하학을 시각화한 것이다. 에셔는 1958년 편지에, 수학자 콕서터(H. S. M. Coxeter)의 논문에 실린 쌍곡 평면 무늬 그림을 보고 이 연작을 시작했다고 적었다.
에셔의 Circle Limit III. 푸앵카레 원판 모델의 쌍곡 기하학을 시각화한 목판화. 가장자리로 갈수록 물고기가 작아지지만, 쌍곡 계량에서는 모두 같은 크기다
따라 계산해 보기 2: 푸앵카레 원판의 가장자리는 얼마나 먼가
원판의 중심에서 오른쪽으로 곧게 나가 유클리드 반지름 r에 이르는 선분 γ(t)=(t,0), 0≤t≤r의 길이를 재 보자. 속도는 (1,0)이므로 계량으로 잰 속력은 2/(1−t2)이다.
r=0.5이면 L=ln3≈1.10, r=0.9이면 ln19≈2.94, r=0.99이면 ln199≈5.29이니, 그림 위에서는 겨우 0.09를 더 갔을 뿐인데 실제 거리는 2.35나 늘었다. 가장자리에 더 다가가면 중심에서 잰 실제 거리 L이 어떻게 되는지는 아래 문제 8에서 컴퓨터로 확인한다.
두 번째 위젯은 푸앵카레 원판 위의 "늘어나는 자"다. 원판 안에서 점을 끌면, 끈 점을 중심으로 쌍곡 거리 0.5에 해당하는 원이 그려지고 중심에서의 실제 거리가 계산된다. 가장자리로 갈수록 같은 거리가 점점 작은 원으로 보인다.
원판을 중심에 대해 돌려도 계량 식은 x2+y2와 dx2+dy2에만 기대므로 변하지 않고, 돌리기 전에 잰 길이와 돌린 뒤에 잰 길이가 어느 곡선이든 같다. 이처럼 구기거나 늘이지 않고 모든 길이를 그대로 두는 이동(계량을 바꾸지 않는 이동)을 등거리 사상(isometry. 사상은 점을 받아 점을 내놓는 이름 붙은 함수)이라 부른다.
푸앵카레 원판에는 회전뿐 아니라 중심을 원판 안의 어느 점으로든 옮기는, 자를 바꾸지 않는 이동도 있다. 그래서 쌍곡 평면 안에 사는 존재에게는 가장자리 근처도 중심과 똑같은 곳이고, 에셔 그림의 가장자리 물고기가 작아 보이는 것은 그림의 눈금 때문일 뿐이다.
ML에서: 쌍곡 공간에 나무 구조 담기
니켈(M. Nickel)과 키엘라(D. Kiela)는 2017년 NIPS(지금의 NeurIPS, 신경정보처리시스템 학회)에 발표한 Poincaré Embeddings에서, 워드넷(WordNet)의 명사 계층처럼 나무 모양으로 갈라지는 데이터를 푸앵카레 원판(의 고차원판인 공) 안에 임베딩했다. 여기서 임베딩은 항목마다 벡터 하나를 정해 공간 안에 놓는 ML의 임베딩이다(곡면이 바깥 공간에 놓인 방식을 부르는 기하의 임베딩과는 이름만 같다). 뿌리에 가까운 일반적인 낱말은 중심 근처에, 잎에 가까운 구체적인 낱말은 경계 근처에 놓인다. 나무는 깊이 내려갈수록 가지 수가 기하급수적으로 늘어나는데, 쌍곡 계량에서는 경계 쪽으로 갈수록 담을 수 있는 '자리’도 그만큼 빠르게 늘어나 적은 차원으로도 계층을 담을 수 있다. 여기서 움직이는 것은 낱말마다 붙은 임베딩 벡터이고, 학습은 쌍곡 거리로 잰 손실을 줄인다.
가지가 둘씩 갈라지는 깊이 5의 나무를 푸앵카레 원판에 놓은 그림. 층마다 중심에서의 실제 거리가 0.8씩 늘도록 놓았다. 실제 거리로는 가지 길이가 모두 같은데 그림에서는 가장자리로 갈수록 짧아 보이고, 깊은 층의 잎 32개도 원판 가장자리에 넉넉히 들어간다. 논문의 그림이 아니라 이 책이 계산해 그린 것이고, 가지는 곧은 선으로 이었다
문제 7: 철로 사진 3 cm 안에 담긴 길이
확인 곧게 뻗은 철로를 찍은 사진에서, 카메라에서 d m 떨어진 침목은 지평선보다 30/d cm 아래에 찍힌다(d≥10). (가) 지평선 아래 3 cm 자리와 0.3 cm 자리에서, 사진 위 1 mm는 실제 철로 몇 m인가? (나) 지평선 아래 3 cm부터 지평선까지, 사진 속 3 cm 안에 철로가 몇 m 담겨 있는가?
문제 7의 사진. 두 철로가 지평선의 한 점으로 모이고, 같은 간격으로 놓인 침목이 지평선에 가까울수록 촘촘하게 찍힌다
같이 풀기 세션 7
김민준
지평선 아래 y cm 자리는 d=30/y m니까 3 cm 자리는 10 m 떨어진 곳이에요. 미분하면 사진 1 cm마다 30/y2 m라서, 3 cm 자리에서는 1 cm에 약 3.3 m, 1 mm에 약 0.33 m요. 그럼 (나)는 3 cm가 30 mm니까 30×0.33=10 m요.
선생님
0.3 cm 자리의 1 mm는 몇 m였죠?
김민준
30/0.09≈333이니까 1 cm에 333 m, 1 mm에 약 33 m예요. 3 cm 자리보다 백 배나 길어요. 3 cm 자리의 눈금 하나로 사진 전체를 잰 게 잘못이었네요.
이서연
자리마다 눈금 30/y2로 재서 더하면, 3 cm 자리는 10 m 떨어진 곳이고 y가 0에 다가가면 30/y가 끝없이 커지니까 담긴 철로도 끝이 없어. 사진 속 3 cm 안에 지평선까지 끝없는 철로가 들어 있는 거야.
김민준
보고서 그래프에서 축 눈금을 안 보고 막대 높이만 비교했다가 조교님께 지적받은 적이 있는데, 그거랑 같네요. 사진 한 칸의 실제 길이가 자리마다 달랐어요.
문제 8: 유한한 원판 안의 무한한 평면
킬러 본문은 푸앵카레 원판의 가장자리가 "무한히 먼 곳"이라고 했다. (가) 중심에서 오른쪽으로 곧게 가는 길의 길이를 컴퓨터로 적분해 이 말을 확인하라. 적분 끝을 1에 얼마나 가까이 두어야 실제 거리가 10을 넘는가? (나) 원판 그림의 넓이는 π로 유한한데, 이것은 모순이 아닌가? (다) 점 (0.9,0)에서 그림 위로 0.01만큼 옮기면 실제로는 얼마나 움직인 것인가?
문제 8의 푸앵카레 원판. 중심에서 가장자리로 곧게 가는 길과 r=0.5, 0.9, 0.99인 자리, 점 (0.9,0)에서 그림 위로 0.01 옮기는 화살표(확대)
풀이를 마친 뒤 위의 위젯에서 「r = 0.9」를 눌러 r = 0.9인 점의 눈금 배율을 자기 답과 비교하고, 「r = 0.99」를 누르거나 점을 가장자리로 끌면서 중심에서 실제 거리가 어떻게 되는지 보자.
같이 풀기 세션 8
김민준
scipy.integrate.quad로 2/(1−t2)를 0부터 1까지 적분했더니 경고가 뜨면서 이상한 값이 나왔어요. 수치 오류 같아서 끝을 0.9999로 잘랐더니 약 9.9요. 끝을 1에 붙여도 10쯤에서 멈출 것 같아요. 본문의 "무한히 먼 곳"은 과장 아닐까요?
이서연
경고가 오류가 아닐 수도 있어. t가 1에 다가가면 분모 1−t2가 0으로 가잖아. 적분이 유한한지부터 봐야 할 것 같은데.
선생님
손으로 원시함수를 구해 볼래요? 2/(1−t2)를 두 분수로 나눠 보면요.
이서연
1/(1−t)+1/(1+t)니까… 원시함수가 ln1−r1+r이에요. r→1이면 분모의 1−r이 0으로 가서 무한대예요. 경고는 적분값이 유한하지 않다는 신호였네.
선생님
민준 학생, 끝을 0.99999로 잘라 보면 어떻게 될까요?
김민준
0.9999에서 9.9면 0.99999에서는… ln199999≈12.2요. 9가 하나 늘 때마다 2.3씩 계속 커지네요. 수렴하는 게 아니었어요. 문제 7의 철로 사진에서 지평선 쪽 1 mm가 점점 긴 철로였던 거랑 같네요.
이서연
10을 넘는 자리는 거꾸로 풀면 돼. ln1−r1+r=10이면 r=tanh5≈0.99991이야. 그림 위로는 1까지 0.0001도 안 남은 자리에서야 10을 넘어.
이서연
그런데 그러면 이상해요. 원판은 반지름 1인 원 안에 다 들어가잖아요. 넓이도 π로 유한한데, 그 안에 끝이 무한히 먼 평면이 있다는 게 말이 되나요?
선생님
좋은 질문이에요. 넓이 π는 무엇으로 잰 거예요?
이서연
유클리드 자로요… 아, 계량이 다르면 넓이도 달라지겠네요.
선생님
이 계량은 그림 위 길이를 2/(1−r2)배로 늘려요. 그럼 그림 위의 작은 정사각형 하나는 넓이가 몇 배가 될까요?
이서연
가로도 세로도 그만큼 늘어나니까 제곱, 4/(1−r2)2배요. 경계 쪽에서는 그게 끝없이 커지니까, 적분하면 넓이도 무한이에요. π는 그림의 넓이지 이 공간의 넓이가 아니네요.
선생님
그래요. 앞에서 좌표는 이름표라고 했죠. 원판은 무한한 평면에 붙인 이름표 체계이고, 거리와 넓이는 계량이 정해요. 마지막 질문도 계량으로 풀어 봅시다.
김민준
점 (0.9,0)에서는 눈금 배율이 2/(1−0.81)≈10.5배니까, 그림 위 0.01은 실제로 약 0.105예요. 원판 중심에서였으면 0.02였을 텐데 다섯 배 넘게 차이 나네요.
김민준
에셔 그림에서 가장자리 물고기가 작아 보이는 게 바로 이거네요. 실제로는 다 같은 크기인데 그림이 줄여서 보여 주는 거고요.
선생님
맞아요. 메르카토르 지도가 극지방을 부풀렸다면, 푸앵카레 원판은 가장자리를 한없이 줄여서 무한한 평면을 유한한 그림에 담아요. 방향은 반대지만 원리는 같아요. 그림의 눈금과 실제 눈금이 장소마다 다른 거예요.
김민준
수치 적분 경고를 무시하고 잘라 낸 게 제 실수였어요. 과제 코드에서 nan이 나오면 nan_to_num으로 덮었다가 조교님께 "경고는 버그 신고서예요"라는 말을 들은 적이 있거든요.
문제 9: 잎 1024개를 둘 원
계산 가지가 둘씩 갈라지는 나무의 깊이 10에는 잎이 1024개 있다. 잎을 중심에서 같은 거리에 있는 원 위에, 이웃한 잎끼리 실제 거리 1 이상 떨어지게 놓으려면 원의 실제 둘레가 1024는 되어야 한다. (가) 평면에서는 반지름이 얼마인 원이 필요한가? (나) 푸앵카레 원판에서 그림 위 반지름 r인 원의 실제 둘레는 그림 속 둘레 2πr에 반지름 r인 점의 배율 2/(1−r2)을 곱한 값이다. 실제 둘레가 1024가 되는 r과, 그 원의 중심에서의 실제 거리를 구하라. (다) 깊이가 20이면 (가)와 (나)의 거리는 각각 얼마가 되는가?
문제 9의 두 원. (가) 평면의 원과 (나) 푸앵카레 원판 속의 원에 잎을 같은 간격으로 늘어놓았다. 잎은 32개만 그렸고 원의 크기는 그림을 위해 임의로 잡았다
같이 풀기 세션 9
김민준
원판은 반지름 1 안에 다 들어가니까 원의 둘레가 아무리 커도 2π≈6.28이에요. 잎 1024개를 간격 1로 놓는 건 불가능해요.
선생님
2π는 무엇으로 잰 둘레예요?
김민준
원판 그림의 눈금이요… 문제 8의 넓이 π랑 똑같은 실수를 했네요. 실제 둘레는 2πr×2/(1−r2)이에요. numpy로 풀면 r≈0.9939에서 1024가 돼요. 중심에서의 실제 거리는 ln1−r1+r≈5.79고요.
이서연
(가) 평면에서는 반지름이 1024/2π≈163이야. 원판에서는 5.8이면 되는 걸 평면에서는 163까지 나가야 해. (다) 깊이 20이면 잎이 220개라 평면은 약 166,886, 원판은 약 12.72야. 깊이가 10 늘 때 원판 쪽 거리는 약 6.93(=10×ln2)만 늘었어.
선생님
왜 하필 ln2씩 늘까요?
이서연
실제 둘레가 중심에서의 거리에 따라 지수적으로 늘어서요. 거리가 ln2 늘 때마다 둘레가 거의 두 배가 되고, 나무도 한 층 내려갈 때마다 잎이 두 배예요. 둘레와 잎 수가 같은 비율로 불어나요.
김민준
그래서 임베딩 논문이 깊은 계층을 작은 차원의 원판에 담을 수 있었군요. 평면에서는 자리가 모자라면 차원을 늘려야 하는데, 원판은 가장자리 쪽에 자리가 알아서 늘어나요. 아까 철로 사진처럼 그림 속 작은 띠에 끝없는 길이가 들어 있는 거예요.