곡률을 요약하는 법

출발 문제

100명으로 이루어진 집단의 시험 성적을 모두 적으려면 100개의 숫자가 필요하다. 하지만 실제로 우리가 자주 쓰는 것은 평균, 분산, 중앙값 같은 요약 통계량이다. 정보는 잃지만, 핵심은 남긴다.

곡률에도 같은 사정이 있다. 리만 곡률 텐서(한 점의 휘어짐을 모두 담은, 첨자 네 개짜리 텐서)는 nn차원에서 서로 따로 정할 수 있는 성분(독립 성분)을 n2(n2−1)/12n^2(n^2-1)/12개 가진다. 텐서는 좌표를 바꿀 때 성분이 정해진 규칙대로만 바뀌는 양으로, PyTorch의 tensor와는 이름만 같다. 2차원에서는 1개, 3차원에서는 6개, 그리고 4차원 — 우리가 사는 시공간의 차원 — 에서는 20개다. 이 20개의 숫자가 한 점에서의 곡률을 빠짐없이 나타낸다. 하지만 이 모든 정보를 항상 다 들고 다녀야 하는가? 성적처럼 곡률도 요약할 수 있을까?

이 물음이 실제로 절실했던 사람이 있다. 아인슈타인이 일반상대성이론의 중력장 방정식(물질이 시공간을 어떻게 휘게 하는지 적은 식)을 세울 때 직면한 문제가 바로 이것이었다. 물질의 에너지-운동량 텐서 TijT_{ij}(물질과 에너지가 어디에 얼마나 있고 어떻게 흐르는지 적은 양)는 첨자가 두 개인 대칭 텐서(2차 텐서)로 독립 성분이 10개다. 이것을 4차 텐서인 리만 곡률(20개 성분)과 직접 등치시킬 수는 없다. 곡률의 적절한 "요약"이 필요했다. 20개를 10개로 압축하되, 물리적으로 의미 있는 방식으로.

리치 텐서: 리만 곡률을 한 번 축약한 요약

100명의 성적을 평균 하나로 줄이듯, 첨자 네 개짜리 곡률 텐서를 첨자가 더 적은 무언가로 줄일 수 있을까? 줄인다면 무엇을 남기고 무엇을 버려야 할까?

역사: 그레고리오 리치-쿠르바스트로 (Gregorio Ricci-Curbastro, 1853–1925)

리치-쿠르바스트로의 초상

리만 곡률 텐서를 체계적으로 다루는 계산 언어를 만든 사람은 리치-쿠르바스트로다. 파도바 대학에서 가르치던 리치는 1884년부터 1894년 무렵까지 "절대 미분학(calcolo differenziale assoluto)"을 다듬었다 — 좌표에 의존하지 않는 텐서 연산의 체계. 1900년에는 제자 레비-치비타와 함께 이 방법을 정리한 70쪽이 넘는 논문을 독일 학술지 『수학 연보(Mathematische Annalen)』에 실었다.

리치와 레비-치비타의 1900년 논문 「절대 미분학의 방법과 그 응용(Méthodes de calcul différentiel absolu et leurs applications)」 첫 쪽. 제1장 차례에 공변·반변 체계, 공변 미분, 「리만 체계」가 보인다. 출처: Mathematische Annalen 54권(1900) 125쪽, Zenodo 기록 1428270의 스캔(CC0), 원문은 퍼블릭 도메인
리치와 레비-치비타의 1900년 논문 「절대 미분학의 방법과 그 응용(Méthodes de calcul différentiel absolu et leurs applications)」 첫 쪽. 제1장 차례에 공변·반변 체계, 공변 미분, 「리만 체계」가 보인다. 출처: Mathematische Annalen 54권(1900) 125쪽, Zenodo 기록 1428270의 스캔(CC0), 원문은 퍼블릭 도메인

처음 반응은 차가웠다. 1901년 이탈리아 린체이 학술원의 국왕상 수학 부문 심사에서, 당시 이탈리아 미분기하학을 이끌던 루이지 비앙키는 옛 결과를 새 방법으로 다시 얻는 것보다 새 결과를 옛 방법으로 얻는 쪽을 낫게 본다는 취지로 평했고, 리치는 상을 받지 못했다. 새 언어가 아직 새 결과를 보여 주지 못했다는 것이다.

리치는 1903년 논문에서 첨자 네 개짜리 리만 곡률 텐서의 첨자 두 개를 짝지어 더해 첨자 두 개짜리 텐서를 얻었다. 오늘날 리치 텐서라 부르는 것이다. 이 요약이 제대로 쓰일 곳을 만난 것은 그 뒤 아인슈타인이 중력 이론을 세우면서였다.

