← 갤러리
역문제

거꾸로 푸는 문제는 왜 어려운가

원인을 알면 결과를 계산하기는 쉽습니다. 결과만 보고 원인을 되찾는 일은 왜 그렇게 어려울까요? 소행성의 궤도⁠(orbit)⁠, CT 스캐너, 흐린 사진, 블랙홀의 첫 사진은 모두 같은 벽에 부딪혔고, 그 벽을 넘은 방법들은 알고 보면 한 가지 생각으로 묶입니다.

이 글의 처럼 점선이 그어진 숫자는 좌우로 끌 수 있고(키보드 ←/→도 됩니다), 색이 칠해진 같은 말은 눌러서 바꿀 수 있습니다. 밑줄 친 말에 마우스를 올리면 그림에서 그 부분이 빛납니다. 그림 속의 점과 막대, 칸에 마우스를 올리면 정확한 값이 나옵니다. 휴대폰에서는 마우스를 올리는 대신 누르면 됩니다.

1971년 10월 1일, 런던 남서쪽 윔블던의 앳킨슨 몰리 병원에서 뇌종양이 의심되는 40대 여성이 낯선 기계에 머리를 넣고 누웠습니다. 기계는 가느다란 X선 빔을 머리에 통과시키고, 빔을 조금 옮기고, 다시 통과시키기를 되풀이했습니다. 한 방향을 다 훑으면 기계 전체를 1°쯤 돌려 같은 일을 했습니다. 자료는 자기 테이프⁠(magnetic tape)⁠에 담겨 EMI 연구소의 컴퓨터로 옮겨졌고, 그렇게 계산한 80×80 화소의 단면 그림에는 이마엽의 낭성 종양(속이 액체로 찬 혹)이 또렷이 보였습니다. 뼈에 가리지 않은 살아 있는 사람의 뇌 단면을, 머리를 열지 않고 본 첫 기록입니다.

측정 하나가 알려 주는 것은 수 하나뿐입니다. 빔이 머리를 지나는 동안 얼마나 약해졌는지입니다. 빔은 조직을 한 칸 지날 때마다 그 칸의 흡수율에 따라 일정한 비율로 약해지므로, 여러 칸을 지나면 그 비율들이 곱해집니다. 예를 들어 빔을 절반으로 줄이는 칸 두 개를 지나면 나온 세기는 들어간 세기의 ½ × ½ = ¼입니다. 로그는 곱을 합으로 바꾸는 계산(log(ab) = log a + log b)이라, 들어간 세기와 나온 세기의 비 4에 로그를 씌우면 log 4 = log 2 + log 2, 곧 칸마다의 몫의 합이 됩니다. 그래서 측정 하나는 '그 직선을 따라 조직의 흡수율을 모두 더한 값' 하나입니다.

측정이 무엇인지 뒤집어 생각해 봅시다. 머릿속 밀도를 안다면 직선마다 합을 구하는 일은 덧셈일 뿐입니다. 어려운 것은 반대 방향입니다. 수만 개의 합만 보고 6,400개의 칸에 무엇이 있었는지 되찾아야 합니다. 1917년 빈의 한 수학자가 이 문제의 답을 이미 식으로 적어 두었지만, 그런 계산이 병원에 닿기까지는 반세기가 걸렸고, 정작 기계를 만든 사람들은 그 식을 알지 못했습니다.

이런 모양의 문제는 곳곳에 있습니다. 궤도를 알면 하늘에서 행성이 어디 보일지 계산할 수 있지만, 천문학자에게 주어지는 것은 하늘의 위치이고 알고 싶은 것은 궤도입니다. 선명한 장면은 손이 떨리면 흐린 사진이 되지만, 흐린 사진을 선명하게 되돌리기는 어렵습니다. 땅속 구조를 알면 지진파가 언제 도착할지 계산할 수 있지만, 지진학자는 도착 시각을 보고 땅속을 그려야 합니다. 자연은 원인에서 결과로 흐르고, 우리는 결과를 보고 원인을 묻습니다. 원인에서 결과를 계산하는 쪽을 정문제⁠(forward problem)⁠, 결과에서 원인을 되찾는 쪽을 역문제⁠(inverse problem)⁠라고 부릅니다.

이 글의 질문은 이것입니다. 거꾸로 푸는 문제는 왜 어려운가, 그리고 그 어려움을 어떻게 넘는가? 답을 미리 말하면, 어려움은 계산이 길어서가 아니라 거꾸로 가는 방향이 작은 오차를 엄청나게 키우기 때문입니다. 넘는 방법은 분야마다 이름이 달랐지만 알고 보면 하나였습니다. 측정하기 전에 이미 알던 것을 식에 더하는 것입니다. 역문제를 다루던 수학자와 지구물리학자는 그것을 정규화라, 통계학자는 릿지 회귀라, 베이즈주의자는 사전확률⁠(prior probability)⁠이라 불렀습니다. 이 글은 이 셋이 같은 식이라는 것을 직접 확인하며 나아갑니다. 정규화, 특잇값⁠(singular value)⁠, 사전확률 같은 말은 모두 처음 나올 때 작은 예로 설명합니다.

1 · 1801년의 역문제여섯 개의 수를 되찾기

이 절의 물음은 이것입니다. 역문제의 어려움은 처음에 어떤 모습으로 나타났고, 미지수가 적을 때는 어떻게 넘었을까? 역문제로 거둔 이른 성공 가운데 가장 유명한 것은 소행성 세레스입니다. 1801년 1월 피아치가 찾은 이 천체는 40일 남짓 관측된 뒤 햇빛 속으로 사라졌고, 스물네 살의 가우스가 그 짧은 기록에서 궤도를 계산해 연말에 다시 찾게 했습니다. 이야기 전체는 「잃어버린 소행성」에 있습니다. 여기서는 그 문제를 정문제와 역문제로 나누어 보겠습니다.

정문제는 이렇습니다. 태양을 도는 천체의 궤도는 수 여섯 개로 정해집니다. 타원⁠(ellipse)⁠의 크기와 찌그러진 정도, 궤도면의 기울기⁠(slope)⁠와 방향, 타원이 궤도면에서 놓인 방향, 그리고 어느 순간 천체가 궤도의 어디에 있었는지입니다. 이 여섯 수를 알면 케플러의 법칙으로 아무 날짜의 위치를 계산할 수 있습니다. 손이 많이 가지만 기계적인 일입니다. 역문제는 거꾸로입니다. 관측 하나는 하늘에서 본 방향, 곧 두 각도만 알려 주고 거리는 알려 주지 않습니다. 그러니 관측 세 번이면 방정식 여섯 개가 생겨 미지수의 개수와 맞습니다. 하지만 방정식은 복잡한 비선형(미지수가 곱해지거나 사인⁠(sine)⁠ 속에 들어가는 등 일차식이 아닌 꼴)이고, 관측한 기간은 41일로, 한 바퀴에 4.6년이 걸리는 궤도의 약 40분의 1에 불과했습니다.

「잃어버린 소행성」 1절의 장난감 예를 빌려 봅시다. 가까운 두 날짜의 관측 두 개로 직선을 정하면, 관측 안에서는 멀쩡하던 직선이 330일째에는 크게 빗나갑니다. 자료의 작은 오차가 답에서 큰 오차가 된 것입니다. 이것이 이 글 전체를 따라다닐 어려움의 첫 모습입니다. 처방은 관측을 두 개만 고르지 말고 모두 쓰는 것입니다. 방정식이 미지수보다 많으면 모두를 정확히 만족하는 답은 대개 없으니, 어긋남의 제곱합이 가장 작은 답을 고릅니다. 최소제곱법⁠(method of least squares)⁠입니다. 가장 작은 예로, 같은 길이를 세 번 재어 10.1, 9.8, 10.3을 얻었다면 미지수 하나에 방정식이 셋입니다. 어긋남의 제곱합 (10.1−a)2+(9.8−a)2+(10.3−a)2(10.1-a)^2 + (9.8-a)^2 + (10.3-a)^2을 가장 작게 하는 aa는 세 값의 평균⁠(mean)⁠ 10.07입니다. 기하⁠(geometry)⁠로 보면 측정값의 목록을, 모형이 만들어 낼 수 있는 예측값들의 공간에 정사영⁠(orthogonal projection)⁠하는 일, 곧 그 공간에서 측정에 가장 가까운 점을 고르는 일입니다. 관측마다의 오차가 서로 상쇄되어 답이 안정됩니다. 가우스는 1809년 책에서 이 방법을 궤도 계산의 원리로 내세웠습니다. 다만 1801년 세레스 계산에서 이 방법이 정확히 얼마나 큰 몫을 했는지는 역사가마다 평가가 다릅니다.

세레스가 풀린 까닭은 미지수가 여섯 개뿐이고 관측이 그보다 훨씬 많았기 때문입니다. 그런데 CT의 미지수는 화소 수만큼, 첫 기계에서도 6,400개였습니다. 흐린 사진이면 수백만 개입니다. 이런 문제에서는 측정을 더 모아도 어려움이 사라지지 않습니다. 왜 그런지 알려면 먼저 '잘 풀리는 문제'가 무엇인지부터 정해야 합니다.

정리하면, 역문제의 첫 어려움은 자료의 작은 오차가 답에서 큰 오차가 된다는 것이고, 미지수가 적을 때는 관측을 많이 모아 최소제곱⁠(least squares)⁠으로 넘을 수 있었습니다.

'가까운 두 관측'의 함정은 1801년보다 훨씬 오래된 계산에도 숨어 있습니다. 263년 위나라의 유휘는 『구장산술』에 붙인 주석의 덧붙임에, 갈 수 없는 바다 섬의 높이와 거리를 재는 문제를 실었습니다. 이 덧붙임은 당나라 때 따로 떨어져 나와 『해도산경』, 곧 '바다 섬 산법'이라는 책이 되었습니다. 첫 문제는 이렇습니다. 높이 5걸음(30척)의 막대 두 개를 섬을 향해 한 줄로 1,000걸음 떨어뜨려 세웁니다. 앞 막대에서 123걸음 물러나 땅에 눈을 대면 막대 끝과 섬 꼭대기가 겹쳐 보이고, 뒤 막대에서는 127걸음 물러나야 겹칩니다. 유휘의 답은 '섬의 높이 = 막대 높이 × 막대 사이 거리 ÷ (물러난 거리의 차) + 막대 높이'이고, 넣으면 5 × 1,000 ÷ 4 + 5 = 1,255걸음입니다. 1리가 300걸음이니 책의 답 '4리 55걸음'과 같습니다. 측정으로 원인을 되찾는 어엿한 역문제입니다. 그런데 나누는 수 4는 거의 같은 두 측정 123과 127의 차입니다. 뒤 막대의 눈금을 한 걸음만 잘못 읽어 126이라 적으면 차가 3이 되어, 높이는 5 × 1,000 ÷ 3 + 5 ≈ 1,672걸음으로 3분의 1이나 커집니다. 두 관측이 거의 같은 말을 할 때 작은 오차가 크게 불어나는 모습, 곧 이 글이 4절에서 '작은 특잇값'이라 부를 어려움이 여기에도 있습니다.

2 · 1902년 파리잘 놓인 문제⁠(well-posed problem)⁠와 거꾸로 흐르는 열

이 절의 물음은 이것입니다. '잘 풀리는 문제'란 정확히 무엇이고, 거꾸로 푸는 문제는 그 가운데 무엇을 어길까?

프랑스의 수학자 자크 아다마르(1865–1963)는 1896년 소수 정리⁠(prime number theorem)⁠를 증명한 두 사람 가운데 하나로 이름이 높았습니다(그 이야기는 「소수를 세는 사람들」에 있습니다). 1902년 그는 미국의 『프린스턴 대학 회보』에 실은 짧은 논문에서, 편미분방정식(열방정식⁠(heat equation)⁠처럼 위치와 시간 등 여러 변수에 대한 변화율이 함께 들어 있는 방정식)의 문제가 물리적으로 뜻이 있으려면 무엇을 갖춰야 하는지 적었습니다. 1923년에는 예일 대학 강연을 묶은 책에서 이 생각을 더 다듬었습니다. 오늘날 '아다마르의 세 조건'이라 부르는 것으로 정리하면 다음과 같습니다. 이 셋을 갖춘 문제를 잘 놓인 문제라고 합니다.

  1. 존재: 해가 있다.
  2. 유일성: 해가 하나뿐이다.
  3. 안정성⁠(stability)⁠: 자료를 조금 바꾸면 해도 조금만 바뀐다. 수학의 말로는 해가 자료에 연속적으로 의존한다.

아다마르는 이 조건을 어기는 문제는 '물리적 의미가 없다'고 보았습니다. 측정은 늘 조금씩 틀리니, 자료가 조금 틀릴 때 답이 크게 달라지는 문제는 현실을 묘사하지 못한다는 뜻이었습니다.

그가 대표적으로 든 예는 라플라스 방정식(「라플라시안, 가장 많이 재사용된 식」의 '제 이웃의 평균인 함수⁠(function)⁠')의 한 초깃값 문제였습니다. 초깃값 문제란 출발선에서 주어진 값으로 나머지를 정하는 문제입니다. 여기서는 경계의 한 부분에서 값과 기울기를 함께 주고 안쪽을 구하는데, 경계의 자료를 아주 조금만 바꿔도 안쪽의 해가 한없이 커질 수 있습니다. 역설적이게도 20세기 과학이 가장 풀고 싶어 한 문제들, 곧 측정에서 원인을 되찾는 문제는 대부분 셋째 조건을 어깁니다.

셋째 조건이 가장 까다롭습니다. 첫째나 둘째가 깨지면 계산이 막히거나 답이 여럿 나와 눈에 띄지만, 셋째가 깨지면 계산은 멀쩡히 답을 내놓는데 그 답이 쓸모없을 수 있기 때문입니다.

