logo

차원의 저주 📂데이터과학

차원의 저주

정의 1

주로 유클리드 공간 Rd\mathbb{R}^{d} 에서, 어떤 문제를 풀기 위한 메모리의 양이나 연산 횟수가 차원 dd 에 따라 지수적으로 커지는 것을 차원의 저주curse of dimensionality라 한다.

설명

많은 문제에서 차원이 커진다는 것은 고려하는 변수가 늘어난다는 것이다. 예를 들어 어떤 화학물질의 순도 cc모델 ff 와 산소농도 xxc=f(x)c = f(x) 와 같이 나타난다면, xx 의 값을 n=10n = 10 개 정도 바꿔 계산해보면서 cc 가 어디에서 최대화되는지 파악하는 것은 그다지 어려운 일이 아니다. 그러나 여기에 탄소량도 yy 가 추가적으로 고려된다면 c=f(x,y)c = f(x, y) 는 평면 상에서 n2=100n^{2} = 100 번의 계산을 요구하고, 온도 zz 까지 고려되면 n3=1000n^{3} = 1000 번의 계산을 해야한다. 이처럼 계산의 정밀도에 영향을 미칠 nn 을 줄일 수 없는데, 차원이 늘어감에 따라 계산량이 너무 크게 증가할 때 우리는 ‘차원의 저주를 받고 있다’고 말한다.

머신러닝 등에서 차원의 저주는 고차원 공간을 다루면서 학습을 위한 데이터가 오히려 부족해지는 현상을 말하기도 한다. 이는 언뜻 위의 정의와 관계 없어보이지만, 차원이 늘어나면서 ‘제대로 된 학습’을 위한 데이터가 실제로 존재했다면 그 용량이 상당했을 것이고 본질적으로는 같은 이야기가 된다.

차원의 저주를 극복하는 방법은 문제와 데이터에 따라 천차만별이겠지만, 보편적으로는 주성분 분석과 같은 차원 축소 같은 수단이 가장 먼저 고려된다.


  1. Breaking the Curse of Dimensionality, Or How to Use SVD in Many Dimensions I. V. Oseledets and E. E. Tyrtyshnikov SIAM Journal on Scientific Computing 2009 31:5, 3744-3759 https://doi.org/10.1137/090748330 ↩︎