본문 바로가기
데이터 과학 수학

차원의 저주(Curse of Dimensionality), 데이터가 많아질수록 성능이 떨어지는 이유와 수학적 해법

by dexien 2026. 4. 12.

차원의 저주(Curse of Dimensionality)를 처음 실감한 건 변수를 계속 추가하다가 모델 성능이 오히려 반 토막 났을 때였습니다. 변수가 많을수록 모델이 더 많은 정보를 볼 수 있으니 당연히 좋아질 거라고 생각했습니다. 하지만 결과는 반대였습니다. 변수를 줄이고 나서야 성능이 회복됐습니다.

차원이 높아질수록 왜 모델이 오히려 망가지는지, 그 이유가 수학적으로 명확합니다. 데이터가 고차원 공간에서 어떻게 퍼지는지를 이해하면 왜 변수 선택과 차원 축소가 선택이 아닌 필수인지 납득이 됩니다. 오늘은 그 원리를 실제 숫자와 함께 따라가 보겠습니다.

차원의 저주 Curse of Dimensionality 데이터가 많아질수록 성능이 떨어지는 이유와 수학적 해법
차원의 저주(Curse of Dimensionality), 데이터가 많아질수록 성능이 떨어지는 이유와 수학적 해법

차원의 저주란 무엇인가 — 변수가 늘수록 생기는 역설

변수가 1개면 데이터는 1차원 선 위에 있습니다. 2개면 2D 평면, 3개면 3D 공간입니다. 여기까지는 변수가 늘수록 모델이 더 풍부한 정보를 볼 수 있습니다. 문제는 차원이 수십, 수백으로 넘어갈 때 생깁니다.

차원이 높아질수록 같은 수의 데이터가 더 넓은 공간에 퍼집니다. 데이터 밀도가 급격히 낮아집니다. 밀도가 낮아지면 모델이 학습할 패턴이 줄어들고, 빈 공간이 많아져서 새로운 데이터에 대한 예측이 부정확해집니다. 직관과 반대되는 결과가 나오는 이유입니다.

1차원 [0,1] 구간에 10개 데이터: 밀도 = 10개/1
2차원 [0,1]² 공간에 10개 데이터: 밀도 = 10개/1 = 훨씬 희박
10차원 [0,1]¹⁰ 공간에 10개 데이터: 밀도 = 10개/1 = 거의 0

같은 10개 데이터가 차원이 높아질수록 점점 더 희박해진다

10차원 공간을 1차원과 같은 밀도로 채우려면:
10개 → 10^10개 (100억 개) 필요

이게 차원의 저주입니다. 차원이 10 늘어날 때마다 필요한 데이터가 10배씩 늘어납니다. 현실에서 이 정도 데이터를 모으는 건 불가능합니다. 그래서 변수가 많아지면 모델이 망가집니다.


수학적으로 따져보기 — 기하급수적으로 팽창하는 빈 공간

이 현상을 수학적으로 가장 명확하게 보여주는 게 단위 정육면체 안에서 구가 차지하는 비율입니다.

d차원 단위 구의 부피 / 단위 정육면체 부피 비율:

2차원: 원/정사각형 = π/4 ≈ 78.5%
3차원: 구/정육면체 ≈ 52.4%
5차원: ≈ 16.4%
10차원: ≈ 0.25%
20차원: ≈ 0.000002%

→ 차원이 높아질수록 구 바깥(모서리)에
→ 거의 모든 부피가 쏠린다

이게 무슨 의미냐면, 고차원 공간에서 무작위로 데이터를 뽑으면 대부분이 공간의 중심이 아니라 외곽과 모서리에 몰린다는 뜻입니다. 우리가 수집한 데이터가 공간 전체를 대표하는 게 아니라 아주 특이한 외곽 지점들만 샘플링한 꼴이 됩니다. 이 데이터로 학습한 모델은 공간의 대부분을 본 적이 없으니 새로운 데이터에 대해 잘못된 예측을 할 수밖에 없습니다.


거리가 사라지는 현상 — KNN이 고차원에서 망가지는 이유

차원의 저주가 가져오는 가장 치명적인 문제 중 하나가 거리 개념의 붕괴입니다. 고차원 공간에서는 임의의 두 데이터 포인트 사이의 거리가 모두 비슷해지는 현상이 발생합니다.

100개 랜덤 데이터 포인트 간 거리 분포:

2차원: 최소 거리 0.05 ~ 최대 거리 1.40 (차이 큼)
10차원: 최소 거리 1.20 ~ 최대 거리 1.65 (차이 줄어듦)
100차원: 최소 거리 9.80 ~ 최대 거리 10.10 (차이 거의 없음)