셋째 조건이 어떻게 깨지는지 가장 깨끗하게 보여 주는 것은 열입니다. 1822년 푸리에는 막대 속 온도가 열방정식을 따라 퍼진다는 것을 보이고, 온도 분포를 사인파⁠(sinusoid)⁠들의 합으로 나누어 풀었습니다(푸리에 급수⁠(Fourier series)⁠). 요점은 한 줄입니다. 위치 x, 시각 t의 온도를 u라 하고, 단위를 알맞게 골라 열방정식을 ut=uxxu_t = u_{xx}로 씁니다. 왼쪽 utu_t는 온도가 시간에 따라 변하는 빠르기, 오른쪽 uxxu_{xx}는 온도 곡선을 위치로 두 번 미분⁠(differentiation)⁠한 값, 곧 곡선이 얼마나 휘었는지입니다. 주변보다 뜨거운 봉우리는 식고, 주변보다 차가운 골짜기는 데워진다는 뜻입니다.

이 식이 사인 모양의 온도에 무슨 일을 하는지 봅시다. 파수가 kk인(길이 2π2\pi에 kk번 출렁이는) 사인 모양 sin⁡kx\sin kx의 휘어진 정도 uxxu_{xx}를 재면, 어디서나 제자리 값의 −k2-k^2배입니다. 봉우리(값 1)에서는 −k2-k^2이라 식고, 골짜기(값 −1)에서는 +k2+k^2이라 데워집니다. 그래서 온도는 계속 사인 모양을 지키고 높이만 줄어드는데, 줄어드는 빠르기가 늘 지금 높이의 k2k^2배입니다. 높이가 절반이 되면 줄어드는 빠르기도 절반이 됩니다.

이렇게 '지금 크기에 비례하는 빠르기로' 줄어드는 양은, 시간 tt가 지나면 처음의 e−k2te^{-k^2 t}배가 됩니다. 여기서 e≈2.718e \approx 2.718은 이런 비례 증가와 비례 감소에 늘 나타나는 수이고, e−ce^{-c}는 1/ec1/e^{c}이라 c가 클수록 0에 가까워집니다. 예를 들어 t = 2 동안 k = 1인 성분은 e−2≈0.14e^{-2} \approx 0.14배로 줄지만, k = 3인 성분은 e−18≈0.000000015e^{-18} \approx 0.000000015배로 거의 사라집니다. 촘촘히 출렁이는 성분일수록 빨리 사라지고, 그래서 온도는 매끄러워집니다. 거꾸로 과거의 온도를 되찾으려면 각 성분에 e+k2te^{+k^2 t}를 곱해야 합니다. k = 3이면 약 6,600만 배입니다.

앞으로: u^k(t)=e−k2t u^k(0),거꾸로: u^k(0)=e+k2t u^k(t)\text{앞으로: } \hat u_k(t) = e^{-k^2 t}\,\hat u_k(0), \qquad \text{거꾸로: } \hat u_k(0) = e^{+k^2 t}\,\hat u_k(t)

여기서 u^k(t)\hat u_k(t)('유 햇 케이')는 시각 t의 온도 분포에 든 파수 k 성분의 크기입니다. 측정에 섞인 잡음도 모든 파수에 조금씩 들어 있으니, 거꾸로 갈 때 이 배율이 잡음에도 그대로 곱해집니다.

아래 그림은 끝과 끝을 이어 붙인 고리 모양 막대의 온도를 64곳에서 잰 것입니다. 흐린 파란 점선이 처음 온도이고, 시각 t = 에 잰 파란 점들이 측정값입니다. 측정에는 크기 쯤의 잡음이 섞여 있습니다. 이제 되감는 시간 s(지금 )를 늘려 측정에서 과거를 되찾아 보세요(▶ 끝까지 되감기). 주황 선이 계산한 과거이고, 흰검은 점선이 그 시각의 실제 온도입니다.

가로축은 막대 위의 위치(64곳), 세로축은 온도입니다. 그림 밖으로 나가는 값은 위아래 가장자리에 붙여 그렸습니다.

지금 가장 촘촘한 성분은 배로 불어나고, 되찾은 온도와 실제 온도의 차이(제곱 평균의 제곱근, RMS)는 입니다. 이 그림에서 가장 촘촘한 성분은 이웃한 두 곳이 번갈아 오르내리는 톱니 모양입니다. 두 칸에 한 번 출렁이니 파수는 k=2π/2=πk = 2\pi/2 = \pi이고, 그래서 배율은 eπ2se^{\pi^2 s}입니다. s = 1이면 약 19,000배, s = 2이면 약 3.7억 배입니다.

잡음이 0.001이고 t = 2일 때를 보면, s = 0.5까지는 그럴듯합니다(오차 약 0.02). s = 0.75쯤에서 톱니가 돋고, s = 1이면 오차가 온도 자체만큼 커지며(약 1.8), s = 2에 이르면 오차가 1만을 넘습니다. 잡음이 1,000분의 1인데도 그렇습니다. 이제 잡음을 '0(잡음 없음)'으로 바꾸고 다시 되감아 보세요. 주황 선이 흰검은 점선과 눈으로 구별되지 않을 만큼 겹칩니다. 거꾸로 푸는 계산 자체에는 잘못이 없습니다. 이 64곳짜리 문제에서 존재와 유일성은 멀쩡하고, 깨진 것은 셋째 조건, 안정성 하나입니다.

무엇을 보았는지 정리하면 이렇습니다. 앞으로 흐르는 열은 촘촘한 성분을 지수적으로 지우고, 거꾸로 돌리면 같은 배율로 키웁니다. 측정에 섞인 아주 작은 잡음이 그 배율을 그대로 받습니다.

흔히 이런 폭발을 계산의 문제로 여겨 더 정밀한 컴퓨터를 쓰면 된다고 생각합니다. 그렇지 않습니다. 불어나는 것은 계산 과정의 반올림 오차⁠(round-off error)⁠가 아니라 자료에 이미 들어 있던 오차이고, 배율 ek2se^{k^2 s}는 계산법이 아니라 문제 자체의 성질입니다. 정확한 산수로 계산해도 결과는 같습니다.

64곳이 아니라 연속적인 막대 전체를 다루면 사정이 더 나쁩니다. 열이 조금이라도 퍼진 온도 분포에서는 파수 k 성분이 e−k2te^{-k^2 t}배로 줄어 있으니, 촘촘한 성분일수록 거의 남아 있지 않습니다. 그래서 그런 분포는 아무리 확대해도 꺾이거나 떨리는 곳이 없이 매끄럽습니다(수학의 말로는 몇 번을 미분해도 매끄럽습니다). 잡음이 섞인 측정값은 대개 그렇지 않아서, 어떤 처음 상태에서도 나올 수 없는 모양이 됩니다. 그런 자료로는 거꾸로 푼 해가 아예 존재하지 않으니, 첫째 조건까지 깨지는 셈입니다.

정리하면, 거꾸로 푸는 문제의 어려움은 계산 방법이 아니라 문제 자체에 있고, 그 정체는 셋째 조건, 안정성의 실패입니다.

3 · 흐린 사진흐림은 행렬⁠(matrix)⁠이고, 흐림은 열이다

이 절의 물음은 이것입니다. 흐린 사진을 되돌리는 일은 왜 과거의 온도를 되찾는 일만큼 어려울까?

초점이 맞지 않은 사진을 생각해 봅시다. 흐린 사진의 화소 하나는 원래 장면에서 그 자리 둘레의 밝기를 가중 평균한 값입니다. 가중 평균은 값마다 무게를 곱해 더한 것으로, 무게의 합이 1입니다. 가운데가 가장 무겁고 멀어질수록 가볍습니다.

가장 작은 예부터 봅시다. 화소가 두 개뿐인 사진에서 흐린 화소 하나가 '자기 밝기 × 0.55 + 이웃 밝기 × 0.45'라고 합시다. 원래 밝기가 x1=1x_1 = 1, x2=0x_2 = 0이면 흐린 사진은 y1=0.55y_1 = 0.55, y2=0.45y_2 = 0.45입니다. 뚜렷하던 차이 1이 0.1로 줄었습니다.

거꾸로 푸는 길은 합과 차이로 나누어 보면 쉽습니다. 두 흐린 화소를 더하면 y1+y2=x1+x2y_1 + y_2 = x_1 + x_2로 합은 그대로이고, 빼면 y1−y2=0.55x1+0.45x2−0.45x1−0.55x2=0.1(x1−x2)y_1 - y_2 = 0.55x_1 + 0.45x_2 - 0.45x_1 - 0.55x_2 = 0.1(x_1 - x_2)로 차이는 10분의 1이 됩니다. 그러니 원래의 합은 y1+y2y_1 + y_2, 원래의 차이는 10(y1−y2)10(y_1 - y_2)이고, 둘을 더해 반으로 나누면 x1=5.5 y1−4.5 y2x_1 = 5.5\,y_1 - 4.5\,y_2, 빼서 반으로 나누면 x2=−4.5 y1+5.5 y2x_2 = -4.5\,y_1 + 5.5\,y_2입니다. 잡음이 없으면 5.5×0.55−4.5×0.45=3.025−2.025=15.5 \times 0.55 - 4.5 \times 0.45 = 3.025 - 2.025 = 1로 정확히 1이, 같은 식으로 x2x_2는 0이 돌아옵니다.

이제 측정에 잡음이 조금 섞여 y1=0.56y_1 = 0.56, y2=0.44y_2 = 0.44가 되었다고 합시다. 각각 0.01만 틀렸는데, 되돌린 답은 x1=5.5×0.56−4.5×0.44=1.10x_1 = 5.5 \times 0.56 - 4.5 \times 0.44 = 1.10, x2=−0.10x_2 = -0.10으로 각각 0.1씩 틀립니다. 오차가 10배로 커졌습니다. 흐림이 두 화소의 차이를 10분의 1로 줄였으니, 되돌릴 때는 차이에 섞인 잡음까지 10배로 키우는 것입니다. 반면 두 화소에 같은 방향의 잡음(둘 다 +0.01)이 섞이면 답도 0.01씩만 틀립니다. 흐림은 두 화소의 합은 그대로 두기 때문입니다.

화소가 많아도 원리는 같습니다. 모든 화소에 대해 적으면 연립일차방정식⁠(system of linear equations)⁠이 됩니다.

yi=∑jKij xj+ei,y⃗=Kx⃗+e⃗y_i = \sum_j K_{ij}\, x_j + e_i, \qquad \vec y = K\vec x + \vec e

식을 말로 읽으면 'i번째 흐린 화소는 모든 원래 화소 j에 무게 KijK_{ij}를 곱해 더한 것에 잡음을 더한 값'입니다. ∑j\sum_j('시그마 제이')는 j를 모두 바꿔 가며 더하라는 기호입니다. 두 화소 예라면 y1=0.55x1+0.45x2y_1 = 0.55x_1 + 0.45x_2, 곧 K11=0.55K_{11} = 0.55, K12=0.45K_{12} = 0.45입니다. 오른쪽의 짧은 꼴에서 x⃗\vec x는 알고 싶은 원래 장면(화소 값들의 목록), y⃗\vec y는 측정한 흐린 사진, KK는 무게 KijK_{ij}를 가로세로로 늘어놓은 표, 곧 흐림을 나타내는 행렬, e⃗\vec e는 측정 잡음입니다.

아래 그림은 1차원으로 줄인 예입니다. 64칸짜리 줄무늬 신호를 폭 w=w = 칸의 종 모양(가우스 함수) 무게로 흐리게 하고, 크기 의 잡음을 더했습니다. 폭은 표준편차⁠(standard deviation)⁠로 잽니다. 표준편차는 값이 가운데에서 전형적으로 얼마나 떨어져 퍼지는지를 재는 수로, 종 모양 무게의 대부분(약 95%)이 가운데에서 표준편차의 두 배 안에 들어 있습니다.

칸은 64개, 방정식도 64개이고, 이 흐림 행렬은 역행렬⁠(inverse matrix)⁠이 있습니다. 역행렬 K−1K^{-1}은 K가 한 일을 되돌리는 행렬로, 위의 두 화소 예에서 5.5와 −4.5로 된 표가 그것입니다. 그러니 연립방정식을 소거법⁠(elimination)⁠으로 풀든 역행렬을 곱하든 x⃗=K−1y⃗\vec x = K^{-1}\vec y를 구할 수 있습니다. 구해 봅시다.

흐린 파란 점선이 원래 신호, 파란 점이 흐려진 측정, 주황 선이 역행렬로 그대로 되돌린 답입니다. 그림 밖으로 나가는 값은 가장자리에 붙였습니다.

흐려진 측정은 원래 신호와 RMS 만큼 다르고, 역행렬로 되돌린 답은 만큼 다릅니다. 되돌렸더니 오히려 수만 배 나빠졌습니다. 잡음을 '0'으로 바꾸면 주황 선이 원래 신호와 겹치고, '1억분의 1'로 바꾸면 벌써 톱니가 보입니다. 이번에는 잡음을 0에 둔 채 폭을 3까지 늘려 보세요. 폭 2.5까지는 버티던 답이 3에서는 잡음이 없는데도 망가집니다. 컴퓨터는 수를 유효숫자 16자리쯤까지만 적으므로, 모든 수에 제 크기의 10⁻¹⁶배(1경분의 1) 정도의 반올림 오차가 섞입니다. 폭 3에서는 그것만으로도 답이 망가집니다. 다른 잡음 뽑기

사실 이 그림은 앞 절의 그림과 같습니다. 가우스 함수 모양으로 흐리게 하는 일은 열이 퍼지는 일과 정확히 같습니다. 한 점에 모인 열은 시간 t가 지나면 폭(표준편차)이 2t\sqrt{2t}인 종 모양으로 퍼지기 때문입니다. 주파수로 말하면 두 과정 모두 파수 kk인 성분에 같은 수 e−k2w2/2=e−k2te^{-k^2 w^2/2} = e^{-k^2 t}를 곱합니다(t=w2/2t = w^2/2). 그래서 폭 2의 흐림은 t = 2 동안의 열 확산이고, 흐린 사진을 되돌리는 일은 열방정식을 거꾸로 돌리는 일입니다. 앞 절 그림에서 지금 고른 t에 맞는 흐림의 폭은 입니다. 사진 편집 프로그램의 '흐리게' 필터⁠(filter)⁠와 1822년의 열방정식이 같은 수학이라는 것, 그래서 선명하게 되돌리기가 과거의 온도를 되찾기만큼 어렵다는 것이 이 글의 첫 번째 연결입니다.