대각합처럼 첨자를 짝지어 더하기

식보다 말로 먼저 보자. 한 점에서 방향 vv 하나를 고르면, vv를 품는 평면이 여럿 있다. 평면마다 그 평면 방향의 휘어짐, 곧 단면곡률(그 평면 방향으로 뻗는 측지선들이 만드는 곡면의 가우스 곡률)을 잴 수 있다. 리치 텐서가 방향 vv에 대해 알려 주는 값은, vv에 수직인 방향마다 하나씩 평면을 잡아 그 단면곡률들을 더한 합이다.

이 합이 방향에 따라 어떻게 달라지는지 보려면, 방향마다 휘어짐이 다른 공간이 필요하다. 구면은 어느 방향이나 똑같이 휘어 방향을 바꿔 봐야 같은 값이 나오고, 평면은 어디서나 0이다. 둘을 섞은 가장 간단한 공간이 반지름 1인 구면의 각 점에 위아래로 곧은 직선을 하나씩 붙인 3차원 공간(구면 × 직선)이다. 여기서 세어 보자. vv가 구면 쪽 방향이면 vv를 품는 평면은 둘이다. 구면 안의 평면은 단면곡률 1, 직선 쪽을 품는 평면은 0이라 합은 1이다. vv가 직선 방향이면 두 평면 모두 직선을 품어 0, 합도 0이다. 같은 점에서도 방향에 따라 값이 1과 0으로 갈린다. 리만 곡률은 평면마다 값을 주고, 리치는 그것을 방향마다 하나의 수로 줄인 것이다.

성분으로 쓰면 이 합은 행렬의 대각합(trace)처럼 첨자를 짝지어 더하는 일이 된다. 이런 연산을 축약(contraction, 위 첨자와 아래 첨자를 하나씩 짝지어 더해 첨자 개수를 2만큼 줄이는 것)이라 부른다. 리만 곡률 텐서 RijklR^i{}_{jkl}의 첫째 첨자와 셋째 첨자를 축약하면 첨자 두 개가 남는데, 이것이 리치 텐서다.

