수학 개념 지도
데이터와 학습(Data and learning)

차원의 저주(Curse of dimensionality)

차원이 높아지면 공간이 기하급수적으로 넓어져 데이터가 텅 빈 듯 흩어지고, 거의 모든 점⁠(almost everywhere)⁠ 사이 거리가 비슷해져 '가깝다'는 말이 힘을 잃는 현상.

max⁡D−min⁡Dmin⁡D→ d→∞ 0,Vd2d=πd/22d Γ(d/2+1)→ d→∞ 0\frac{\max D - \min D}{\min D} \xrightarrow{\,d\to\infty\,} 0, \qquad \frac{V_d}{2^d} = \frac{\pi^{d/2}}{2^d\,\Gamma(d/2+1)} \xrightarrow{\,d\to\infty\,} 0
먼저 보면 좋은 개념벡터큰 수의 법칙

한 변이 1인 d차원 정육면체 안에 점 64개를 무작위로 뿌리고, 두 점씩 짝지은 2016쌍의 거리를 모두 재 봅니다. 차원 d=d = . 아래는 그 거리들을 평균⁠(mean)⁠ 거리로 나눠 그린 히스토그램입니다.

가로축은 (거리 ÷ 평균 거리). 청록 선이 가장 가까운 쌍, 분홍 선이 가장 먼 쌍입니다.

d = 1이나 2에서는 거리가 0 근처부터 평균의 두세 배까지 넓게 퍼져 있습니다. d를 키우면 히스토그램⁠(histogram)⁠이 1 근처로 좁게 몰립니다. 지금 가장 가까운 쌍은 , 가장 먼 쌍은 , 둘의 차이를 가장 가까운 거리로 나눈 비는 입니다. d = 1000이면 가장 가까운 쌍과 가장 먼 쌍의 차이가 겨우 13%쯤입니다. 모두가 모두에게서 비슷하게 멀면, '가장 가까운 이웃'을 찾는 최근접 이웃 분류⁠(k-nearest neighbors classification)⁠나 가까운 점끼리 묶는 k-평균 군집⁠(k-means clustering)⁠은 기댈 곳을 잃습니다.

까닭은 큰 수의 법칙⁠(law of large numbers)⁠입니다. 유클리드 거리⁠(Euclidean distance)⁠의 제곱은 좌표마다의 차이 제곱을 d개 더한 합이고, 0과 1 사이 두 균등 난수의 차이 제곱은 기댓값⁠(expected value)⁠이 1/6입니다. 그러니 거리 제곱 ÷ d는 1/6로 모이고, d가 크면 거리는 거의 d/6\sqrt{d/6}입니다(지금 평균 , d/6=\sqrt{d/6} = ). 흔들림은 중심극한정리⁠(central limit theorem)⁠대로 d와 상관없이 약 0.24에 머물러서, 평균에 대한 상대적인 폭은 1/d1/\sqrt d로 줄어듭니다. 같은 이유로, 정육면체의 한가운데를 원점으로 옮겨 놓고 보면 무작위로 고른 두 점의 방향은 거의 직각이어서 코사인 유사도⁠(cosine similarity)⁠가 0 근처에 몰립니다. 한 꼭짓점⁠(vertex)⁠을 원점으로 두면 모든 좌표가 양수라서 이렇게 되지 않습니다.

공간이 텅 비는 것도 봅시다. 정육면체 [−1,1]d[-1,1]^d에 꼭 맞게 들어간 반지름 1인 공은 d = 2에서 넓이⁠(area)⁠의 π/4 ≈ 79%를 차지하고(무작위 점으로 π를 구하는 몬테카를로 방법⁠(Monte Carlo method)⁠의 그 비율), d = 3에서 52%, d = 10에서 0.25%입니다. d = 이면 입니다. 부피는 거의 모두 모서리 쪽에 있습니다. 또 부피는 표면 가까이에 몰립니다. 반지름 1인 공에서 두께가 ε=\varepsilon = 인 바깥 껍질이 차지하는 몫은, 안쪽 공의 부피가 (1−ε)d(1-\varepsilon)^d배이므로 1−(1−ε)d1-(1-\varepsilon)^d로, 지금 입니다.