하나 짚어 둘 오해가 있습니다. 역행렬이 있으니 풀 수 있다는 생각입니다. 흔히 역행렬이 있는지를 행렬식⁠(determinant)⁠으로 판정합니다. 행렬식은 정사각형 행렬에서 계산하는 수 하나로, 0이 아니면 역행렬이 있고 0이면 없습니다. 2×2 행렬이면 '왼쪽 위 × 오른쪽 아래 − 오른쪽 위 × 왼쪽 아래'이고, 두 화소 예라면 0.55×0.55−0.45×0.45=0.10.55 \times 0.55 - 0.45 \times 0.45 = 0.1입니다.

그러면 행렬식이 작을수록 불안정할까요? 그렇지 않습니다. 두 화소의 흐림 행렬 전체에 2를 곱하면 행렬식은 1.1×1.1−0.9×0.9=0.41.1 \times 1.1 - 0.9 \times 0.9 = 0.4로 네 배가 되지만, 합은 2배, 차이는 0.2배가 되어 둘의 비는 여전히 10배입니다. 차이에 섞인 잡음이 합에 비해 10배로 부푼다는 사정은 그대로입니다. 64×64 행렬에 2를 곱하면 행렬식은 2⁶⁴배가 되지만 불안정한 정도는 역시 그대로입니다. 행렬식은 역행렬이 있는지만 알려 줄 뿐, 문제가 얼마나 불안정한지는 알려 주지 않습니다. 불안정성을 재는 올바른 수는 다음 절에 나옵니다.

정리하면, 흐림은 이웃한 화소 사이의 차이, 곧 높은 주파수를 줄이는 행렬이고, 그 행렬을 거꾸로 적용하면 차이에 섞인 잡음이 같은 비율로 부풀어 오릅니다.

4 · 무엇이 죽는가특잇값의 계단

이 절의 물음은 이것입니다. 되돌릴 때 어떤 성분이 얼마나 부풀까? 그것을 한눈에 재는 수가 있을까? 3절의 두 화소 예에서 이미 답의 모양이 보였습니다. 합의 방향은 1배로 그대로였고, 차이의 방향은 0.1배로 줄었습니다. 이 '방향마다의 배율'을 모든 행렬에 대해 찾는 것이 이 절의 도구입니다.

어떤 행렬이든 세 단계로 나눌 수 있습니다. 한 번 돌리고(뒤집기가 섞일 수도 있습니다), 서로 수직인 축 방향으로 각각 다른 배율 σ1≥σ2≥⋯≥0\sigma_1 \ge \sigma_2 \ge \cdots \ge 0만큼 늘이거나 줄이고, 다시 한 번 돌립니다. 이것이 특잇값 분해⁠(singular value decomposition)⁠ K=UΣVTK = U\Sigma V^{\mathsf T}이고, 배율 σi\sigma_i('시그마 아이')가 특잇값입니다. 식은 오른쪽부터 읽습니다. VTV^{\mathsf T}('브이 전치')가 첫 번째 회전⁠(rotation)⁠, 가운데 대문자 Σ\Sigma가 축마다 늘이고 줄이는 단계, UU가 두 번째 회전입니다. 여기의 대문자 Σ\Sigma는 배율들을 대각선에 늘어놓은 행렬의 이름일 뿐, 3절의 '모두 더하라'는 기호와는 다릅니다.

두 화소 예로 확인해 봅시다. 합의 방향은 두 화소가 똑같이 밝은 모양 (1, 1)이고, 차이의 방향은 한쪽이 밝고 한쪽이 어두운 모양 (1, −1)입니다. 흐림에 넣으면 (1, 1)은 (0.55 + 0.45, 0.45 + 0.55) = (1, 1)로 그대로 나오고, (1, −1)은 (0.55 − 0.45, 0.45 − 0.55) = (0.1, −0.1)로 방향은 그대로에 크기만 10분의 1이 되어 나옵니다. 두 방향은 서로 수직이고, 배율은 1과 0.1입니다. 이 두 수가 두 화소 흐림의 특잇값입니다. 역행렬은 이 과정을 거꾸로 해서, 각 축 방향을 1/σi1/\sigma_i배 합니다. 합의 방향은 1배, 차이의 방향은 10배입니다.

측정에 잡음이 섞여 있으면 이렇게 됩니다.

K−1y⃗  =  x⃗  +  ∑iu⃗i⋅e⃗σi v⃗iK^{-1}\vec y \;=\; \vec x \;+\; \sum_i \frac{\vec u_i \cdot \vec e}{\sigma_i}\,\vec v_i

식을 말로 읽으면 '되돌린 답 = 참값 + 방향마다 (그 방향으로 잰 잡음 ÷ 그 방향의 특잇값)'입니다. v⃗i\vec v_i는 답 쪽의 i번째 방향, u⃗i\vec u_i는 측정 쪽의 i번째 방향이고, 둘 다 길이가 1입니다. u⃗i⋅e⃗\vec u_i \cdot \vec e('유 아이 점 이')는 두 목록을 성분끼리 곱해 더한 값(내적⁠, dot product⁠)인데, 길이 1인 방향과 내적하면 '잡음 e⃗\vec e를 그 방향으로 잰 크기'가 됩니다.

두 화소 예로 한 줄씩 따라가 봅시다. 차이의 방향을 길이 1로 줄이면 u⃗2=v⃗2≈(0.707,−0.707)\vec u_2 = \vec v_2 \approx (0.707, -0.707)입니다. 잡음 (+0.01, −0.01)을 이 방향으로 재면 0.01×0.707+(−0.01)×(−0.707)≈0.01410.01 \times 0.707 + (-0.01) \times (-0.707) \approx 0.0141이고, 합의 방향 (0.707, 0.707)으로 재면 0입니다. 잡음이 모두 차이의 방향에 있는 것입니다. 이 0.0141을 σ2=0.1\sigma_2 = 0.1로 나누면 0.141이고, 그만큼 방향 v⃗2\vec v_2로 가면 0.141×(0.707,−0.707)≈(0.10,−0.10)0.141 \times (0.707, -0.707) \approx (0.10, -0.10)입니다. 3절에서 직접 계산한 답 (1.10, −0.10)이 바로 참값 (1, 0)에 이것을 더한 것입니다.

실제 잡음은 이렇게 한 방향에 몰려 있지 않습니다. 칸마다 따로 제멋대로 생기고(독립⁠(independence)⁠이고) 크기가 고른 잡음 e⃗\vec e는 특별히 치우친 방향이 없어서, 어느 방향 u⃗i\vec u_i로 재어도 크기가 비슷합니다. 그 잡음이 σi\sigma_i로 나뉩니다. σi\sigma_i가 10⁻⁹이면 잡음은 10억 배가 됩니다. 흐림이 거의 지워 버린 방향일수록, 되돌릴 때 잡음을 더 크게 키웁니다.

고리 모양으로 이은 흐림에서는 이 방향들이 무엇인지 정확히 알 수 있습니다. 바로 푸리에의 사인파와 코사인파입니다. 신호를 한 칸 밀고 흐리게 하든, 흐리게 하고 한 칸 밀든 결과가 같기 때문에, 사인파는 흐림을 지나도 모양이 그대로이고 크기만 줄어듭니다. 두 화소 예의 (1, 1)과 (1, −1)이 흐림을 지나도 방향이 그대로였던 것과 같습니다.

행렬을 곱해도 방향이 바뀌지 않고 크기만 몇 배가 되는 벡터⁠(vector)⁠를 그 행렬의 고유벡터⁠(eigenvector)⁠라 하고, 그 배수⁠(multiple)⁠를 고유값⁠(eigenvalue)⁠이라 합니다. 그러니 사인파들이 흐림 행렬의 고유벡터입니다. 고유값과 특잇값은 일반적으로는 다른 수지만, 여기서는 같습니다. 흐림 행렬은 대칭이고(i가 j에게 주는 무게와 j가 i에게 주는 무게가 같고), 고유값이 모두 양수라서, 특잇값 분해의 두 회전이 같은 축(고유벡터들)을 쓰게 되고 그 축 방향으로 늘이고 줄이는 일만 남기 때문입니다. 주파수 m(64칸에 m번 출렁이는 파동)마다 사인과 코사인⁠(sine and cosine)⁠ 두 방향이 같은 특잇값을 나누어 가지며, 그 값은 앞 절의 열방정식과 같은 꼴입니다.

σm=e−km2w2/2,km=2πm64\sigma_m = e^{-k_m^2 w^2/2}, \qquad k_m = \frac{2\pi m}{64}

숫자로 넣어 봅시다. 폭 w = 2에서 주파수 10은 k10=2π×10/64≈0.98k_{10} = 2\pi \times 10/64 \approx 0.98이라 σ10=e−0.982×2≈e−1.93≈0.15\sigma_{10} = e^{-0.98^2 \times 2} \approx e^{-1.93} \approx 0.15입니다. 가장 촘촘한 주파수 32(톱니)는 k32=πk_{32} = \pi라 σ32=e−2π2≈0.0000000027\sigma_{32} = e^{-2\pi^2} \approx 0.0000000027입니다. 흐림은 느린 물결은 거의 남기고, 촘촘한 물결은 사실상 지웁니다.

아래 왼쪽 그림에서 막대는 주파수마다의 특잇값을 로그 눈금으로 그린 것입니다. 로그 눈금에서는 눈금 한 칸이 10배를 뜻해서, 1, 0.1, 0.01, …이 같은 간격으로 놓입니다. 10⁻¹⁵처럼 아주 작은 값까지 한 그림에 담으려고 이렇게 그립니다. 1에서 아래로 내려오는 막대가 길수록 흐림이 그 주파수를 심하게 지운 것입니다. 흰검은 점은 잡음이 없을 때 측정에 남은 각 주파수의 크기이고, 분홍 점은 잡음이 섞인 실제 측정의 크기입니다. 분홍 점선이 잡음의 높이입니다.

주파수마다의 특잇값과 측정 (로그 눈금)
자른 곳까지만 되돌린 신호
막대에 마우스를 올리면 그 주파수의 특잇값, 측정값, 되돌릴 때의 배율이 나옵니다. 노란 점을 좌우로 끌어 몇 번째 주파수까지 믿을지 정하면, 오른쪽에 그 주파수까지만 되돌린 신호(청록)가 나옵니다.

먼저 점들이 어떻게 내려가는지 보세요. 흰검은 점은 막대 끝을 따라 오른쪽 끝까지 계속 내려가지만, 분홍 점은 잡음 높이에 닿으면 더 내려가지 않고 그 높이 둘레에서 들쭉날쭉합니다. 지금 설정(폭 2, 잡음 0.001)에서는 주파수 15 근처부터입니다. 그 주파수부터는 측정에 신호가 거의 남아 있지 않고 잡음만 있다는 뜻입니다.

되돌린다는 것은 주파수마다 '측정의 그 성분 u⃗i⋅y⃗\vec u_i\cdot\vec y ÷ 그 특잇값 σi\sigma_i'를 계산하는 일입니다. 로그 눈금에서는 나눗셈이 뺄셈이 되므로(log(a/b) = log a − log b), 이 몫은 그림에서 점과 막대 끝 사이의 높이 차로 보입니다. 흰검은 점은 막대 끝과 함께 내려가니 몫이 불어나지 않습니다. 흰검은 점은 원래 신호의 성분에 특잇값을 곱한 것이라, 몫은 원래 신호의 그 주파수 성분 그대로입니다. 분홍 점은 잡음 높이에 멈춘 채 막대 끝만 계속 내려가니, 몫이 주파수마다 불어납니다. 주파수 32에서는 분홍 점이 잡음 높이 언저리(처음 설정에서는 약 0.00014)에 있고 특잇값은 0.0000000027쯤이라, 몫이 수만에 이릅니다(막대에 마우스를 올리면 배율 1/σ가 나옵니다). 이렇게 부푼 성분들이 앞 절의 톱니였습니다.

이런 그림을 흔히 '피카르 그림⁠(Picard plot)⁠'이라 부릅니다. 이름은 프랑스 수학자 에밀 피카르의 이름이 붙은 '피카르 조건'에서 왔습니다. 칸이 64개가 아니라 연속적인 신호를 다루면 주파수가 끝없이 많은데, 그때 되돌린 답이 존재하려면 위의 몫들을 제곱해 모두 더한 값이 유한해야 합니다.

∑i(u⃗i⋅y⃗σi)2<∞\sum_i \left(\frac{\vec u_i\cdot\vec y}{\sigma_i}\right)^2 \lt \infty

식을 말로 읽으면 '(측정의 i번째 성분 ÷ i번째 특잇값)의 제곱을 모든 i에 대해 더하면 무한대가 아니다'입니다. 이 합은 되돌린 답의 성분들을 제곱해 더한 값이니, 조건은 '되돌린 답이 무한히 크지 않다'는 말과 같습니다. 그러려면 측정의 성분이 특잇값보다 충분히 빨리 줄어야 합니다. 잡음은 모든 주파수에 비슷한 크기로 들어 있어서 특잇값처럼 줄지 않으니, 잡음 섞인 측정은 대개 이 조건을 어기고, 연속 문제에서는 거꾸로 푼 해가 아예 없게 됩니다. 2절 끝에서 말한 첫째 조건의 실패가 이것입니다. 64칸짜리 문제에서는 합이 늘 유한하니, 대신 그림에서 '몫이 주파수를 따라 줄어드는가, 불어나는가'를 봅니다. 흰검은 점은 조건을 지키고, 분홍 점은 잡음 높이에 닿는 곳부터 조건을 어깁니다.

그러면 믿을 수 있는 주파수까지만 되돌리고 나머지는 버리면 됩니다. 지금은 주파수 까지 되돌리고(그 주파수의 특잇값은 ), 오차는 입니다. 노란 점을 끝까지 오른쪽으로 끌면 모든 주파수를 되돌리는 셈이라 앞 절의 폭발이 돌아옵니다. 너무 왼쪽이면 신호가 뭉툭합니다. 가장 좋은 자리는 대개 분홍 점이 잡음 높이에 닿는 근처입니다. 지금 설정에서는 주파수 17까지 되돌릴 때 오차가 가장 작습니다(약 0.18). 이 방법을 잘라 낸 특잇값 분해라고 부릅니다.