Rjl=∑iRijil \textcolor{#5c5ab0}{R}_{jl} = \sum_{i} \textcolor{#c2185b}{R}^i{}_{jil}
Rijkl리만 곡률 텐서 (첨자 4개)Rjl리치 텐서 (첨자 2개, 대칭)i,j,l좌표 방향 첨자. 같은 i 가 위아래에 오면 합산 \begin{array}{ll} \textcolor{#c2185b}{R}^i{}_{jkl} & \text{리만 곡률 텐서 (첨자 4개)} \\ \textcolor{#5c5ab0}{R}_{jl} & \text{리치 텐서 (첨자 2개, 대칭)} \\ i, j, l & \text{좌표 방향 첨자. 같은 } i \text{ 가 위아래에 오면 합산} \end{array}

4차원에서는 4차 텐서의 20개 성분이 대칭 2차 텐서의 10개 성분으로 압축된다. 그렇다면 정보가 사라진 것일까? 사라졌다. 사라진 10개 성분이 무엇을 하는지는 이 장 마지막 절에서 본다.

평면마다의 휘어짐을 더한 이 합은 무엇을 재는가? 방향 v\textcolor{#1f77b4}{v}로 나란히 출발한 측지선 묶음을 떠올려 보자. v\textcolor{#1f77b4}{v}에 수직인 방향마다, 그 방향으로 이웃한 측지선과의 간격은 두 측지선이 함께 놓인 평면의 단면곡률만큼 빨리 줄어든다(단면곡률이 양수이면 좁아지고, 음수이면 벌어진다). 묶음의 단면은 이 간격들을 곱한 넓이이므로, 간격이 줄어드는 빠르기를 모두 더한 것이 단면이 줄어드는 빠르기다. 구면 × 직선에서 구면 쪽으로 출발한 묶음은 구면 쪽 이웃과의 간격이 대원처럼 좁아지고(1) 직선 쪽 이웃과의 간격은 그대로라(0) 단면이 줄어든다. 직선 방향으로 출발한 묶음은 두 이웃 모두 간격이 그대로라(0과 0) 단면도 그대로다.

구면 × 직선에서 나란히 출발한 측지선 묶음. (가) 구면 쪽으로 출발하면 구면 쪽 이웃과의 간격이 줄어 묶음의 단면이 준다(리치 값 1). (나) 직선 방향으로 출발하면 간격이 그대로다(리치 값 0)
구면 × 직선에서 나란히 출발한 측지선 묶음. (가) 구면 쪽으로 출발하면 구면 쪽 이웃과의 간격이 줄어 묶음의 단면이 준다(리치 값 1). (나) 직선 방향으로 출발하면 간격이 그대로다(리치 값 0)

그래서 Rijvivj\textcolor{#5c5ab0}{R}_{ij}\textcolor{#1f77b4}{v}^i\textcolor{#1f77b4}{v}^j는 방향 v\textcolor{#1f77b4}{v}로 나란히 출발한 측지선 묶음이 얼마나 빨리 모이는지, 곧 묶음의 부피가 얼마나 빨리 줄어드는지를 알려 준다. 양수이면 그 방향의 측지선들이 모이고, 음수이면 흩어진다.

이것이 왜 중요할까? 물질이 중력으로 끌어당기는 효과가 바로 이것이기 때문이다. 먼지 구름 속에서 자유낙하하는 입자들의 묶음은 시간이 갈수록 모여 부피가 줄어드는데, 이것이 양의 리치 곡률이다.

ML에서: 그래프 신경망의 병목

리치 곡률의 "나란히 출발한 측지선이 모이는가 흩어지는가"라는 뜻은 점과 선만 있는 그래프에도 옮겨 쓸 수 있다. 한 간선의 두 끝점 이웃들이 많이 겹치면 양의 곡률, 두 끝점에서 뻗는 이웃이 서로 멀리 흩어지면 음의 곡률로 본다. 토핑(J. Topping) 등은 ICLR 2022 논문 "Understanding over-squashing and bottlenecks on graphs via curvature"에서, 그래프 신경망에서 멀리서 온 정보가 좁은 통로에 눌려 뭉개지는 현상(over-squashing)이 음의 곡률을 가진 간선에서 생긴다는 것을 보이고, 곡률을 보고 간선을 덧붙이는 재배선 방법을 제안했다. 여기서 움직이는 것은 그래프 위를 흐르는 메시지이고, 곡률은 그 흐름이 어디서 막히는지를 알려 준다.

문제 1 — 칸은 셋, 숫자는 몇 개

확인 해외 쇼핑몰의 영수증에 물건값이 원, 달러, 엔 세 칸으로 적혀 있다. 그날의 환율표는 이미 가지고 있다. 이 영수증 한 장이 새로 알려 주는 숫자는 몇 개인가? 영수증 열 장이면?

같이 풀기 세션 1

김민준 M01
김민준

칸이 셋이니까 세 개요. 열 장이면 서른 개고요.

선생님 T01
선생님

그럼 원 칸을 가리고 달러 칸만 보여 줄게요. 가린 칸에 뭐가 적혀 있었는지 맞힐 수 있어요?

김민준 M07
김민준

환율표로 곱하면 되니까… 맞힐 수 있네요. 가린 칸이 새로 알려 준 게 없었어요. 한 장에 하나, 열 장이면 열 개예요.

이서연 S01
이서연

칸 수는 적는 방식이 정하고, 숫자 수는 적는 대상이 정하는 거네. 환율표가 이미 있으면 나머지 두 칸은 계산 결과일 뿐이야.

문제 2 — 요약이 원본보다 크다?

확인 2차원 곡면에서 리만 곡률 텐서의 독립 성분은 1개뿐인데, 리치 텐서는 대칭 2×22\times 2 행렬이라 성분이 3개다. 요약이 원본보다 정보가 많아 보이는데, 어디가 잘못된 생각인가?

같이 풀기 세션 2

김민준 M01
김민준

이건 진짜 이상해요. 구면 좌표로 numpy에서 리치 텐서를 뽑으면 Rθθ\textcolor{#5c5ab0}{R}_{\theta\theta}, Rθϕ\textcolor{#5c5ab0}{R}_{\theta\phi}, Rϕϕ\textcolor{#5c5ab0}{R}_{\phi\phi} 세 개가 나오거든요. 리만은 하나라면서요. 그럼 리치가 정보가 더 많은 거 아니에요?

선생님 T01
선생님

그 세 숫자를 저한테 불러 줘 볼래요? 반지름 r\textcolor{#0561ff}{r}인 구에서요.

김민준 M01
김민준

11, 00, sin⁡2θ\sin^2\textcolor{#1b9e77}{\theta}요.

이서연 S01
이서연

그거 계량(점마다 거리를 재는 눈금)이랑 똑같은 모양이잖아. gθθ=r2\textcolor{#d62728}{g}_{\theta\theta} = \textcolor{#0561ff}{r}^2, gϕϕ=r2sin⁡2θ\textcolor{#d62728}{g}_{\phi\phi} = \textcolor{#0561ff}{r}^2\sin^2\textcolor{#1b9e77}{\theta}니까 리치는 계량을 r2\textcolor{#0561ff}{r}^2로 나눈 거야.

선생님 T01
선생님

그럼 질문을 바꿔 볼게요. 계량을 이미 알고 있다면, 그 세 숫자를 알려 주려면 숫자를 몇 개 더 알려 주면 되죠?

김민준 M07
김민준

하나요. 나누는 수 1/r21/\textcolor{#0561ff}{r}^2만 알면 나머지는 계량에서 다 나오네요. 세 개가 아니라 사실상 하나였어요.

선생님 T01
선생님

맞아요. 2차원에서는 언제나 Rij=Kgij\textcolor{#5c5ab0}{R}_{ij} = \textcolor{#b8860b}{K} \textcolor{#d62728}{g}_{ij}예요. 곡률 쪽 정보는 가우스 곡률 K\textcolor{#b8860b}{K} 하나뿐이고, 성분이 셋처럼 보이는 건 계량이 곱해져 있어서예요. 성분의 개수와 독립적인 정보의 개수는 다를 수 있어요.

김민준 M01
김민준

아까 영수증 문제랑 같네요. 계량이 환율표였고, 곡률 쪽에서 새로 알려 주는 숫자는 K\textcolor{#b8860b}{K} 하나였어요. 칸 수가 늘었다고 내용이 늘어난 게 아니었어요.

문제 3 — 그래프의 좁은 통로

계산 아래 그래프는 네 사람이 모두 서로 친구인 무리 둘(A, B, C, D와 E, F, G, H)이 D–E 한 줄로만 이어진 모양이다.

문제 3의 그래프. 네 점이 모두 서로 이어진 무리 둘이 D와 E를 잇는 간선 하나로만 이어져 있다
문제 3의 그래프. 네 점이 모두 서로 이어진 무리 둘이 D와 E를 잇는 간선 하나로만 이어져 있다

간선 하나의 곡률을 재는 가장 간단한 셈법 가운데 하나(증강 포만 곡률, augmented Forman curvature)는 간선의 두 끝점 uu, vv에 대해 F=4−du−dv+3tF = 4 - d_u - d_v + 3t이다. dud_u, dvd_v는 두 끝점의 이웃 수, tt는 두 끝점의 공통 이웃 수다.

(가) 간선 A–B와 D–E의 값을 구하라. (나) 그래프 신경망이 A의 정보를 H까지 전하려면 어느 간선을 지나야 하고, 그 간선에서 무슨 일이 생기는가?

같이 풀기 세션 3

김민준 M01
김민준

이웃이 많으면 양의 곡률이라고 했으니까, 이웃이 제일 많은 D와 E를 잇는 D–E가 제일 양수겠죠.

선생님 T01
선생님

계산해 보기 전에 하나만 확인할게요. 본문은 두 끝점의 이웃이 많다고 했나요, 겹친다고 했나요?

김민준 M06
김민준

겹친다고요… networkx로 세어 볼게요. A–B는 이웃 수 3, 3에 공통 이웃이 C, D 둘이라 4−6+6=44 - 6 + 6 = 4예요. D–E는 이웃 수가 4, 4인데 공통 이웃이 하나도 없어서 4−8+0=−44 - 8 + 0 = -4고요. 이웃이 제일 많은 간선이 제일 음수네요.

이서연 S01
이서연

(나)는 A에서 H로 가는 길이 모두 D–E를 지나. 메시지 전달은 한 층마다 이웃 소식을 벡터 하나에 모으니까, E에 닿을 때는 왼쪽 무리 넷의 소식이 이미 D의 벡터 하나에 눌려 있어.

선생님 T01
선생님

논문의 처방은 음의 곡률 간선 둘레에 간선을 덧붙이는 거였어요. D와 F를 하나 더 이으면 D–E의 값은 어떻게 되죠?

김민준 M07
김민준

D 이웃 수가 5, E는 그대로 4, 공통 이웃 F가 생겨서 4−9+3=−24 - 9 + 3 = -2예요. 덜 음수가 됐어요. 곡률이 음수인 간선이 바로 좁은 통로였네요.

김민준 M01
김민준

조별 과제에서 두 조 사이 연락을 한 사람만 맡으면, 그 사람 단톡방에 양쪽 말이 다 몰려서 중요한 말이 묻히던 거랑 같아요. 연락책을 한 명 더 두니까 풀렸고요.