→ 가장 가까운 이웃과 가장 먼 이웃의 거리가
→ 차원이 높아질수록 구분이 안 됨

KNN(K-Nearest Neighbors)은 가까운 이웃 데이터의 라벨로 예측합니다. 그런데 고차원에서는 모든 데이터가 비슷하게 멀리 있으니 "가장 가까운 이웃"이라는 개념이 의미를 잃습니다. 클러스터링 알고리즘도 마찬가지입니다. 거리 기반으로 작동하는 모든 알고리즘이 고차원에서 성능이 떨어지는 이유입니다.


차원의 저주와 과적합의 연결

데이터 밀도가 낮아지면 모델은 노이즈를 패턴으로 오해하기 시작합니다. 데이터가 희박한 공간에서는 우연히 배치된 몇 개의 점이 마치 의미 있는 패턴처럼 보입니다. 모델은 이 우연한 패턴에 맞춰 결정 경계를 만들어 버립니다.

결과적으로 훈련 데이터에서는 100점이지만 새로운 데이터에서는 크게 틀립니다. 차원의 저주가 과적합을 유발하는 가장 강력한 원인 중 하나입니다. 변수를 무작정 추가하면 성능이 올라가는 게 아니라 오히려 과적합이 심해지는 이유가 여기 있습니다.

변수 10개, 데이터 1000개: 차원 대비 데이터 충분 → 정상 학습
변수 100개, 데이터 1000개: 공간이 너무 넓음 → 과적합 시작
변수 1000개, 데이터 1000개: 데이터가 공간을 전혀 못 채움 → 심각한 과적합

경험칙: 변수 수 대비 데이터 수가 최소 10배 이상이어야 안전

매니폴드 가설 — 고차원 데이터의 본질은 저차원에 있다

차원의 저주를 극복하는 수학적 근거가 매니폴드 가설(Manifold Hypothesis)입니다. 고차원 데이터라도 실제로 의미 있는 변동은 훨씬 낮은 차원의 부분 공간(Subspace)에 집중되어 있다는 가설입니다.

예를 들어 28×28 픽셀 손글씨 이미지는 784차원입니다. 하지만 실제로 "숫자 모양"을 결정하는 변동은 훨씬 적은 차원으로 표현됩니다. 획의 두께, 기울기, 곡률 정도의 몇 가지 요소가 대부분의 변동을 설명합니다. 784차원처럼 보이지만 실질적인 정보는 훨씬 낮은 차원에 있다는 겁니다.

딥러닝 모델이 고차원 데이터에서도 잘 동작하는 이유가 이 매니폴드 가설 덕분입니다. 여러 층의 변환을 거치면서 고차원 입력에서 핵심 매니폴드를 찾아내는 과정을 학습합니다. t-SNE나 UMAP 같은 시각화 도구도 이 매니폴드를 2D로 펼쳐서 보여주는 방식으로 작동합니다.


차원의 저주를 극복하는 방법들

차원의 저주에 대응하는 방법은 크게 세 가지 방향입니다. 변수를 줄이거나, 데이터를 늘리거나, 모델에 규제를 걸거나입니다.

전략 대표 기법 원리
특징 선택 상관계수 분석, L1 규제 중요하지 않은 변수를 직접 제거해 차원을 줄임
선형 차원 축소 PCA 분산이 최대인 방향으로 투영해 핵심 정보만 보존
비선형 차원 축소 t-SNE, UMAP, Autoencoder 복잡한 고차원 매니폴드를 저차원으로 펼침
데이터 증강 GAN, SMOTE 빈 공간을 채우기 위해 합성 데이터 생성
규제 강화 L1/L2 규제, Dropout 가중치가 특정 변수에 과도하게 집중하지 않게 제어

이 연재에서 다룬 개념들이 여기서 다시 연결됩니다. PCA는 공분산 행렬의 고윳값 분해로 핵심 방향을 찾고, L1 규제는 불필요한 변수의 가중치를 0으로 만들어 차원을 줄이고, Dropout은 특정 뉴런 의존도를 낮춰 과적합을 막습니다. 차원의 저주는 독립적인 문제가 아니라 이 모든 기법들이 궁극적으로 해결하려는 공통의 적입니다.

변수를 추가하기 전에 "이 변수가 정말 필요한가"를 먼저 따지는 습관이 좋은 모델을 만드는 첫걸음입니다. 버리는 것이 때로는 가장 큰 채움이 됩니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름