흔히 '측정에 없는 정보는 계산을 잘하면 되살릴 수 있다'고 생각하지만, 피카르 그림은 그 반대를 보여 줍니다. 잡음 높이 아래로 내려간 주파수는 측정에 남아 있지 않으니, 버리는 것이 되살리려는 것보다 낫습니다.

불안정한 정도를 재는 수는 가장 큰 특잇값과 가장 작은 특잇값의 비, 조건수⁠(condition number)⁠ κ=σmax⁡/σmin⁡\kappa = \sigma_{\max}/\sigma_{\min}입니다. 상대 오차⁠(relative error)⁠는 오차를 값 자체의 크기로 나눈 비율입니다(10에서 0.1 틀리면 1%). 연립방정식 Kx⃗=y⃗K\vec x = \vec y에서 측정의 상대 오차는 답에서 최대 κ('카파')배까지 커질 수 있습니다. 두 화소 예라면 κ = 1 ÷ 0.1 = 10이고, 실제로 잡음이 10배로 커지는 경우가 있었습니다. 지금 가장 작은 특잇값은 , 조건수는 입니다. 폭 3에서 조건수는 10¹⁹을 넘어서, 컴퓨터의 반올림 오차 10⁻¹⁶조차 1,000이 넘는 크기로 불어납니다.

세레스 글의 두 점 직선도 같은 이야기입니다. 날짜가 가까우면 두 관측의 방정식이 거의 같은 말을 합니다. 두 화소 예에서 두 흐린 화소가 거의 같은 값이었던 것처럼요. 그래서 가까운 두 날짜로 기울기와 절편을 정하는 2×2 행렬은 특잇값 하나가 아주 작고, 그 방향, 곧 두 관측 사이를 축으로 직선을 돌리는 방향(기울기)이 잡음에 휘둘렸던 것입니다.

정리하면, 행렬은 방향마다 배율(특잇값)이 있고, 되돌릴 때 잡음은 그 배율의 역수⁠(inverse)⁠만큼 커집니다. 가장 작은 특잇값이 불안정성을 정하고, 가장 큰 것과의 비인 조건수가 그 정도를 잽니다.

'조건수'라는 이름을 처음 쓴 사람은 앨런 튜링입니다. 전쟁이 끝난 뒤 영국 국립물리연구소에서 전자식 컴퓨터를 설계하던 무렵, 그는 기계가 곱셈과 뺄셈을 수천 번 거듭할 때 반올림 오차가 얼마나 쌓이는지를 따진 논문 「행렬 계산의 반올림 오차」(1948)에서 이 수를 정의했습니다. 한 해 앞서 폰 노이만과 골드스타인도 큰 연립방정식을 소거법으로 풀 때의 오차를 분석했습니다. 사람이 손으로 미지수 몇 개를 풀던 시절에는 드러나지 않던 물음이, 기계가 미지수 수백 개를 다루게 되자 급해진 것입니다. 튜링이 계산 가능성⁠(computability)⁠의 한계를 그은 이야기는 「기계가 풀 수 없는 문제」에 있습니다.

특잇값 분해도 먼 길을 걸어왔습니다. 1873년 이탈리아의 에우제니오 벨트라미(쌍곡기하⁠(hyperbolic geometry)⁠의 모형으로도 이름난 그 벨트라미, 「평행선의 반란」)와 1874년 프랑스의 카미유 조르당이 서로 따로 행렬을 두 번의 회전과 한 번의 늘이기로 나누는 법을 찾았습니다. 1907년 독일의 에르하르트 슈미트는 이것을 미지수가 함수인 적분방정식으로 넓혔고, 1936년 칼 에카르트와 게일 영은 심리 측정학 학술지 『사이코메트리카』에 실은 논문에서, 행렬을 더 단순한(계수가 낮은) 행렬로 가장 가깝게 근사하려면 특잇값 분해에서 작은 특잇값들을 잘라 내면 된다는 것을 보였습니다. 앞에서 본 '잘라 낸 특잇값 분해'가 바로 그것입니다. 컴퓨터로 이것을 안정하게 계산하는 방법은 1965년 진 골럽과 윌리엄 카한이 내놓았습니다.

5 · 1943년 모스크바티호노프의 벌점

이 절의 물음은 이것입니다. 측정을 아무리 잘해도 불안정성이 남는다면, 무엇으로 안정성을 되찾을 수 있을까?

러시아의 수학자 안드레이 티호노프는 1943년 짧은 논문 「역문제의 안정성에 관하여」에서 이 어려움의 뿌리를 짚었습니다. 그는 원래 위상수학⁠(topology)⁠을 연구했습니다. 위상수학은 도형을 찢지 않고 늘이거나 구부려도 변하지 않는 성질, 그리고 '가까움'과 '연속'의 뜻을 다루는 분야이고, 논문의 핵심도 위상수학의 정리였습니다. 연속이고 일대일인 사상을 콤팩트한 집합⁠(set)⁠ 위로 제한하면, 그 역사상도 연속이 된다는 것입니다.

낱말을 하나씩 풀어 봅시다. 사상은 원인을 넣으면 결과가 나오는 규칙, 여기서는 정문제입니다. 일대일은 서로 다른 원인이 늘 서로 다른 결과를 낸다는 뜻이고, 역사상은 결과에서 원인으로 거꾸로 가는 규칙, 곧 역문제입니다. 역사상이 연속이라는 것은 결과가 조금 바뀌면 되찾은 원인도 조금만 바뀐다는 뜻, 곧 아다마르의 셋째 조건입니다. 콤팩트한 집합이란, 그 안에서 원소⁠(element)⁠를 끝없이 하나씩 골라 수열을 만들면 어떻게 고르든 그 가운데 일부를 추려 집합 안의 한 원소로 다가가게 할 수 있는 집합입니다. 함수들의 집합에서는, 예컨대 값의 크기와 기울기가 모두 정해진 한계를 넘지 않는 함수들이 그렇습니다. 한없이 크게 출렁이는 함수를 미리 빼 두는 것입니다.

3절의 예에 대어 보면 뜻이 분명해집니다. 역행렬이 내놓은 톱니 답은 이웃한 칸 사이에서 값이 수만씩 뜁니다. '원래 신호의 값은 몇 이하이고, 이웃 칸 사이에서 몇 이상 뛰지 않는다'는 약속을 미리 해 두면, 그런 답은 후보에서 빠집니다. 잡음을 조금 바꿨을 때 답이 크게 달라지려면 그런 크게 출렁이는 모양으로 옮겨 가야 하는데, 그 길이 막히는 것입니다.

정리하면, 해가 그런 집합 안에 있다는 것을 미리 알면 셋째 조건이 되살아납니다. 안정성은 더 좋은 측정이 아니라 측정 밖의 앎에서 돌아옵니다.

이 생각을 계산할 수 있는 방법으로 만든 것이 1963년의 정규화입니다. 측정에 맞추는 것만 요구하지 말고, 답이 지나치게 커지는 것에 벌점을 매기는 것입니다. 아래 식의 양수 λ('람다')가 벌점의 세기입니다. ∥Kx⃗−y⃗∥2\lVert K\vec x - \vec y\rVert^2은 답 x로 계산한 측정과 실제 측정의 차이를 칸마다 제곱해 더한 값이고, ∥x⃗∥2\lVert\vec x\rVert^2은 답의 성분들을 제곱해 더한 값, 곧 답의 크기입니다. arg min은 그 합을 가장 작게 만드는 x를 고른다는 뜻입니다.

x⃗λ=arg⁡min⁡x⃗  ∥Kx⃗−y⃗∥2+λ∥x⃗∥2  =  ∑iσi2σi2+λ⋅u⃗i⋅y⃗σi v⃗i\vec x_\lambda = \arg\min_{\vec x}\; \lVert K\vec x - \vec y\rVert^2 + \lambda \lVert \vec x\rVert^2 \;=\; \sum_i \frac{\sigma_i^2}{\sigma_i^2 + \lambda}\cdot\frac{\vec u_i\cdot\vec y}{\sigma_i}\,\vec v_i

오른쪽 식이 무슨 일이 일어나는지 보여 줍니다. 앞 절의 순진한 답에 성분마다 σi2/(σi2+λ)\sigma_i^2/(\sigma_i^2+\lambda)가 곱해졌습니다. 특잇값이 큰 방향(σi2≫λ\sigma_i^2 \gg \lambda, '시그마 제곱이 람다보다 훨씬 크다')에서는 분모가 분자와 거의 같아 이 값이 거의 1이라 측정을 그대로 믿고, 특잇값이 작은 방향(σi2≪λ\sigma_i^2 \ll \lambda, '훨씬 작다')에서는 분모가 분자보다 훨씬 커서 거의 0이라 그 성분을 조용히 버립니다. 앞 절의 '자르기'를 부드럽게 한 것입니다.

두 화소 예로 계산해 봅시다. λ = 0.01이면 특잇값 1인 합의 방향에서는 1 ÷ 1.01 ≈ 0.99라 거의 그대로 믿고, 특잇값 0.1인 차이의 방향에서는 0.01 ÷ (0.01 + 0.01) = 0.5라 절반만 믿습니다. 그래서 차이의 방향의 잡음은 10배가 아니라 10 × 0.5 = 5배로만 커집니다. λ = 0.1이면 0.01 ÷ 0.11 ≈ 0.09이니 약 0.9배, 곧 잡음이 더는 커지지 않습니다. 그 대신 참값의 차이도 그만큼 덜 되살아납니다.

곱하는 수 σ²/(σ² + λ)는 어디서 오나회전은 길이를 바꾸지 않으므로, 특잇값 분해의 축으로 재면 두 제곱합이 방향마다 따로 나뉩니다. 그래서 방향 하나만 떼어 보면 문제는 수 하나짜리가 됩니다. 그 방향에서 답의 성분을 c, 측정의 성분을 d라 하면 가장 작게 할 양은 (σc−d)2+λc2(\sigma c - d)^2 + \lambda c^2입니다. 전개하면 (σ2+λ)c2−2σd c+d2(\sigma^2 + \lambda)c^2 - 2\sigma d\,c + d^2, 곧 c에 대한 이차식이고 그래프는 위로 열린 포물선입니다. 포물선⁠(parabola)⁠ ac2−2bc+(상수)ac^2 - 2bc + (\text{상수})의 가장 낮은 점은 c=b/ac = b/a에 있으니(a(c−b/a)2+(상수)a(c - b/a)^2 + (\text{상수})로 고쳐 쓰면 보입니다), 답은 c=σdσ2+λ=σ2σ2+λ⋅dσc = \frac{\sigma d}{\sigma^2 + \lambda} = \frac{\sigma^2}{\sigma^2 + \lambda}\cdot\frac{d}{\sigma}입니다. 미분을 안다면 c로 미분해 0으로 놓은 2σ(σc−d)+2λc=02\sigma(\sigma c - d) + 2\lambda c = 0을 풀어도 같습니다. 뒤의 d/σd/\sigma가 순진하게 되돌린 값이고, 앞의 분수가 곱해지는 수입니다.

λ = 10 = 일 때 오차는 입니다. λ = 0.1에서 시작해 점점 줄여 보세요. 처음에는 답이 뭉개져 있다가 점점 또렷해지고, 어느 지점을 지나면 톱니가 돋기 시작합니다. 오른쪽 그림은 λ마다의 오차를 그린 것입니다. 가장 좋은 λ로

정규화한 답
λ에 따른 오차 (두 축 모두 로그 눈금)
왼쪽의 청록 선이 정규화한 답, 흐린 파란 점선이 원래 신호입니다. 오른쪽의 노란 점을 끌어 λ를 바꿀 수 있고, 흰검은 고리가 오차가 가장 작은 곳입니다. 잡음과 흐림의 폭은 3절의 설정을 그대로 씁니다.

오차 곡선은 골짜기 모양입니다. λ가 크면 벌점이 측정을 눌러서 답이 뭉개지고, λ가 작으면 벌점이 약해 잡음이 되살아납니다. 지금 설정에서 가장 좋은 λ는 약 , 그때의 오차는 입니다. 물론 실제로는 원래 신호를 모르니 이 곡선을 그릴 수 없습니다. 그래서 λ를 고르는 방법이 따로 발전했습니다. 측정과의 어긋남이 잡음의 크기쯤이 되도록 고르는 모로조프의 불일치 원리(1966), 자료 일부를 가리고 맞혀 보는 교차 검증(골럽, 히스, 와바의 일반화된 교차 검증⁠(cross-validation)⁠, 1979) 등입니다.

정직하게 말해 둘 것이 있습니다. 가장 좋은 λ에서도 모서리는 둥글고 그 둘레가 출렁입니다. 흐림이 잡음 아래로 밀어 넣은 높은 주파수는 측정에 남아 있지 않으니, 정규화가 되살려 줄 수도 없습니다. 정규화가 하는 일은 없는 정보를 만들어 내는 것이 아니라, 잡음을 신호로 착각해 지어내는 것을 막는 것입니다. 모서리를 되살리려면 '답은 작다'보다 나은 믿음이 필요합니다. 그 이야기는 8절에서 합니다.

같은 식이 통계학⁠(statistics)⁠에서는 전혀 다른 이름으로 태어났습니다. 회귀는 결과(예컨대 수확량)를 여러 요인(비료의 양, 햇빛, …)에 각각 수를 곱해 더한 식으로 설명하는 방법입니다. 요인을 설명 변수, 곱하는 수를 계수라 부르고, 계수는 최소제곱으로 정합니다. 1970년 미국 화학 회사 듀폰의 통계학자 아서 호얼과 로버트 케너드는 설명 변수들이 서로 거의 겹칠 때 계수가 터무니없이 커지는 문제를 다루며, 계수의 제곱합에 벌점을 주는 릿지 회귀⁠(ridge regression)⁠를 제안했습니다.