그래서 공간을 촘촘히 덮으려면 필요한 점의 개수가 차원에 따라 기하급수로 늘어납니다. 축마다 10칸으로 나누면 10d10^d칸이 필요합니다. 미국의 응용수학자 리처드 벨먼이 동적 계획법⁠(dynamic programming)⁠을 다루며 이 어려움을 '차원의 저주'라고 불렀고, 흔히 1957년 책 《동적 계획법》이 처음으로 꼽힙니다. 고차원 적분⁠(integral)⁠에 격자 대신 몬테카를로 방법을 쓰는 까닭도 여기 있습니다. 무작위 점 n개의 오차는 차원과 상관없이 1/n1/\sqrt n에 비례해 줄어듭니다.

이어지는 곳. 반지름 1인 d차원 공의 부피 공식 πd/2/Γ(d/2+1)\pi^{d/2}/\Gamma(d/2+1)(Γ는 계승⁠(factorial)⁠을 정수⁠(integer)⁠가 아닌 수로 넓힌 감마 함수⁠(gamma function)⁠로, Γ(n+1)=n!\Gamma(n+1) = n!)은 가우스 적분⁠(Gaussian integral)⁠을 d번 곱하는 요령으로 얻고, 그것이 얼마나 빨리 0으로 가는지는 스털링 공식⁠(Stirling's formula)⁠이 알려 줍니다. d차원 표준 정규분포⁠(normal distribution)⁠에서 뽑은 점들은 밀도가 가장 높은 중심 근처가 아니라 반지름 d\sqrt d 근처의 껍질에 몰립니다. 반지름의 표준편차⁠(standard deviation)⁠는 d가 커져도 약 0.7에 머물러서, 껍질은 반지름에 비하면 점점 얇아집니다. 다행히 실제 데이터는 고차원 공간 속 낮은 차원의 곡면 근처에 놓인 경우가 많아서, 주성분 분석⁠(principal component analysis)⁠이나 그것을 비선형으로 넓힌 오토인코더⁠(autoencoder)⁠ 같은 차원 축소가 저주를 누그러뜨립니다. 마할라노비스 거리⁠(Mahalanobis distance)⁠처럼 공분산⁠(covariance)⁠을 추정해야 하는 방법은 차원이 높을수록 자료가 훨씬 많이 필요합니다. 자료에 비해 변수가 많으면 모형이 우연한 무늬까지 맞추기 쉬워 과적합⁠(overfitting)⁠의 위험도 커집니다.

이 개념이 나오는 큰 생각근사와 오차

이 개념이 나오는 긴 글

거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다. 계산언어학 말을 세는 기계 문법은 규칙일까, 확률일까? 파니니의 문법에서 촘스키의 위계, 섀넌의 영어 엔트로피, 오늘날의 언어 모델까지. 통신과 잡음 잡음 너머로 대서양 바닥의 케이블은 왜 신호를 뭉갰을까? 잡음이 있어도 오류 없이 보낼 수 있다는 섀넌의 정리와, 그 한계를 50년 동안 쫓은 부호들. 신경망과 기계 학습 배우는 기계 예를 보여 주면 규칙을 스스로 찾는 기계. 1958년의 퍼셉트론에서 오늘의 심층 신경망까지, 그 밑바닥에는 미분과 연쇄법칙이 있다. 언어 모델 다음 단어를 맞히는 기계 다음 낱말을 짐작하는 일만으로 어디까지 갈 수 있을까? 마르코프의 글자 세기에서 섀넌의 추측 게임, 트랜스포머와 규모의 법칙, 사람의 선호까지. 밑바닥에는 확률의 곱셈 규칙과 로그 하나가 있고, 그 수학은 모델이 왜 그럴듯하게 틀리는지도 말해 준다. 반환과 동적 계획법 같은 계산, 다른 덧셈 가장 짧은 길, 길의 가짓수, 가장 그럴듯한 해석, 갈 수 있는지 없는지. 따로 태어난 알고리즘들이 사실은 한 계산이고, 달라지는 것은 더하기와 곱하기 자리에 무엇을 넣느냐뿐이다. 그렇게 바꿔 넣어도 되는 까닭은 분배법칙 하나다.

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념