이번 문서의 목표: 차원이 늘어날수록 데이터 공간이 어떻게 희소해지고 거리 개념이 왜 무의미해지는지 실제 숫자로 계산해 설명하고, 차원 축소가 필요한 이유와 정보 손실 사이의 트레이드오프를 말할 수 있다.
차원이란 무엇이고 왜 문제가 되는가
왜 필요한가
머신러닝에서 하나의 데이터는 여러 개의 특징(feature, 06편에서 다룬 데이터의 속성)으로 표현된다. 예를 들어 고객 한 명을 “나이, 소득, 방문 횟수” 3개 특징으로 표현하면 3차원 공간의 점 하나가 된다. 그런데 실제 데이터에는 특징이 수십, 수백, 심지어 수만 개(예: 유전자 발현량, 이미지의 픽셀값)에 이르기도 한다. 특징이 하나 늘어날 때마다 데이터가 놓이는 공간의 차원(dimension)도 하나씩 늘어나는데, 직관과 다르게 차원이 늘어날수록 데이터 분석이 오히려 더 어려워지는 여러 현상이 나타난다. 이를 통틀어 차원의 저주(curse of dimensionality)라 부른다.
쉽게 말하면: 차원의 저주는 “특징이 많아질수록 데이터가 텅 빈 공간에 듬성듬성 흩어지고, 가깝고 먼 것의 구분마저 흐려지는” 현상이다.
정의
차원(dimension)은 데이터 한 건을 표현하는 데 쓰이는 특징의 개수다. 특징이 개면 데이터는 차원 공간의 한 점으로 표현되고, 이 를 흔히 차원 수라 부른다. 03편에서 다룬 벡터의 길이(원소 개수)가 바로 이 에 해당한다.
첫 번째 문제: 데이터의 희소성
왜 필요한가
같은 개수의 데이터라도, 차원이 늘어나면 그 데이터를 담을 공간의 부피가 훨씬 빠르게 커진다. 공간은 넓어지는데 데이터 개수는 그대로라면, 데이터들 사이의 빈틈이 급격히 넓어질 수밖에 없다. 이 현상을 희소성(sparsity, 데이터가 듬성듬성 흩어져 있는 정도)이라 한다.
계산 예제: 한 변의 길이가 1인 정육면체의 “가장자리 껍질”
한 변의 길이가 1인 차원 정육면체(하이퍼큐브, hypercube)를 생각해 보자. 이 정육면체의 각 변에서 가장자리로부터 폭 (엡실론, 여기서는 가장자리 껍질의 두께)만큼을 “가장자리 껍질”로 보고, 그 껍질을 제외한 중심부의 부피 비율을 계산해 보자. 각 축 방향으로 가장자리 씩을 양쪽에서 잘라내면 중심부의 한 변의 길이는 이 되고, 차원에서 부피는 각 축의 길이를 번 곱한 값이다.
- : 차원 정육면체에서 가장자리 껍질을 제외한 중심부의 부피 비율(전체 부피를 1로 뒀을 때)
- : 을 번 곱한 값
이 값을 차원 별로 직접 계산하면 다음과 같다.
| 차원 | 중심부 부피 비율 | 가장자리 껍질 비율 |
|---|---|---|
| 1 | 0.8 | 0.2 |
| 5 | 약 0.328 | 약 0.672 |
| 10 | 약 0.107 | 약 0.893 |
| 50 | 약 0.0000014 | 약 0.9999986 |
결과 해석
차원이 1일 때는 전체 부피의 80퍼센트가 중심부에 남아 있지만, 차원이 50만 되어도 중심부에 남는 부피는 전체의 0.0001퍼센트도 되지 않는다. 다시 말해 차원이 조금만 커져도 정육면체의 부피는 거의 전부가 “가장자리 껍질”에 몰리고, 중심부는 사실상 텅 비게 된다. 이는 고차원 공간에서는 데이터가 아무리 많아도 공간 전체를 고르게 채우지 못하고, 특히 공간의 중심(전형적인 값 근처)에는 데이터가 거의 존재하지 않게 된다는 뜻이다. 그래서 저차원에서는 데이터 100개로도 충분했던 분석이, 차원이 늘어나면 같은 밀도를 유지하기 위해 기하급수적으로 더 많은 데이터가 필요해진다.
자주 틀리는 점
“데이터를 더 많이 모으면 차원의 저주를 항상 해결할 수 있다”는 생각은 절반만 맞다. 차원이 늘어날 때 필요한 데이터 양은 차원 수에 대해 지수적으로(exponentially) 증가하므로, 현실적으로 감당 가능한 수준을 빠르게 넘어선다. 그래서 데이터를 무한정 늘리는 것보다, 정말 필요한 특징만 추리거나 차원을 줄이는 접근(17편의 PCA·LDA)이 함께 필요하다.
두 번째 문제: 거리 개념의 붕괴
왜 필요한가
K-NN(12편), K-means(14편)처럼 “가까운 것”과 “먼 것”을 구분하는 거리 기반 알고리즘은 데이터 사이의 거리가 의미 있게 차이 날 때 잘 작동한다. 그런데 차원이 아주 커지면, 거리 기반 알고리즘이 의존하는 “가깝다·멀다”의 구분 자체가 흐려지는 현상이 나타난다. 이를 거리 집중 현상(distance concentration)이라 한다.
쉽게 말하면: 차원이 아주 많아지면 모든 점들이 서로 “거의 비슷하게 멀어져서”, 어느 점이 더 가까운지 구분하기 어려워진다.
계산 예제: 무작위 두 점 사이의 기댓값 거리
과 사이에서 균등하게(uniform) 무작위로 뽑은 좌표를 갖는 두 점을 차원 공간에서 비교해 보자. 각 축에서 두 점의 좌표 차이의 제곱의 기댓값(평균적으로 기대되는 값)은 이라는 것이 균등분포의 성질로 알려져 있다. 개의 축이 있으므로, 두 점 사이의 (제곱한) 거리의 기댓값은 각 축의 기여를 모두 더한 값이다.
- : 기댓값(평균적으로 기대되는 값)을 나타내는 기호
- : 차원 수
- : 각 축 하나에서 균등분포를 따르는 두 좌표 차이의 제곱의 기댓값
이 공식으로 차원별 거리의 기댓값(제곱근을 취한 값)을 계산해 보자.
결과 해석
차원이 커질수록 두 점 사이의 평균 거리(기댓값)는 계속 커진다는 것을 알 수 있다. 그런데 문제는 거리의 절대적인 크기가 아니라 거리들 사이의 상대적인 차이다. 통계적으로, 차원이 커질수록 가장 가까운 점까지의 거리와 가장 먼 점까지의 거리의 차이가 평균 거리에 비해 상대적으로 점점 작아진다는 사실이 알려져 있다. 즉 고차원에서는 “이 점이 저 점보다 확실히 더 가깝다”고 말할 수 있는 여지가 점점 줄어들고, 모든 점이 서로 “거의 똑같이 멀게” 느껴지는 상태에 가까워진다. 이렇게 되면 거리를 기준으로 이웃을 찾는 K-NN이나 군집 중심을 찾는 K-means 같은 알고리즘의 가정 자체가 흔들리게 된다.
자주 틀리는 점
“차원이 커지면 거리가 커지기만 할 뿐 문제는 없다”는 설명은 핵심을 놓친 것이다. 문제의 본질은 거리의 절댓값이 커지는 것 자체가 아니라, 거리들 사이의 상대적인 구분력이 사라진다는 데 있다. 시험에서는 “고차원에서는 최근접 이웃과 최원접 이웃의 거리 차이가 상대적으로 작아져 거리 기반 알고리즘의 성능이 떨어질 수 있다”는 방향으로 이 현상을 설명하는 문장이 옳은 설명으로 나온다는 점을 기억해야 한다.
차원 축소가 필요한 이유
정의
차원 축소(dimensionality reduction)는 원래의 특징 개수 를 더 적은 개수 ()로 줄이면서도, 데이터가 갖고 있던 중요한 정보(패턴·분산·구조)는 최대한 보존하려는 기법이다. 대표적으로 17편에서 다룰 PCA(주성분분석, 분산을 최대한 보존하는 새로운 축을 찾는 방법)와 LDA(선형판별분석, 클래스 간 분리를 최대화하는 축을 찾는 방법)가 있다.
차원 축소의 효과
- 계산 비용 감소: 특징이 줄어들면 모델 학습·예측에 필요한 연산량도 함께 줄어든다.
- 과적합 위험 완화: 19편에서 다룰 과적합은 특징 수에 비해 데이터가 상대적으로 부족할 때 심해지기 쉬운데, 차원을 줄이면 이 비율이 개선된다.
- 시각화: 사람은 2
3차원까지만 눈으로 볼 수 있으므로, 고차원 데이터를 23차원으로 축소하면 산점도 등으로 데이터 구조를 직접 관찰할 수 있다. - 잡음(noise) 제거: 예측에 별로 기여하지 않는 특징을 줄이면, 그 특징이 갖고 있던 잡음의 영향도 함께 줄어드는 효과가 있다.
정보 손실과 해석성의 트레이드오프
차원 축소는 공짜가 아니다. 원래 특징 개를 개로 줄이는 과정에서, 그 특징들이 갖고 있던 정보의 일부는 반드시 손실된다. 특히 PCA처럼 원래 특징들을 조합해 새로운 축을 만드는 방식은, 축소된 각 축이 “소득”이나 “나이”처럼 원래 갖고 있던 명확한 의미를 잃고 여러 특징이 뒤섞인 추상적인 값이 되어 해석하기 어려워진다는 대가를 치른다. 그래서 차원 축소는 “정보를 얼마나 유지하면서, 해석성과 계산 효율을 얼마나 얻을 것인가” 사이의 트레이드오프(trade-off, 하나를 얻으면 다른 하나를 어느 정도 포기해야 하는 관계)를 항상 고려해 적용해야 한다.
자주 틀리는 점
“차원 축소는 특징을 그냥 몇 개 골라서 버리는 것이다”는 정확한 설명이 아니다. 특징을 그대로 몇 개만 고르는 방법(특징 선택, feature selection)과, 여러 특징을 수학적으로 조합해 새로운 축을 만드는 방법(특징 추출, feature extraction, PCA가 대표적)은 서로 다른 접근이다. 차원 축소라는 큰 범주 안에 이 두 접근이 함께 포함된다는 점, 그리고 PCA는 특징을 “버리는” 것이 아니라 “재조합”하는 방식이라는 점을 구분해서 알아 둬야 한다.
핵심 정리
- 차원의 저주는 특징(차원) 수가 늘어날수록 데이터가 공간에 희소하게 흩어지고, 거리 기반 구분력이 약해지는 현상을 통칭한다.
- 한 변의 길이가 1인 정육면체에서 가장자리 폭 0.1을 제외한 중심부 부피는 로 계산되며, 차원이 커질수록 이 값은 급격히 0에 가까워져 중심부가 사실상 텅 비게 된다.
- 균등분포를 따르는 두 점 사이 거리의 기댓값은 차원에 비례해 커지지만(의 제곱근), 거리들 사이의 상대적인 차이는 오히려 줄어들어 최근접·최원접 이웃 구분이 흐려진다.
- 차원 축소는 계산 비용 감소·과적합 완화·시각화·잡음 제거 등의 장점이 있지만, 정보 손실과 해석성 저하라는 트레이드오프를 동반한다.