왜 같은 병인지 봅시다. 같은 온도를 두 온도계로 재어 둘 다 설명 변수로 넣었다고 합시다. 두 값은 거의 같으니, 계수를 (1, 0)으로 두든 (101, −100)으로 두든 예측은 거의 같습니다. 자료는 두 계수의 합은 또렷이 정해 주지만 차이는 거의 정해 주지 못합니다. 두 화소 예에서 흐림이 합은 지키고 차이는 거의 지웠던 것과 같은 모양, 곧 자료 행렬의 특잇값 하나가 아주 작은 상황입니다. 그래서 잡음이 차이 쪽으로 부풀어 계수가 터무니없어지고, 처방도 같습니다. 벌점을 주면 계수의 제곱합이 작은 (0.5, 0.5) 같은 답이 뽑힙니다.

신경망⁠(neural network)⁠ 학습에서 쓰는 '가중치 감쇠⁠(weight decay)⁠'도 같은 벌점입니다. 신경망의 가중치⁠(weight)⁠는 회귀의 계수처럼 곱하는 수들이고, 가중치 감쇠는 학습의 걸음마다 그 수들을 조금씩 0 쪽으로 줄이는 것입니다. 적어도 오차가 줄어드는 쪽으로 조금씩 고쳐 가는 보통의 학습법(경사 하강법⁠, gradient descent⁠)에서는, 이것이 제곱합 벌점을 더한 것과 정확히 같습니다(과적합⁠(overfitting)⁠).

정리하면, 정규화는 측정에 맞추는 것과 답을 작게 두는 것 사이에서 λ로 균형을 잡고, 그 결과 특잇값이 작은 방향의 잡음을 덜 믿게 됩니다.

같은 무렵 미국에서 일하던 데이비드 필립스(1962)와 숀 투미(1963)도 적분방정식을 풀며 비슷한 방법을 내놓았습니다. 적분방정식은 3절의 y⃗=Kx⃗\vec y = K\vec x에서 칸을 끝없이 촘촘하게 해, 무게를 곱해 더하는 합이 연속적인 합(적분⁠, integral⁠)이 된 것입니다. 투미는 대기물리학자였고, 그가 씨름한 문제 가운데 하나는 1959년 루이스 캐플런이 제안한 위성 관측이었습니다. 1960년 첫 기상 위성이 올라간 뒤, 위성이 우주에서 여러 파장으로 잰 적외선의 세기에서 높이마다의 기온을 되찾는 일이 과제가 되었습니다. 이것이 흐린 사진과 똑같이 불안정한 역문제였습니다. 그렇게 되찾은 기온이 일기 예보의 출발점이 되는 이야기는 「나비의 날갯짓」에 있습니다.

티호노프가 소련에서 역문제에 매달린 데에는 사정이 있었습니다. 광물과 석유를 찾는 탐사는 국가의 큰 과제였고, 땅 위에서 잰 전기와 자기 신호로 땅속을 그려야 했습니다. 1950년 그는 한 탐사 방법의 원리를 내놓았습니다. 태양 활동 등으로 저절로 생기는 전기장과 자기장의 흔들림을 땅 위에서 함께 재어, 깊이에 따른 땅속 전도도를 알아내는 방법입니다. 1953년 프랑스의 루이 카냐르도 따로 같은 방법에 이르러 '자기지전류법'이라는 이름을 붙였습니다. 1950–60년대 소련에서는 노보시비르스크의 미하일 라브렌티예프 등도 잘못 놓인 문제⁠(ill-posed problem)⁠를 연구했고, 그리하여 아다마르가 '물리적 의미가 없다'고 밀어 두었던 문제들이 하나의 분야로 자리 잡았습니다.

6 · 벌점은 믿음이다티호노프, 릿지, 그리고 베이즈

이 절의 물음은 이것입니다. 벌점 λ∥x⃗∥2\lambda\lVert\vec x\rVert^2는 어디서 온 것일까요? 편의를 위한 꼼수처럼 보이지만, 확률⁠(probability)⁠로 쓰면 정확한 뜻이 있습니다. '측정하기 전에 이미 알던 것'을 확률로 적으면 바로 이 벌점이 나옵니다.

가장 작은 예부터 봅시다. 모르는 수 x 하나를 잡음 섞인 저울로 한 번 재었더니 y = 2가 나왔습니다. 저울의 잡음은 대개 ±1 안쪽입니다. 한편 재기 전부터 우리는 x가 0 근처, 대개 ±1 안쪽에 있다고 믿고 있었습니다. 어떤 x가 가장 그럴듯할까요? 측정만 믿으면 2, 믿음만 따르면 0입니다. 둘을 함께 따지는 규칙이 베이즈 정리⁠(Bayes' theorem)⁠입니다. 요점은 '측정 뒤의 믿음은 (그 답이라면 이 측정이 나올 가능성) × (측정 전의 믿음)에 비례한다'입니다. 측정 전의 믿음을 사전 분포(사전확률), 측정 뒤의 믿음을 사후 분포⁠(posterior distribution)⁠라고 부릅니다.

이 곱을 계산하려면 '대개 ±1 안쪽'을 수로 적어야 합니다. 흔히 쓰는 것이 종 모양의 정규분포⁠(normal distribution)⁠입니다. 평균 0, 표준편차 s인 정규분포에서 값 z가 나올 가능성(확률 밀도⁠, probability density⁠)은 e−z2/2s2e^{-z^2/2s^2}에 비례합니다. z = 0에서 가장 크고, z가 표준편차만큼 떨어지면 e−1/2≈0.61e^{-1/2} \approx 0.61배, 두 배 떨어지면 e−2≈0.14e^{-2} \approx 0.14배로 빠르게 작아집니다.

저울 예에서 두 표준편차를 모두 1로 둡시다. 답이 x라면 잡음은 2 − x였으니, 이 측정이 나올 가능성은 e−(2−x)2/2e^{-(2-x)^2/2}이고, 측정 전의 믿음은 e−x2/2e^{-x^2/2}입니다. 지수끼리 곱하면 지수가 더해지므로(eaeb=ea+be^a e^b = e^{a+b}) 곱은 e−[(2−x)2+x2]/2e^{-[(2-x)^2 + x^2]/2}입니다. e−se^{-s}는 s가 작을수록 크니, 이 곱을 가장 크게 하는 x는 (2−x)2+x2(2-x)^2 + x^2을 가장 작게 하는 x입니다. x = 0이면 4, x = 1이면 1 + 1 = 2, x = 2이면 4이고, x = 0.9나 1.1이면 2.02입니다. 가장 그럴듯한 답은 측정과 믿음의 한가운데인 x = 1입니다. 그리고 (2−x)2+x2(2-x)^2 + x^2은 5절의 티호노프 식에서 K = 1, y = 2, λ = 1로 둔 것 그대로입니다.

이제 일반적으로 적어 봅시다. 두 가지를 가정합니다. 첫째, 잡음은 각 칸마다 평균 0, 표준편차 σe\sigma_e인 정규분포를 따르고, 칸마다 따로 생긴다(서로 독립이다). 특잇값 σi\sigma_i와 헷갈리지 않도록 잡음의 e를 아래첨자로 붙였습니다. 둘째, 측정하기 전에 우리는 답의 각 성분이 서로 독립이고 평균 0, 표준편차 τ('타우')인 정규분포를 따른다고 믿는다. 그러면 베이즈 정리로 사후 분포를 적을 수 있습니다. 아래 식의 p(x⃗∣y⃗)p(\vec x \mid \vec y)는 '측정 y를 보았을 때 답이 x일 확률(밀도)'이라고 읽고, ∝는 '비례한다'입니다. 독립인 것들의 가능성은 곱해지므로, 칸마다의 종 모양을 모두 곱하면 지수에 제곱합이 모입니다.

p(x⃗∣y⃗)  ∝  e−∥y⃗−Kx⃗∥2/2σe2⏟측정이 말하는 것  ⋅  e−∥x⃗∥2/2τ2⏟측정 전의 믿음p(\vec x \mid \vec y) \;\propto\; \underbrace{e^{-\lVert \vec y - K\vec x\rVert^2/2\sigma_e^2}}_{\text{측정이 말하는 것}}\;\cdot\;\underbrace{e^{-\lVert\vec x\rVert^2/2\tau^2}}_{\text{측정 전의 믿음}}

첫째 인수는 측정과의 어긋남이 클수록, 둘째 인수는 답이 클수록 빠르게 작아지는 수입니다. 정규분포의 종 모양 곡선이 바로 이런 꼴이기 때문입니다. 이 확률을 가장 크게 하는 답을 최대 사후 확률(MAP) 추정이라 부릅니다. 확률을 가장 크게 하는 답은, 두 지수를 더하고 부호를 바꾼 ∥y⃗−Kx⃗∥2/2σe2+∥x⃗∥2/2τ2\lVert\vec y - K\vec x\rVert^2/2\sigma_e^2 + \lVert\vec x\rVert^2/2\tau^2을 가장 작게 하는 답입니다. 여기에 2σe22\sigma_e^2를 곱하면 ∥y⃗−Kx⃗∥2+(σe2/τ2)∥x⃗∥2\lVert\vec y - K\vec x\rVert^2 + (\sigma_e^2/\tau^2)\lVert\vec x\rVert^2, 곧 티호노프의 식에서 λ=σe2/τ2\lambda = \sigma_e^2/\tau^2로 둔 것입니다. 저울 예라면 σe=τ=1\sigma_e = \tau = 1이라 λ = 1이었습니다. 이것은 비유가 아니라 위의 두 가정 아래에서 성립하는 등식입니다.

이 등식이 λ의 뜻을 알려 줍니다. 표준편차의 제곱을 분산⁠(variance)⁠이라 하니, λ는 '잡음의 분산 ÷ 믿음의 분산'입니다. 잡음이 클수록 λ가 커져 믿음 쪽에 무게가 실리고, 믿음의 폭이 넓을수록 λ가 작아져 측정 쪽에 무게가 실립니다. 믿음의 폭 τ를 한없이 넓혀 믿음을 빼면(τ → ∞) λ = 0이 되어, 측정이 나올 가능성만 가장 크게 하는 최대가능도 추정, 곧 가우스의 최소제곱으로 돌아갑니다. 정리하면 λ는 측정과 믿음 가운데 어느 쪽을 얼마나 믿을지의 비율입니다.

그림으로 봅시다. 미지수가 둘뿐인 가장 작은 역문제입니다. 행렬 KK는 한 방향은 그대로 두고, 그에 수직인 방향은 배로 줄입니다(조건수 ). 잡음의 표준편차는 σe\sigma_e = 0.1이고, 믿음의 폭은 τ = , 그래서 λ = 입니다.

흰검은 고리가 참값입니다(끌어서 옮길 수 있습니다). 주황 타원은 측정만 보았을 때 답이 있을 법한 곳, 보라 점선 원은 측정 전의 믿음, 청록 타원은 둘을 곱한 사후 분포입니다. 옅은 점구름은 잡음을 160번 새로 뽑았을 때의 답들입니다. 회색 점선이 줄어드는 방향입니다.

주황 타원은 줄어드는 방향으로 길게 늘어져 있습니다. 측정이 그 방향에 대해서는 거의 아무것도 말해 주지 않기 때문입니다. 그래서 최소제곱의 답은 잡음이 조금만 바뀌어도 그 방향으로 멀리 튑니다. 잡음 새로 뽑기를 몇 번 눌러 보세요. 사후 확률⁠(posterior probability)⁠이 가장 큰 답은 훨씬 덜 움직입니다. 믿음이 측정이 침묵하는 방향을 원점 쪽으로 붙잡아 주고, 측정이 또렷이 말하는 방향은 거의 건드리지 않기 때문입니다. τ를 줄이면 더 세게 붙잡습니다. 160번의 RMS 오차(참값과의 거리를 제곱해 평균한 뒤 제곱근)는 최소제곱이 , 믿음을 더한 답이 입니다.

이제 참값을 원점에서 멀리, 회색 점선을 따라 끌어 보세요. 청록 점구름은 여전히 주황 점구름보다 좁지만, 중심이 참값에서 원점 쪽으로 밀려납니다. '답은 원점 가까이 있다'는 믿음이 틀렸기 때문입니다. 지금 설정에서 참값을 점선 위, 원점에서 2쯤 떨어진 곳에 두면, 믿음을 더한 답의 RMS 오차가 최소제곱의 오차보다 커집니다. 이것이 편향과 분산의 교환입니다. 정규화는 공짜가 아닙니다. 흔들림(분산)을 크게 줄이는 대신 한쪽으로 치우침(편향)을 받아들이는 거래이고, 믿음이 사실과 멀면 거래는 손해가 됩니다. 믿음의 폭 τ를 넓히면 치우침은 줄고 흔들림은 늘어납니다. 불안정한 역문제에 '믿음 없는 정답'은 없습니다. 무엇을 믿었는지 밝히는 정직한 답이 있을 뿐입니다.

정리하면, '답은 원점 가까이 있다'는 믿음을 정규분포로 적으면 티호노프의 벌점이 되고, λ는 잡음의 분산과 믿음의 분산의 비입니다. 그 믿음은 흔들림을 줄이는 대신, 틀렸을 때 치우침을 들여옵니다.

이 등식에는 덤이 있습니다. 사후 분포 전체가 정규분포라서, 가장 그럴듯한 답 하나만이 아니라 답이 어느 방향으로 얼마나 흔들릴 수 있는지까지 알려 줍니다. 청록 타원이 그것입니다. 특잇값이 σi\sigma_i인 방향에서 사후 분포의 표준편차는 σe/σi2+λ\sigma_e/\sqrt{\sigma_i^2 + \lambda}입니다. 측정이 또렷이 말하는 방향(σi=1\sigma_i = 1)에서는 λ가 작으면 거의 σe\sigma_e, 곧 측정의 잡음만큼만 흔들립니다. 측정이 침묵하는 방향(σi\sigma_i가 0에 가까움)에서는 σe/λ=τ\sigma_e/\sqrt{\lambda} = \tau, 곧 측정 전 믿음의 폭 그대로입니다. 측정이 아무것도 보태지 못한 방향에서는 불확실성도 줄지 않는다는 정직한 대답입니다. 베이즈의 눈으로 보면 정규화는 답 하나만이 아니라 그 답을 얼마나 믿어도 되는지까지 알려 주는 셈입니다.

방향을 모두 모아 행렬로 쓰면답이 어느 방향으로 얼마나 흔들리는지를 한꺼번에 담은 행렬을 공분산 행렬⁠(covariance matrix)⁠이라 하고, 여기서는 σe2(KTK+λI)−1\sigma_e^2(K^{\mathsf T}K + \lambda I)^{-1}입니다. KTK^{\mathsf T}('케이 전치')는 K의 행과 열을 맞바꾼 행렬이고, II는 곱해도 아무것도 바꾸지 않는 단위행렬입니다. 특잇값 분해의 축으로 재면 KTK+λIK^{\mathsf T}K + \lambda I는 축마다 σi2+λ\sigma_i^2 + \lambda배 하는 행렬이 되므로, 방향마다의 분산은 σe2/(σi2+λ)\sigma_e^2/(\sigma_i^2 + \lambda)이고 그 제곱근이 위의 표준편차입니다.

같은 생각을 흐린 사진에 쓰면 위너 필터⁠(Wiener filter)⁠가 됩니다. 먼저 5절의 곱하는 수 σi2/(σi2+λ)\sigma_i^2/(\sigma_i^2+\lambda)를 확률의 말로 다시 읽어 봅시다. 방향 i에서 측정은 '원래 성분 × σi\sigma_i + 잡음'입니다. 원래 성분의 크기가 대개 τ쯤이면, 측정에 남은 신호의 세기(제곱의 평균)는 σi2τ2\sigma_i^2\tau^2이고 잡음의 세기는 σe2\sigma_e^2입니다. 곱하는 수의 분자와 분모에 τ2\tau^2를 곱하면, λτ2=σe2\lambda\tau^2 = \sigma_e^2이므로 이렇게 됩니다.

σi2σi2+λ=σi2τ2σi2τ2+σe2=측정에 남은 신호의 세기측정에 남은 신호의 세기+잡음의 세기\frac{\sigma_i^2}{\sigma_i^2 + \lambda} = \frac{\sigma_i^2\tau^2}{\sigma_i^2\tau^2 + \sigma_e^2} = \frac{\text{측정에 남은 신호의 세기}}{\text{측정에 남은 신호의 세기} + \text{잡음의 세기}}

뜻은 분명합니다. 측정에 신호가 잡음보다 훨씬 많이 남은 주파수에서는 이 수가 거의 1이라 그대로 되돌리고, 잡음에 묻힌 주파수에서는 거의 0이라 버립니다. 4절의 피카르 그림으로 말하면, 주파수마다 흰검은 점(남은 신호)과 분홍 점선(잡음 높이)을 견주어 얼마나 믿을지 정하는 셈입니다.

위너 필터는 여기서 한 걸음 더 갑니다. 믿음의 폭을 주파수마다 따로 τi\tau_i로 줍니다. 실제 사진은 대개 느린 물결 성분이 크고 촘촘한 성분이 작으니, 주파수가 높을수록 τi\tau_i를 작게 두는 편이 '모든 성분이 같은 크기쯤'이라는 믿음보다 사실에 가깝습니다. 그래서 위너 필터가 순진한 역에 주파수마다 곱하는 수는 σi2τi2/(σi2τi2+σe2)\sigma_i^2\tau_i^2/(\sigma_i^2\tau_i^2 + \sigma_e^2), 곧 위와 같은 '신호 ÷ (신호 + 잡음)'이되 신호의 세기를 주파수마다 따로 잰 것입니다. 모든 τi\tau_i가 같으면 5절의 식으로 정확히 돌아갑니다.

이 필터의 뿌리는 1940년대 노버트 위너가 대공포의 조준을 위해 만든 최적 필터 이론입니다(1942년 기밀 보고서, 1949년 출판). 이 보고서는 노란 표지에 수식이 어려워 '노란 위험'이라는 별명으로 불렸다고 전합니다. 거의 같은 때인 1941년, 모스크바의 콜모고로프도 띄엄띄엄 잰 자료로 앞을 내다보는 같은 문제를 따로 풀었습니다.

'결과에서 원인으로'라는 물음에 확률로 답한 첫 사람들 가운데 하나가 라플라스입니다. 1774년 스물다섯 살의 라플라스는 「사건⁠(event)⁠으로부터 원인의 확률에 관한 논문」에서, 관측된 결과가 여러 원인 가운데 어느 것에서 왔을 확률을 계산하는 규칙을 세웠습니다. 베이즈의 유고(1763)를 알지 못한 채였던 것으로 보입니다. 19세기에는 이것을 '역확률⁠(inverse probability)⁠'이라 불렀고, 라플라스는 이 방법으로 천문 관측의 오차와 파리와 런던의 출생 성비까지 따졌습니다. 20세기에 들어 피셔를 비롯한 통계학자들은 측정 전의 믿음을 누가 어떻게 정하느냐며 역확률을 강하게 비판했고, 두 진영의 논쟁은 오래 이어졌습니다(「도박판에서 온 편지」, 「담배와 폐암」). 역문제의 세계에서 정규화와 사전확률을 한 식으로 본 것은 1970년 조엘 프랭클린의 논문, 1987년 알베르트 타란톨라의 『역문제 이론』 같은 작업이었습니다.

7 · 1917년 빈, 1971년 런던그림자에서 단면으로

이 절의 물음은 이것입니다. 여러 방향에서 잰 직선 합들만으로 단면 전체를 어떻게 되찾을까? 그리고 이 역문제는 흐린 사진보다 쉬울까, 어려울까?

이제 처음의 병원으로 돌아갑니다. 1917년 빈의 젊은 수학자 요한 라돈은 라이프치히의 작센 학술원 회보에 논문 한 편을 실었습니다. 평면 위의 함수는, 연속이고 멀리 갈수록 충분히 빨리 0에 가까워진다면, 모든 직선을 따라 적분한 값들로 완전히 정해지며, 그 값들에서 함수를 되찾는 공식이 있다는 내용이었습니다. 순수한 적분기하학⁠(integral geometry)⁠의 질문이었고, 라돈이 X선을 염두에 두었다는 기록은 없습니다. 함수 ff에서 직선 적분들의 표를 만드는 이 변환을 오늘날 라돈 변환⁠(Radon transform)⁠이라 부릅니다.

(Rf)(θ,s)=∫xcos⁡θ+ysin⁡θ=sf  dℓ(\mathcal R f)(\theta, s) = \int_{x\cos\theta + y\sin\theta = s} f \; d\ell

식을 말로 읽으면 '방향이 각도 θ('세타')로 정해지고 원점에서 거리 s만큼 떨어진 직선을 따라, 단면의 밀도 f를 모두 더한 값'입니다. ∫('적분')는 칸으로 나누지 않고 연속적으로 더한다는 기호이고, dℓd\ell은 직선을 따라 잰 아주 짧은 길이입니다. ∫ 아래에 적힌 xcos⁡θ+ysin⁡θ=sx\cos\theta + y\sin\theta = s는 그 직선의 방정식입니다. 원점에서 각도 θ 방향으로 s만큼 간 점을 지나고, 그 방향에 수직으로 그은 직선입니다. 예를 들어 θ = 0이면 x=sx = s, 곧 세로로 선 직선입니다.

θ와 s를 바꿔 가며 모든 직선에 대해 이 값을 모은 표가 CT의 측정입니다.

되찾는 방법을 직접 해 봅시다. 가장 먼저 떠오르는 생각은 역투영입니다. 각 방향에서 잰 값을, 그 값이 나온 직선을 따라 거꾸로 고르게 칠해 되돌리고, 모든 방향의 결과를 더합니다. 밀도가 높은 곳은 여러 방향에서 칠해지니 밝아집니다. 아래 그림에서 방향의 수 개와 방법()을 바꾸어 보세요. 측정 잡음은 입니다.

실제 단면(모르는 것)
측정: 방향 × 위치마다의 합
되찾은 단면
왼쪽은 타원 몇 개로 만든 머리 모형입니다(노란 선은 빔의 방향들이고, 12개까지만 그립니다). 가운데는 방향마다 61개 위치에서 잰 직선 합으로, 한 줄이 한 방향입니다. 이런 표를 사이노그램⁠(sinogram)⁠이라 부릅니다. 점 하나가 이 표 위에 사인 곡선을 그리기 때문입니다. 오른쪽이 가운데 자료만으로 계산한 단면입니다. 칸에 마우스를 올리면 값이 나옵니다.

지금 측정값은 개이고, 되찾을 칸은 44×44 = 1,936개입니다. . 방향이 하나면 줄무늬뿐이고, 방향이 늘면 모양이 드러납니다. 그런데 '그냥 역투영⁠(back-projection)⁠'은 방향을 60개로 늘려도 흐릿한 안개가 걷히지 않습니다. 이유가 있습니다. 밝은 점 하나만 있는 단면을 생각해 봅시다. 그 점을 지나는 직선마다 값을 되돌려 칠하면, 칠이 그 점을 중심으로 사방에 뻗은 직선들 위에 놓입니다. 점에서 거리 r인 원 위에서는 이 직선들이 원 둘레 2πr2\pi r에 나뉘어 퍼지므로, 밝기가 r에 반비례해 옅어집니다. 그래서 역투영은 참 단면을 1/r1/r 모양의 무게로 흐리게 한 것을 돌려줍니다. 3절의 흐린 사진과 같은 처지입니다.

그 흐림을 되돌리는 것이 거른 역투영입니다. 설명에는 푸리에 변환이 필요합니다. 푸리에 변환은 신호를 여러 주파수의 사인파로 나누었을 때 각 주파수의 세기를 모은 것입니다. 사진 같은 2차원 그림이면 가로세로 여러 방향의 줄무늬로 나누고, 줄무늬마다 방향과 촘촘함(주파수)이 있어서, 그 세기들이 평면 위의 표(주파수 평면)를 이룹니다.

핵심 사실은 이것입니다. 한 방향에서 잰 측정 한 줄을 1차원 푸리에 변환하면, 단면 전체를 2차원 푸리에 변환한 표를 같은 방향으로 원점을 지나게 자른 한 줄과 같습니다. 이것을 푸리에 조각 정리라 하는데, 전파 천문학자 로널드 브레이스웰이 1956년 태양 관측에 썼습니다. 방향마다 원점을 지나는 한 줄씩이니, 조각들은 수레바퀴의 살처럼 원점 근처에 빽빽하고 멀리 갈수록 성깁니다. 원점에서 거리 ∣ω∣|\omega|('오메가의 절댓값⁠(absolute value)⁠', 곧 주파수의 크기)인 원 위에서는 같은 수의 살이 둘레 2π∣ω∣2\pi|\omega|에 나뉘므로, 살의 빽빽함이 ∣ω∣|\omega|에 반비례합니다.

그래서 역투영은 주파수 ∣ω∣|\omega|인 성분을 1/∣ω∣1/|\omega|에 비례하게 부풀려, 낮은 주파수가 지나치게 많은 그림을 돌려줍니다. 앞 문단의 1/r1/r 흐림을 주파수 쪽에서 본 모습입니다. 이를 바로잡으려면 투영마다 ∣ω∣|\omega|를 곱해 거른 뒤 역투영하면 됩니다. 주파수에 비례해 곧게 올라가는 이 곱셈의 모양을 따서 '램프(경사로) 필터'라 부릅니다. 1971년 인도의 라마찬드란과 락슈미나라야난이 계산하기 좋은 꼴로 정리했습니다.

램프 필터⁠(ramp filter)⁠는 높은 주파수일수록 크게 곱합니다. 잡음을 '있음'으로 바꾸고 램프 필터를 쓰면 단면이 자글자글해집니다. 되돌리는 일은 언제나 높은 주파수를 키우고, 높은 주파수에는 잡음이 삽니다. 다행히 라돈 변환은 흐림보다 훨씬 순한 역문제입니다. 흐림을 되돌릴 때는 높은 주파수를 ek2te^{k^2 t}처럼 지수적으로 키워야 했지만, 여기서는 ∣ω∣|\omega|, 곧 주파수에 비례해서만 키우면 되기 때문입니다. 1974년 래리 셰프와 벤저민 로건은 램프의 높은 끝을 살짝 누그러뜨린 필터를 제안했습니다. '셰프–로건 필터'로 바꾸면 자글거림이 줄어듭니다. 잡음이 사는 높은 주파수를 덜 믿는다는 점에서, 이것도 5절의 정규화와 같은 처방입니다. 그들이 시험에 쓴 타원 머리 모형, 곧 '셰프–로건 팬텀'은 지금도 이 분야의 표준 시험 그림이고, 위의 모형도 그것을 흉내 낸 것입니다.

정리하면, 역투영은 단면을 1/r 모양으로 흐리게 한 것을 돌려주고, 램프 필터가 그 흐림을 되돌립니다. 되돌리며 키우는 배율이 주파수에 비례할 뿐이라, CT는 흐린 사진보다 훨씬 순한 역문제입니다.

40~50년 뒤 두 사람이 라돈을 모른 채 같은 문제에 부딪혔습니다. 남아프리카 케이프타운의 물리학자 앨런 코맥은 1956년 그루트 슈어 병원에서 방사선 치료의 선량을 계산하다가, 몸속의 흡수율 분포를 바깥에서 잰 X선만으로 알아내야 한다는 것을 깨달았습니다. 1957년 케이프타운에서 알루미늄 원통을 나무 고리로 감싼 모형으로 계산을 시험했습니다. 미국 터프츠 대학으로 옮긴 뒤 1963년과 1964년에 논문을 냈지만, 반응은 거의 없었습니다. 코맥은 라돈의 논문을 한참 뒤에야 알게 되었습니다.

영국 EMI 중앙 연구소의 기술자 고드프리 하운스필드는 1960년대 말 독자적으로 같은 생각에 이르러 기계를 만들었습니다. 그의 첫 기계는 반복법으로 단면을 계산했다고 알려져 있습니다. 연립방정식의 식을 하나씩 돌아가며 그 식을 만족하도록 답을 조금씩 고쳐 가는 방법입니다. 1937년 폴란드의 스테판 카치마시가 발표한 방법과 같은 생각입니다. 코맥과 하운스필드는 1979년 노벨 생리의학상을 함께 받았습니다. EMI는 비틀스의 음반사이기도 해서 '비틀스가 번 돈이 CT를 낳았다'는 이야기가 널리 퍼졌습니다. 하지만 영국 보건사회보장부가 개발비의 상당 부분을 대고 스캐너를 미리 사들이기로 한 것도 결정적이었다는 반론이 있습니다.

첫 기계에 이르는 길은 느렸습니다. 하운스필드의 첫 실험 장치는 X선관 대신 방사성 원소 아메리슘의 감마선을 썼고, 물과 금속, 플라스틱을 넣은 병 같은 모형 하나를 재는 데 9일, 그렇게 모은 측정값 2만 8천 개로 그림을 계산하는 데 컴퓨터로 두 시간 반이 걸렸다고 합니다. X선관으로 바꾸자 측정 시간은 크게 줄었습니다. 그보다 앞서 1961년 미국의 신경과 의사 윌리엄 올덴도프는 레코드 턴테이블 위에 쇠못과 알루미늄 못을 세워 머리를 흉내 낸 모형을 돌리며, 여러 방향에서 비춘 빔으로 안쪽의 한 점을 골라 읽는 원리를 보인 논문을 냈습니다. 그러나 단면 전체를 계산으로 되찾는 기계로 이어지지는 못했습니다. 모자랐던 것은 발상보다 계산이었습니다. 수만 개의 방정식을 푸는 컴퓨터가 병원 옆에 놓일 수 있게 된 1970년 무렵에야 CT가 가능해졌습니다.

라돈의 논문(1917)에서 첫 환자 촬영(1971)까지 반세기가 걸렸습니다. 빈에서 라이프치히로 간 논문, 케이프타운에서 보스턴 근교로 간 코맥, 런던 서쪽 헤이스의 연구소에서 윔블던의 병원으로 간 기계를 따라가 보세요. 같은 시기 모스크바에서는 티호노프가 정규화를 다듬고 있었습니다.

8 · 2004년 패서디나'작다' 대신 '드물다'

이 절의 물음은 이것입니다. 측정이 미지수보다 훨씬 적으면 답은 무한히 많습니다. 그래도 참 답을 정확히 되찾을 수 있는 경우가 있을까?

2004년 초, 칼텍의 수학자 에마뉘엘 캉데스는 셰프–로건 팬텀으로 한 가지 실험을 했습니다. MRI 기계는 X선 대신 자기장으로 몸을 재는데, 그 측정값은 단면의 푸리에 계수, 곧 7절에서 말한 주파수 평면 위의 값들입니다. 캉데스는 원점을 지나는 직선 22개 위의 계수만 남기고 나머지를 모두 버렸습니다. 필요한 계수의 대부분이 빠진 셈이니, 모르는 계수를 0으로 두고 되돌리면 줄무늬투성이 그림이 나옵니다. 그런데 남은 계수에 맞는 그림 가운데 이웃 칸끼리의 밝기 차이를 절댓값으로 모두 더한 양(전변동⁠, total variation⁠)이 가장 작은 것을 찾자, 팬텀이 오차 없이 되살아났습니다. 조각마다 밝기가 일정한 그림에서 이 양은 대략 '경계의 길이 × 경계에서 밝기가 뛰는 크기'입니다. 그는 이 결과를 UCLA의 테런스 타오와 함께 파고들었고, 저스틴 롬버그와 셋이 쓴 논문과 스탠퍼드의 데이비드 도노호의 논문 「압축 센싱⁠(compressed sensing)⁠」이 2006년에 나왔습니다.

무엇이 달라졌을까요? 믿음이 달라졌습니다. 티호노프의 믿음은 '답은 작다'였습니다. 캉데스의 믿음은 '답은 드물다', 곧 대부분의 성분이 0이라는 것입니다. 이런 성질을 희소하다고도 합니다. 팬텀은 조각마다 밝기가 일정해서, 이웃 칸과의 차이가 대부분 0이고 경계에서만 0이 아닙니다. 사진도 이산 코사인 변환⁠(discrete cosine transform)⁠으로 바꾸면 대부분의 계수가 0에 가깝고 큰 계수는 몇 개뿐이라, JPEG가 그것을 이용해 압축합니다(「짧게 보내기」).

'드물다'를 식으로 쓰면 0이 아닌 성분의 개수가 작다는 것입니다. 그러면 측정에 맞는 답 가운데 0이 아닌 성분이 가장 적은 것을 고르면 될 것 같습니다. 그런데 이 문제는 일반적으로 NP-난해⁠(NP-hard)⁠임이 증명되어 있습니다. NP-난해는 컴퓨터 과학의 말로, 이 문제를 빠르게 푸는 방법이 있다면 오랫동안 아무도 빠르게 풀지 못한 수많은 문제들도 모두 빠르게 풀린다는 뜻입니다. 실제로 미지수가 많으면, 어느 성분을 0으로 둘지의 조합을 거의 다 따져 보는 것보다 크게 나은 일반적인 방법이 알려져 있지 않습니다. 미지수 60개 가운데 5개를 고르는 조합만 해도 540만 가지가 넘습니다.

그래서 개수 대신 절댓값의 합 ∥x⃗∥1=∑i∣xi∣\lVert\vec x\rVert_1 = \sum_i |x_i|, 곧 ∣x1∣+∣x2∣+⋯|x_1| + |x_2| + \cdots을 가장 작게 합니다. 왼쪽은 '엑스의 엘원 노름⁠(norm)⁠'이라 읽습니다(L1 노름). 예를 들어 (3, −4)의 L1 노름은 3 + 4 = 7이고, 제곱합의 제곱근으로 잰 보통 길이는 5입니다. 개수는 성분이 0에서 0.001이 되는 순간 1씩 뛰지만, 절댓값 합은 성분을 조금 바꾸면 조금만 변하고, 비탈을 따라 내려가기만 하면 어디서 출발해도 가장 낮은 높이에 닿는 볼록한 모양(10절)이라 가장 작게 하는 빠른 방법이 있습니다. 그런데 왜 이것이 드문 답을 줄까요? 가장 작은 예로 봅시다.

방정식 x1+2x2=2x_1 + 2x_2 = 2 하나에 미지수가 둘이면 답이 끝없이 많습니다. (2, 0), (0, 1), (0.4, 0.8), (1, 0.5)가 모두 답입니다. 제곱합이 가장 작은 답은 (0.4, 0.8)로 제곱합이 0.16 + 0.64 = 0.8입니다((0, 1)은 1, (2, 0)은 4). 두 성분이 모두 0이 아닙니다. 절댓값 합으로 재면 (0.4, 0.8)은 1.2, (1, 0.5)는 1.5, (2, 0)은 2이고 (0, 1)은 1로 가장 작습니다. 절댓값 합이 가장 작은 답은 한 성분이 정확히 0인 (0, 1)입니다. 아래 왼쪽 그림이 이 일이 왜 늘 일어나는지 보여 줍니다.

방정식 하나, 미지수 둘
미지수 60개, 측정 m개
왼쪽: 흰검은 직선 위의 점이 모두 방정식을 만족합니다. 주황 점을 끌면 직선이 움직입니다. 오른쪽: 흰검은 점이 숨은 신호의 0이 아닌 성분, 주황 선이 제곱합이 가장 작은 답, 청록 막대가 절댓값 합이 가장 작은 답입니다.

왼쪽 그림에서 방정식은 하나, 미지수는 둘이라 답이 직선 하나 전체입니다. 제곱합이 같은 점들은 원점을 중심으로 한 원을 이룹니다(피타고라스 정리⁠(Pythagorean theorem)⁠로, 제곱합은 원점까지 거리의 제곱이니까요). 원을 작은 것부터 부풀리다 직선에 처음 닿는 점이 제곱합이 가장 작은 답입니다. 원점에서 직선에 내린 수선⁠(perpendicular)⁠의 발, 곧 주황 원이 직선에 닿는 점 입니다. 두 성분이 모두 0이 아닙니다.

절댓값 합이 같은 점들은 원이 아니라 마름모를 이룹니다. 마름모를 부풀리다 보면, 직선이 마름모의 변과 나란하지 않은 한 꼭짓점⁠(vertex)⁠이 먼저 직선에 닿고, 꼭짓점은 축 위에 있으니 한 성분이 정확히 0입니다. 앞의 x1+2x2=2x_1 + 2x_2 = 2라면 절댓값 합이 1인 마름모의 꼭짓점 (0, 1)이 먼저 닿습니다. 원은 어디나 둥글어서 닿는 점이 축 위에 올 까닭이 없지만, 마름모는 축 위에 뾰족한 꼭짓점이 튀어나와 있어서 그곳이 먼저 닿기 쉽습니다. 지금 그림의 점은 입니다.

주황 점을 끌어 직선을 이리저리 돌려 보세요. 청록 점은 늘 축 위에 있다가, 직선이 마름모의 변과 나란해지는 순간(기울기가 ±1)에만 변 전체가 답이 됩니다. 뾰족한 모서리가 드문 답을 끌어당깁니다. 절댓값 합은 까마귀가 나는 곧은 거리가 아니라 바둑판 길을 돌아가는 택시의 거리입니다. 거리를 재는 방법이 답을 바꾸는 더 많은 예는 「까마귀와 택시」에 있습니다.

오른쪽은 진짜 크기의 실험입니다. 60개의 성분 가운데 개만 0이 아닌 신호를, 무작위로 섞은 측정 개로 잽니다. 측정 하나는 60개 성분 모두에 제멋대로 뽑은 무게를 곱해 더한 수 하나입니다. 3절의 흐림이 이웃끼리만 섞었다면, 여기서는 모든 성분을 골고루 섞습니다. 측정이 미지수 60개보다 적으면 모든 측정을 만족하는 답이 무한히 많고, 그 가운데 무엇을 고를지는 믿음이 정합니다. 오차는 참 신호의 크기로 나눈 비율로 잽니다. 제곱합 최소의 오차는 , 절댓값 합 최소의 오차는 입니다. 다른 문제 뽑기

측정 수를 천천히 줄여 보세요. 0이 아닌 성분이 5개일 때, 측정이 24개 이상이면 절댓값 합 최소가 거의 언제나 신호를 정확히 되찾고, 14개 아래로 내려가면 거의 언제나 실패합니다. 그 사이의 좁은 폭에서 성공과 실패가 갈리며, 정확한 경계는 문제를 새로 뽑을 때마다 조금씩 움직입니다.

이 갑작스러운 경계는 우연이 아닙니다. 미지수가 N개이고 그 가운데 0이 아닌 것이 k개 이하인 신호를 k-희소 신호라고 합시다. 캉데스와 타오, 도노호는 다음을 증명했습니다. 측정의 무게를 무작위로 뽑으면, 어떤 고정된 상수 C에 대해 측정이 C klog⁡(N/k)C\,k\log(N/k)개 이상일 때 높은 확률로 그 한 번 뽑은 측정이 모든 k-희소 신호를 정확히 되살립니다. 여기서 log는 자연로그⁠(natural logarithm)⁠로, log⁡a\log a는 e ≈ 2.718을 몇 제곱해야 a가 되는지입니다. 곱이 합으로 바뀌는 성질은 처음의 CT 이야기에서 쓴 그대로입니다.

숫자로 넣어 봅시다. 이 그림의 N = 60, k = 5라면 klog⁡(N/k)=5log⁡12≈12.4k\log(N/k) = 5 \log 12 \approx 12.4(log⁡12≈2.48\log 12 \approx 2.48)이니, 필요한 측정은 미지수 60개가 아니라 12.4의 몇 배 정도라는 뜻입니다. 위에서 본 경계 14~24가 그 범위에 있습니다. 로그는 N이 커져도 아주 느리게 자랍니다. 미지수가 100만 개이고 0이 아닌 것이 5개라면 5log⁡200000≈5×12.2=615\log 200000 \approx 5 \times 12.2 = 61이니, 미지수가 만 배 넘게 늘어도 이 값은 다섯 배쯤만 커집니다. 미지수가 많을수록 절약이 커지는 것입니다. 도노호와 재러드 태너는 그 경계가 어디에 있고 얼마나 날카로운지 자세히 그렸습니다.

이것은 표본화 정리⁠(sampling theorem)⁠와 모순되지 않습니다. 나이퀴스트와 섀넌의 정리는 어떤 주파수보다 높은 성분이 없는(대역이 제한된) 모든 신호를, 그 가장 높은 주파수의 두 배보다 촘촘히 재면 되살릴 수 있다는 보장입니다. 압축 센싱은 드문 신호만 되살리는 대신 훨씬 적은 측정으로 충분하다는 보장입니다. 더 강한 믿음을 걸면 측정은 더 적어도 됩니다.

이것도 정규화의 한 갈래입니다. 벌점을 제곱합 대신 절댓값 합으로 바꾼 회귀를 1996년 로버트 팁시라니가 라소⁠(lasso)⁠라는 이름으로 내놓았습니다. 라소는 라플라스 분포(정규분포보다 가운데가 뾰족한 분포)를 사전확률로 둔 베이즈 추정의 최빈값, 곧 사후 확률이 가장 큰 값과 같은 식입니다. 6절의 계산에서 믿음을 e−x2/2τ2e^{-x^2/2\tau^2} 대신 라플라스 분포⁠(Laplace distribution)⁠ e−∣x∣/be^{-|x|/b}(b는 폭)로 바꾸면, 지수에 제곱 대신 절댓값이 들어가 벌점이 절댓값 합이 되기 때문입니다. 다만 라플라스 분포에서 뽑은 수가 0이 되는 일은 없으니, 드문 답은 그 믿음이 아니라 L1 벌점의 모서리에서 나온다고 보는 편이 정확합니다. 2017년 2월 미국 식품의약국은 압축 센싱으로 촬영을 빠르게 한 MRI 기술을 허가했습니다. 제조사인 지멘스는 심장의 움직임을 찍는 촬영 한 가지에서, 숨을 여러 번 참으며 4분쯤 걸리던 촬영을 자유롭게 숨 쉬면서 16초 남짓에 끝낼 수 있다고 발표했습니다.

정리하면, '답은 드물다'는 믿음을 절댓값 합 벌점으로 적으면, 측정이 미지수보다 훨씬 적어도 드문 신호를 정확히 되찾을 수 있습니다. 마름모의 뾰족한 꼭짓점이 0인 성분을 만들어 냅니다.

절댓값 합으로 드문 답을 찾는 생각은 2000년대보다 훨씬 오래되었습니다. 절댓값 기준 자체는 1750년대 보스코비치가 여러 곳의 자오선⁠(meridian)⁠ 측량을 하나의 지구 모양으로 맞추며 세운 것입니다(「잃어버린 소행성」 3절). 1970년대 석유 탐사의 지진학자들은 땅속 지층의 경계에서 되돌아온 반사파가 드문드문한 뾰족한 펄스의 열이라고 보고, 흐려진 지진 기록을 되돌릴 때 제곱합 대신 절댓값 합을 쓰기 시작했습니다(클레어보와 뮤어 1973, 테일러·뱅크스·매코이 1979). 1986년 산토사와 시머스는 높은 주파수가 빠진 지진 기록에서도 이 방법으로 펄스 열을 되찾을 수 있음을 보였습니다. 캉데스와 도노호, 타오의 공헌은 현장에서 먼저 통하던 이 요령을, 신호가 언제 정확히 되살아나는지 증명한 정리로 바꾼 데 있습니다.

9 · 보이지 않는 것을 그리기땅속, 망원경, 블랙홀

이 절의 물음은 이것입니다. 지금까지 본 생각들, 곧 작은 특잇값의 불안정성과 '측정 + 믿음'이라는 처방은 실제로 어디서 어떻게 쓰일까? 땅속, 대기, 망원경, 블랙홀의 순서로 봅니다.

역문제는 이름이 붙기 훨씬 전부터 풀려 왔습니다. 1823년 노르웨이의 스무 살 남짓한 닐스 헨리크 아벨은 물체가 곡선을 따라 미끄러져 내려오는 데 걸리는 시간을 높이마다 알 때 곡선의 모양을 되찾는 문제를 풀었습니다. 그가 만든 적분방정식은 1907–1910년 무렵 독일의 구스타프 헤르글로츠와 에밀 비헤르트가 지진파의 도착 시각에서 땅속 깊이에 따른 속도⁠(velocity)⁠를 되찾을 때 다시 쓰였습니다. 1936년 덴마크의 지진학자 잉에 레만은 진원에서 멀리 떨어져 핵의 그늘에 들어간 관측소, 곧 파동이 닿지 않아야 할 곳에 약한 파동이 도착한다는 것을 보고, 액체인 외핵 안에 단단한 내핵이 있다고 결론지었습니다. 아무도 가 본 적 없는 곳의 지도를 도착 시각으로 그린 것입니다.

레만의 발견에는 앞선 걸음들이 있었습니다. 1906년 영국의 리처드 올덤은 진원에서 멀리 떨어진 관측소들에 지진파가 늦게 도착하는 것을 보고 지구 한가운데에 핵이 있다고 추론했고, 1913년 베노 구텐베르크는 그 경계의 깊이를 약 2,900킬로미터로 정했습니다. 이런 계산이 가능했던 것은 19세기 말부터 세계 곳곳에 지진계가 놓이고 관측소들이 기록을 서로 나누었기 때문입니다. 레만은 코펜하겐의 측지 연구소에서 그런 기록을 카드에 옮겨 적어 비교했다고 전합니다. 1936년 논문의 제목은 파동의 이름 한 글자, 「P′」이었습니다.

오늘날 석유 탐사에서는 땅을 두드려 돌아오는 파동 기록 전체에 맞도록 땅속 속도 지도를 고치는 '전 파형 역산'(프랑스에서 연구한 파트리크 라이이와 알베르트 타란톨라, 1983–1984)을 씁니다. 미지수가 수억 개에 이르기도 하는 비선형 역문제라 한 번에 풀 수 없고, 어긋남이 줄어드는 쪽으로 지도를 조금씩 고쳐 가기를 되풀이합니다. 어느 쪽으로 고칠지는 기울기가 알려 줍니다. 기울기는 미지수 하나하나를 조금씩 바꿨을 때 어긋남이 얼마나 변하는지를 모은 목록입니다. 미지수가 수억 개이니 하나씩 바꿔 보며 재면 모의 실험을 수억 번 돌려야 하지만, 파동을 시간을 거슬러 한 번 더 흘려 보내면 이 목록 전체를 한꺼번에 구할 수 있습니다. 신경망 학습의 역전파⁠(backpropagation)⁠와 같은 수학입니다(「배우는 기계」).

같은 계산은 날마다의 일기 예보에도 들어 있습니다. 예보를 시작하려면 지금 대기 전체의 상태가 필요하지만, 관측소와 위성, 비행기가 재 주는 값은 드문드문하고 잡음이 섞여 있습니다. 그러니 예보의 출발점을 정하는 일 자체가 측정이 미지수보다 훨씬 적은 역문제입니다. 미지수는 대기를 나눈 칸마다의 기온, 바람, 습도, 기압이고, 관측이 닿지 않는 칸이 대부분입니다.

1990년대 후반부터 유럽중기예보센터를 비롯한 여러 기상청은 이 문제를 '4차원 변분 자료 동화⁠(data assimilation)⁠'로 풉니다. 이름을 풀면 이렇습니다. 자료 동화는 관측 자료를 예보 모형에 녹여 넣는다는 뜻이고, 변분은 어떤 양을 가장 작게 하는 답을 찾는 방식이라는 뜻입니다. 4차원은 공간의 세 방향에 시간을 더한 것으로, 한 순간의 관측만이 아니라 지난 몇 시간에 걸쳐 흩어진 관측을 함께 쓴다는 뜻입니다. 처음 상태를 하나 정해 모형을 돌리면, 각 관측의 시각과 자리에서 모형이 내놓는 값이 나옵니다. 그 값들이 실제 관측과 가장 잘 맞도록 처음 상태를 고칩니다.

가장 작게 할 양=∑관측(관측값−모형이 계산한 값)2(관측 잡음)2  +  ∑칸(처음 상태−직전 예보)2(직전 예보의 오차)2\text{가장 작게 할 양} = \sum_{\text{관측}} \frac{(\text{관측값} - \text{모형이 계산한 값})^2}{(\text{관측 잡음})^2} \;+\; \sum_{\text{칸}} \frac{(\text{처음 상태} - \text{직전 예보})^2}{(\text{직전 예보의 오차})^2}

식은 6절의 모양 그대로입니다. 앞의 합은 측정과의 어긋남이고, 뒤의 합이 벌점, 곧 믿음입니다. 다른 점은 둘입니다. 믿음의 중심이 0이 아니라 직전 예보에 있습니다. '대기는 몇 시간 전에 예보했던 모습에서 크게 벗어나지 않았을 것'이라는 믿음입니다. 그리고 5절의 행렬 K 자리에 '처음 상태에서 모형을 돌려 관측 자리의 값을 읽는 일'이 들어가는데, 이것은 곱하고 더하기만으로 된 일차식이 아니라 비선형입니다. 실제로는 뒤의 합을 칸마다 따로 나누지 않고, 칸들 사이의 관계까지 담은 행렬로 나누지만 뜻은 같습니다.

이 양을 줄이는 방향, 곧 기울기도 앞 문단의 지진파처럼 모형을 시간을 거슬러 한 번 더 돌려서 한꺼번에 구합니다. 그렇게 정한 출발점에서도 먼 미래를 맞힐 수 없는 까닭은 「나비의 날갯짓」에 있습니다.

망원경에도 역문제가 있습니다. 1990년 4월 발사된 허블 우주 망원경은 주거울의 가장자리가 설계보다 2마이크로미터쯤 잘못 깎여 별이 번져 보였습니다. 1993년 12월 우주 비행사들이 보정 광학 장치를 달기까지 3년 반 남짓 동안, 천문학자들은 별 하나가 어떻게 번지는지 정확히 계산해 두고 그 흐림을 되돌렸습니다. 주로 쓴 것은 윌리엄 리처드슨(1972)과 리언 루시(1974)의 반복법으로, 빛의 양이 음수가 될 수 없다는 믿음을 계산에 담은 방법입니다. 그림은 훨씬 나아졌지만, 번져서 잡음에 묻힌 희미한 빛까지 되찾을 수는 없었습니다. 결국 해결은 계산이 아니라 거울 앞에 단 새 광학이었습니다. 4절의 피카르 그림이 말하는 그대로입니다.

2019년 4월 사건 지평선 망원경(EHT) 연구진은 처녀자리 은하단의 거대 타원 은하 M87 중심의 블랙홀 둘레에서 빛나는 고리의 사진을 공개했습니다. 2017년 4월 여섯 곳에 있는 전파 망원경 여덟 대가 파장 1.3밀리미터로 함께 관측한 자료였습니다. 멀리 떨어진 두 망원경이 받은 신호를 맞추어 보면, 하늘의 그림을 2차원 푸리에 변환한 값 가운데 하나를 얻습니다. 망원경이 몇 대뿐이니 지구가 도는 동안 모은 값을 다 합쳐도 푸리에 평면은 대부분 비어 있습니다. 측정이 화소보다 훨씬 적은 역문제, 곧 8절의 문제입니다.

연구진은 점 광원 몇 개로 하늘을 설명하려는 오래된 방법(CLEAN, 회그봄, 1974)과, 측정에 맞추면서 최대 엔트로피(밝기를 되도록 고르게 퍼뜨린 그림을 좋아하는 벌점)나 매끄러움, 희소성 같은 벌점을 함께 주는 방법을 모두 썼습니다. 그리고 믿음이 고리를 그려 넣은 것이 아님을 보이려고 두 가지를 더 했습니다. 네 팀이 서로의 결과를 보지 않은 채 따로 그림을 만들었고, 고리가 아닌 모양으로 만든 가짜 자료에 같은 절차를 돌려 고리가 저절로 생기지 않는지 확인했습니다. 네 팀 모두 지름 약 40마이크로각초의 고리를 얻었습니다. 1각초는 1도의 3,600분의 1이고, 마이크로각초는 그 100만분의 1입니다.

이 확인 과정이 이 글의 결론을 요약합니다. 보이지 않는 것의 그림은 언제나 측정과 믿음을 섞은 것입니다. 정직한 그림은 무엇을 믿었는지 밝히고, 믿음을 바꿔도 남는 것이 무엇인지 보여 줍니다. 요즘은 수많은 영상을 배운 신경망, 이를테면 확산 모델⁠(diffusion model)⁠을 믿음으로 쓰는 방법도 연구되고 있습니다. 그런 믿음은 강력한 만큼, 측정에 없던 그럴듯한 세부를 지어낼 위험도 큽니다. 6절에서 참값을 멀리 끌었을 때 청록 점구름이 자신 있게 틀린 곳에 모였던 것을 떠올려 보세요.

같은 자료에 맞는 설명이 여럿일 때 무엇으로 하나를 고르는가는 과학철학의 오랜 물음이기도 합니다. 과학철학자들은 증거만으로는 어느 이론을 믿어야 할지 정해지지 않는 상황을 이론의 '미결정성'이라 부릅니다. 20세기 초 프랑스의 물리학자 피에르 뒤엠은 가설 하나를 따로 떼어 시험할 수 없다는 점을 짚었고, 미국의 철학자 콰인⁠(quine)⁠은 이 생각을 우리 믿음 전체로 넓혔습니다. 과학자들은 그럴 때 단순함 같은 기준으로 고른다고 흔히 말합니다. 그 기준을 정보의 길이로 재는 오컴의 면도날⁠(Occam's razor)⁠ 이야기는 「압축하는 것이 이해하는 것이다」에 있습니다. 반대편에서는 래리 라우든 같은 철학자들이, 그 어려움은 과장되었고 증거는 대개 경쟁하는 이론들을 꽤 잘 가려 준다고 맞섭니다. 역문제는 이 논쟁을 숫자로 보여 줍니다. 측정이 침묵하는 방향에서는 믿음이 답을 정하지만, 측정이 또렷이 말하는 방향에서는 믿음을 바꿔도 답이 거의 움직이지 않습니다. 6절의 두 타원이 그 경계를 그려 보였습니다.

아벨의 적분방정식(1823)에서 블랙홀 사진(2019)까지. 과학 줄(청록)에 레만의 내핵, 허블 망원경의 흐림, EHT가 이어집니다. 지도에서는 하와이, 애리조나, 멕시코, 칠레, 스페인의 망원경에서 모인 자료가 매사추세츠의 헤이스택 천문대와 독일 본의 막스 플랑크 전파천문학 연구소로 가는 길을 보세요.

10 · 이어지는 길거꾸로 푸는 수학이 닿는 곳

역문제는 여러 분야를 한 줄로 꿰는 실입니다. 따로 배운 것들이 여기서 한 식으로 만납니다.

요약. 역문제는 결과 y⃗=Kx⃗+e⃗\vec y = K\vec x + \vec e에서 원인 x⃗\vec x를 되찾는 문제입니다. 해가 있고 하나뿐이어도, KK의 특잇값이 작은 방향에서는 되돌릴 때 잡음이 1/σi1/\sigma_i배로 불어나 답이 무너집니다(아다마르의 셋째 조건, 안정성의 실패). 흐림과 열 확산은 높은 주파수의 특잇값을 지수적으로 줄이는 같은 과정이라 특히 불안정하고, CT의 라돈 변환은 훨씬 순합니다.

x⃗λ=arg⁡min⁡x⃗ ∥Kx⃗−y⃗∥2+λ∥x⃗∥2=∑iσiσi2+λ (u⃗i⋅y⃗) v⃗i,λ=σ잡음2τ믿음2\vec x_\lambda = \arg\min_{\vec x}\,\lVert K\vec x - \vec y\rVert^2 + \lambda\lVert\vec x\rVert^2 = \sum_i \frac{\sigma_i}{\sigma_i^2+\lambda}\,(\vec u_i\cdot\vec y)\,\vec v_i, \qquad \lambda = \frac{\sigma_{\text{잡음}}^2}{\tau_{\text{믿음}}^2}

처방은 측정 밖의 앎을 더하는 것입니다. '답은 작다'는 믿음은 티호노프 정규화이자 릿지 회귀이자 정규분포 사전확률의 베이즈 추정이고, '답은 드물다'는 믿음은 L1 벌점과 압축 센싱입니다. 믿음은 흔들림을 줄이는 대신 치우침을 들여오므로, 좋은 역문제 풀이는 무엇을 믿었는지 밝히고 그 믿음에 답이 얼마나 기대는지 시험합니다.