1. 차원 축소란?
차원 축소는 고차원 데이터(변수가 매우 많은 데이터)를 더 낮은 차원의 공간으로 변환하거나, 중요한 변수만 남기는 기법입니다.
크게 두 가지 접근이 있습니다.
| 특징 선택 (Feature Selection) | 기존 변수 중 중요한 것만 고름 | 단계적 선택, LASSO, 상호정보량 기반 선택 |
| 특징 추출 (Feature Extraction) | 기존 변수들을 조합해 새로운 저차원 변수 생성 | PCA, t-SNE, UMAP, Autoencoder |
여기서는 “왜 차원을 줄여야 하는가”에 초점을 맞춥니다.
2. 차원 축소의 필요성 – 전체 개요
고차원 데이터는 겉으로 보기에는 “정보가 많다”고 생각하기 쉽지만, 실제로는 다음과 같은 심각한 문제를 일으킵니다.
- 계산량이 기하급수적으로 증가
- 모델이 노이즈까지 학습해 과적합
- 거리와 유사도 개념이 붕괴
- 모델 해석이 거의 불가능
- 필요한 데이터 양이 폭발적으로 증가
이 문제들을 해결하기 위해 차원 축소가 필수적으로 요구됩니다. 아래에서 네 가지 측면을 하나씩 자세히 살펴보겠습니다.
3. 복잡도 축소 (Complexity Reduction)
3.1 계산 복잡도 측면
변수가 $ p $개일 때, 많은 알고리즘의 시간·공간 복잡도는 $ p $에 대해 선형 이상, 심하면 지수적으로 증가합니다.
| 선형 회귀 (정규방정식) | $ O(np^2 + p^3) $ | $ p $가 2배 → 시간은 약 8배 이상 |
| 커널 방법 (SVM 등) | $ O(n^2p) $ ~ $ O(n^3) $ | 메모리와 시간 모두 급증 |
| 거리 기반 (k-NN, 군집) | $ O(n^2p) $ | 거리 계산 자체가 매우 비싸짐 |
| 신경망 | 파라미터 수 ∝ 입력 차원 | 학습 시간과 메모리 폭증 |
차원이 수백~수천 차원이 되면, 단순히 “느리다”를 넘어 현실적으로 학습이 불가능한 수준이 됩니다.
3.2 모델 복잡도 측면
- 파라미터가 많아질수록 모델의 가설 공간(Hypothesis Space)이 커집니다.
- 가설 공간이 커지면 모델이 표현할 수 있는 함수의 범위가 넓어지지만, 동시에 노이즈를 학습할 여지도 커집니다.
- 차원 축소는 이 가설 공간을 의도적으로 제한하여 더 단순한(덜 복잡한) 모델을 만들게 합니다.
정리: 차원 축소는 “계산을 빠르게 하는 것”과 “모델을 본질적으로 단순하게 만드는 것” 두 가지 의미에서 복잡도를 줄입니다.
4. 과적합 방지 (Overfitting Prevention)
4.1 왜 고차원에서 과적합이 심해지는가?
통계학의 핵심 원리 중 하나:
“파라미터가 많을수록, 주어진 데이터에 모델을 더 잘 맞출 수 있다.”
차원이 높아지면:
- 모델이 학습 데이터의 노이즈까지 완벽하게 외울 수 있는 능력이 급격히 증가합니다.
- 특히 $ p \approx n $이거나 $ p > n $인 경우(고차원·소표본), OLS 같은 방법은 거의 완벽하게 학습 데이터를 통과하는 모델을 만들 수 있습니다.
- 그 결과 훈련 오차는 매우 낮지만, 테스트 오차는 매우 높아지는 전형적인 과적합이 발생합니다.
4.2 차원 축소가 과적합을 막는 메커니즘
- 유효 파라미터 수 감소 → 모델이 표현할 수 있는 함수의 복잡도가 제한됨
- 노이즈 변수의 영향 제거/축소
- 특징 선택: 노이즈 변수를 아예 제거
- 특징 추출(PCA 등): 분산이 작은(정보량이 적은) 방향을 버림
- 정규화 효과 Ridge, LASSO, Elastic Net 등은 사실상 “부드러운 차원 축소”로 볼 수 있습니다. 계수를 강제로 줄이거나 0으로 만들어 과적합을 억제합니다.
- 편향-분산 트레이드오프 개선 차원을 줄이면 편향(Bias)은 조금 증가할 수 있지만, 분산(Variance)이 크게 감소하여 전체 예측 오차가 줄어드는 경우가 많습니다.
5. 해석력 확보 (Interpretability)
5.1 고차원 모델의 해석 불가능성
변수가 50개만 되어도 이미 해석이 어렵습니다. 200개, 1000개가 되면 “어떤 변수가 얼마나 중요한지”, “변수 간 상호작용이 어떻게 되는지”를 사람이 이해하기 거의 불가능해집니다.
특히 블랙박스 모델(딥러닝, 복잡한 앙상블 등)은 차원이 높을수록 해석이 더욱 힘들어집니다.
블랙박스 모델이란?
블랙박스 모델(Black-box Model)이란, 내부 작동 원리를 사람이 쉽게 이해할 수 없는 모델을 말합니다.
입력(X)을 넣으면 출력(Y)이 나오는 것은 알 수 있지만, “왜 그런 결과가 나왔는지”를 모델 내부에서 직접적으로 설명하기 어려운 상태를 의미합니다.
1. 쉽게 비유하면
- 화이트박스(유리박스) 모델: 투명한 상자 → 안을 들여다보면 어떤 계산이 어떻게 이루어지는지 다 보임
- 블랙박스 모델: 검은 상자 → 입력과 출력만 보이고, 안에서 무슨 일이 일어나는지 알 수 없음
2. 화이트박스 vs 블랙박스 비교
| 해석 가능성 | 높음 | 낮음 |
| 내부 구조 | 사람이 직접 이해 가능 | 복잡해서 이해하기 어려움 |
| 대표 예시 | 선형 회귀, 로지스틱 회귀, 결정 트리(깊이가 얕을 때), LASSO | 딥러닝(신경망), 복잡한 랜덤 포레스트, 그래디언트 부스팅, SVM(복잡한 커널) |
| 성능 | 상대적으로 낮을 수 있음 | 대체로 높은 예측 성능 |
| 신뢰/설명 | 쉬움 | 어려움 |
3. 대표적인 블랙박스 모델 예시
- 딥러닝 (Deep Neural Network) 층이 많고 파라미터가 수백만~수억 개인 경우, 각 뉴런이 어떤 역할을 하는지 사람이 추적하기 거의 불가능
- 복잡한 앙상블 모델
- 랜덤 포레스트 (트리가 수백~수천 개)
- XGBoost, LightGBM, CatBoost (트리가 매우 많고 깊을 때)
- 커널 트릭을 쓴 SVM 고차원 특징 공간으로 매핑된 후의 결정 경계를 직접 해석하기 어려움
- 일부 복잡한 스태킹/블렌딩 모델
4. 왜 블랙박스라고 부르는가?
모델이 결정을 내리는 과정이 비선형적이고, 고차원적이며, 수많은 파라미터의 복잡한 조합으로 이루어지기 때문입니다.
예를 들어 딥러닝에서:
- 어떤 특성이 중요했는지
- 특성 간 상호작용이 어떻게 일어났는지
- 특정 예측이 나온 결정적인 이유가 무엇인지
를 모델 구조만 보고는 거의 알 수 없습니다.
5. 블랙박스 모델의 장단점
장점
- 예측 성능이 대체로 우수함
- 복잡한 패턴과 비선형 관계를 잘 포착함
- 이미지나 텍스트, 음성처럼 구조화된 데이터에서 특히 강함
단점
- 해석이 어려움 → “왜 이 대출을 거절했는지”, “왜 이 환자를 고위험군으로 분류했는지” 설명 불가
- 신뢰 문제 발생 (특히 의료, 금융, 법률, 채용 분야)
- 편향이나 오류를 발견하고 수정하기 어려움
- 규제 환경(EU AI Act 등)에서 사용이 제한될 수 있음
6. 블랙박스 문제의 해결 방향
완전히 화이트박스로 만들기는 어렵기 때문에, 최근에는 설명 가능한 AI (XAI, Explainable AI) 기법이 발전하고 있습니다.
대표적 방법:
- SHAP, LIME: 개별 예측에 대해 “어떤 변수가 얼마나 기여했는지” 사후 설명
- Feature Importance, Partial Dependence Plot
- Attention 시각화 (딥러닝)
- 본질적으로 해석 가능한 모델 다시 사용 (해석 가능한 트리, GAMs, Explainable Boosting Machine 등)
핵심 요약
블랙박스 모델 = 성능은 좋지만, “왜 그런 예측을 했는지”를 모델 자체로는 설명하기 어려운 모델
이전 대화에서 나온 차원 축소, LASSO, 특징 선택 등이 중요한 이유 중 하나도 바로 이 블랙박스 문제를 줄이고 해석력을 확보하기 위해서입니다.
5.2 차원 축소가 해석력을 높이는 방법
- 특징 선택: 정말로 중요한 변수만 남기기 때문에, “이 모델은 A, C, F 변수에 의해 결정된다”라고 명확히 말할 수 있습니다.
- 특징 추출 (PCA 등):
- 주성분이 “어떤 의미인지”를 원래 변수의 선형결합으로 해석할 수 있습니다.
- 예: 첫 번째 주성분이 “전반적인 소득 수준”, 두 번째가 “교육 수준과 직업의 조합” 등으로 의미 부여 가능.
- 시각화: 2~3차원으로 줄이면 산점도, 군집 구조, 이상치 등을 눈으로 확인할 수 있습니다. 이는 모델 해석의 출발점이 됩니다.
핵심: 차원 축소는 “정확한 예측”과 “사람이 이해할 수 있는 설명” 사이의 균형을 맞춰줍니다.
6. 차원의 저주 (Curse of Dimensionality) – 가장 근본적인 이유
차원의 저주는 고차원 공간에서 나타나는 기하학적·통계적 현상들을 통칭하는 말입니다. 차원 축소가 필요한 가장 본질적인 이유입니다.
6.1 공간의 부피가 기하급수적으로 증가
$ d $차원 단위 초입방체의 부피는 항상 1이지만,, 그 안의 단위 초구(hypersphere)의 부피 비율은 차원이 증가할수록 0에 수렴합니다.
즉, 고차원에서는 데이터의 대부분이 공간의 가장자리(모서리)에 존재하게 됩니다. 중심 부분은 거의 비어 있습니다.
6.2 데이터가 극도로 희소해짐 (Sparsity)
- 1차원: 구간 [0,1]을 0.1 간격으로 나누면 10칸 → 각 칸에 데이터가 들어가기 쉬움
- 2차원: 10×10 = 100칸
- 10차원: $ 10^{10} $칸
- 100차원: $ 10^{100} $칸 (관측 가능한 우주의 원자 수보다 많음)
→ 차원이 조금만 높아져도 대부분의 공간이 텅 비게 됩니다. 데이터가 공간에 골고루 퍼져 있다고 가정할 수 없게 됩니다.
6.3 거리의 의미가 사라짐 (Distance Concentration)
고차원에서는 임의의 두 점 사이의 거리가 거의 비슷해지는 현상이 발생합니다.
즉, “가깝다/멀다”는 개념이 무의미해집니다. k-NN, 군집분석, 커널 방법 등 거리에 의존하는 알고리즘이 거의 작동하지 않게 됩니다.
6.4 필요한 데이터 양이 지수적으로 증가
일정한 밀도를 유지하려면 차원이 1 증가할 때마다 필요한 데이터 수가 기하급수적으로 늘어나야 합니다. 현실에서는 데이터를 그만큼 모을 수 없기 때문에, 고차원에서는 항상 데이터 부족 상태에 놓이게 됩니다.
6.5 통계적 추정과 추론의 붕괴
- 공분산 행렬이 불안정해지거나 특이행렬이 됨
- 밀도 추정이 거의 불가능
- 신뢰구간이 극도로 넓어짐
- 가설 검정의 검출력 저하
7. 네 가지 측면을 관통하는 핵심 논리
| 복잡도 축소 | 차원이 높을수록 계산·모델 복잡도 폭증 | 계산량과 파라미터 수를 현실적인 수준으로 낮춤 |
| 과적합 방지 | 희소한 공간 + 과도한 파라미터 → 노이즈 학습 | 유효 차원을 줄여 분산을 감소시킴 |
| 해석력 확보 | 고차원에서는 인간이 구조를 파악 불가 | 중요한 구조만 남겨 사람이 이해 가능하게 함 |
| 차원의 저주 해소 | 근본 원인 | 공간을 다시 “의미 있는 저차원”으로 되돌림 |
8. 요약
차원 축소가 필요한 이유는 단순히 “변수가 많아서”가 아닙니다.
- 복잡도가 감당할 수 없을 정도로 커지고
- 과적합이 거의 필연적으로 발생하며
- 해석이 불가능해지고
- 그 모든 현상의 뿌리에 차원의 저주가 있기 때문입니다.
차원 축소 방법
① 요인분석 (Factor Analysis)
요인분석은 차원 축소의 대표적인 방법 중 하나로, 관측된 여러 변수들 사이에 존재하는 공통적인 잠재 구조(latent structure)를 찾아내어 변수의 수를 줄이는 기법입니다.
1. 요인분석의 목적
요인분석은 단순히 변수를 줄이는 것을 넘어, 다음과 같은 목적을 가지고 사용됩니다.
| 변수 축소 | 상관관계가 높은 여러 변수들을 소수의 요인(Factor)으로 요약하여 차원을 줄임 |
| 잠재 구조 파악 | 관측 변수 뒤에 숨겨진 공통 요인(잠재 변수)을 발견하고 그 의미를 해석 |
| 타당성 평가 | 특히 설문조사나 척도 개발에서 구성 타당도(Construct Validity)를 검증할 때 핵심적으로 사용 |
| 파생 변수 생성 | 추출된 요인 점수(Factor Score)를 새로운 변수로 만들어 후속 분석(회귀, 군집 등)에 사용 |
목적별 상세 설명
- 변수 축소 예: 20개의 설문 문항 → 4~5개의 요인으로 요약 → 이후 분석의 복잡도를 크게 낮출 수 있음
- 잠재 구조 파악 “이 변수들이 왜 서로 관련이 있는가?”에 대한 답을 찾음 예: ‘가격’, ‘품질’, ‘디자인’, ‘브랜드’ 문항들이 “제품 만족도”라는 잠재 요인을 공유한다고 해석
- 타당성 평가 연구자가 이론적으로 가정한 구성개념이 실제로 데이터에서 잘 나타나는지 검증 (특히 심리학, 교육학, 마케팅 연구에서 필수적으로 사용)
- 파생 변수 생성 요인점수를 계산하여 원래 변수 대신 사용 → 다중공선성 문제를 줄이면서도 정보를 보존
2. 요인분석의 특징
요인분석은 주성분분석(PCA)과 자주 비교되지만, 목적과 가정이 다릅니다.
| 공통분산에 초점 | 변수들의 공통 분산(common variance)만 분석 대상으로 삼음 (고유분산·오차분산은 제외) |
| 측정오차 고려 | 각 변수가 요인으로 설명되지 않는 부분(unique variance)을 인정함 |
| 잠재변수 모델링 | 관측 변수 = 잠재 요인 + 오차 형태로 모델을 세움 |
| 해석 중심 | 단순히 분산을 많이 설명하는 것이 아니라, 요인의 의미를 해석하는 것이 중요 |
| 회전(Rotation) 사용 | 요인 구조를 더 명확하게 만들기 위해 직교회전(Varimax 등)이나 사각회전(Oblimin 등)을 사용 |
| 가정 | 변수들이 연속형이고, 선형 관계를 가지며, 어느 정도 상관관계가 있어야 함 |
PCA와의 핵심 차이
- PCA: 전체 분산을 최대한 설명하는 방향으로 축을 만듦 (데이터 요약·압축 목적)
- 요인분석: 변수 간 상관의 원인을 설명하는 잠재 요인을 찾음 (구조 탐색·이론 검증 목적)
3. 요인분석의 종류
요인분석은 크게 목적에 따라 두 가지로 나뉘며, 세부적으로는 추출 방법과 회전에 따라 더 세분됩니다.
(1) 목적에 따른 분류 (가장 중요)
| 탐색적 요인분석 | EFA (Exploratory Factor Analysis) | 요인 구조를 미리 가정하지 않고 데이터에서 탐색 | 이론이 부족하거나 구조를 처음 파악할 때 |
| 확인적 요인분석 | CFA (Confirmatory Factor Analysis) | 연구자가 미리 가정한 요인 구조가 데이터와 맞는지 검증 | 이론이 있고, 척도의 타당도를 확인할 때 |
- EFA: “몇 개의 요인이 있을까? 어떤 변수가 어떤 요인에 묶일까?”를 데이터 중심으로 찾음
- CFA: “내가 생각한 이 구조가 실제로 맞는가?”를 통계적으로 검정 (구조방정식 모델의 일부)
(2) 요인 추출 방법에 따른 분류
| 주축요인법 (Principal Axis Factoring) | 공통분산만 사용하여 추출 | EFA에서 가장 전통적이고 많이 사용 |
| 최대우도법 (Maximum Likelihood) | 통계적 검정이 가능하고 적합도 지수를 제공 | 정규성 가정이 필요, CFA에서도 사용 |
| 주성분법 (Principal Component) | 전체 분산 사용 (사실상 PCA에 가까움) | 순수 요인분석보다는 차원축소 목적일 때 사용 |
| 최소제곱법 등 | 기타 방법들 | 사용 빈도는 상대적으로 낮음 |
(3) 요인 회전 방법에 따른 분류
요인을 추출한 후 해석을 쉽게 만들기 위해 회전을 합니다.
| 직교회전 (Orthogonal) | Varimax, Quartimax | 요인 간 상관을 0으로 가정 (해석이 간단) |
| 사각회전 (Oblique) | Oblimin, Promax | 요인 간 상관을 허용 (현실적으로 더 자연스러움) |
4. 요인분석 진행 시 주요 판단 기준 (참고)
- 표본 적절성: KMO 측도 (0.6 이상 권장), Bartlett의 구형성 검정
- 요인 수 결정: 고유값(Eigenvalue) > 1 규칙, 스크리 도표(Scree Plot), 평행분석 등
- 요인 적재값(Factor Loading): 보통 0.4~0.5 이상을 유의미하게 봄
- 공통성(Communality): 각 변수가 요인들에 의해 설명되는 비율
요약
요인분석은 “많은 변수들을 그냥 줄이는 것”이 아니라, 변수들 사이의 공통된 잠재 구조를 찾아 의미를 부여하면서 차원을 축소하는 방법입니다.
- 목적: 변수 축소 + 구조 파악 + 타당성 평가 + 파생변수 생성
- 핵심 특징: 공통분산 중심, 측정오차 인정, 해석 중시
- 주요 종류: 탐색적(EFA) vs 확인적(CFA)
주성분 분석 (Principal Component Analysis, PCA)
주성분 분석은 차원 축소의 가장 대표적이고 널리 사용되는 방법입니다. 고차원 데이터의 분산(정보량)을 최대한 보존하면서 서로 상관없는(직교하는) 소수의 새로운 변수(주성분)로 데이터를 변환하는 기법입니다.
1. 주성분 분석의 목적
| 차원 축소 | 많은 변수를 소수의 주성분으로 요약하여 데이터의 복잡도를 줄임 |
| 정보 보존 | 원래 데이터의 분산(변동성)을 최대한 유지하면서 차원을 줄임 |
| 다중공선성 해결 | 변수 간 상관관계가 높은 문제를 제거 (주성분들은 서로 직교) |
| 시각화 | 고차원 데이터를 2~3차원으로 줄여 산점도로 구조를 파악 |
| 노이즈 제거 | 분산이 작은 주성분을 버림으로써 노이즈를 어느 정도 제거 |
| 후속 분석 준비 | 회귀, 군집, 분류 등의 입력 변수로 주성분을 사용 |
2. 기본 원리
PCA의 핵심 아이디어는 다음과 같습니다.
“데이터를 가장 잘 설명하는(분산을 가장 많이 설명하는) 새로운 축을 찾자.”
- 첫 번째 주성분(PC1): 데이터의 분산을 가장 많이 설명하는 방향
- 두 번째 주성분(PC2): PC1과 직교하면서 남은 분산을 가장 많이 설명하는 방향
- 세 번째 주성분(PC3): 앞의 주성분들과 모두 직교하면서 그 다음으로 분산을 많이 설명하는 방향
- … 이 과정을 반복
수학적으로는 데이터의 공분산 행렬(또는 상관행렬)을 고유값 분해(Eigenvalue Decomposition)하거나 특이값 분해(SVD)하여 구합니다.
- 고유벡터(Eigenvector) → 주성분의 방향(축)
- 고유값(Eigenvalue) → 해당 주성분이 설명하는 분산의 크기
3. 주성분 분석의 진행 과정
- 데이터 표준화 (권장) 변수들의 단위가 다르면 분산이 큰 변수가 주성분을 지배하게 되므로, 평균 0, 표준편차 1로 표준화하는 것이 일반적입니다. (상관행렬을 사용하는 것과 동일)
- 공분산 행렬(또는 상관행렬) 계산
- 고유값 분해 고유값과 고유벡터를 구함
- 주성분 수 결정
- 고유값 > 1 인 주성분 선택 (Kaiser 기준)
- 스크리 도표(Scree Plot)에서 팔꿈치 지점 확인
- 누적 설명 분산 비율이 70~90% 이상이 되는 지점 선택
- 주성분 점수 계산 원래 데이터를 주성분 축으로 투영하여 새로운 좌표(주성분 점수)를 얻음
- 해석 각 주성분이 원래 변수들과 어떤 관련이 있는지 주성분 적재값(Loading)을 보고 해석
4. 주성분 분석의 주요 특징
| 전체 분산 사용 | 공통분산뿐만 아니라 고유분산까지 모두 포함하여 분석 (요인분석과 차이) |
| 직교성 | 주성분들은 서로 완전히 상관관계가 없음 (상관계수 = 0) |
| 분산 최대화 | 각 주성분은 남은 분산을 최대한 설명하도록 추출됨 |
| 탐색적·기술적 방법 | 가설 검정보다는 데이터 요약과 구조 파악에 초점 |
| 선형 변환 | 원래 변수들의 선형결합으로 주성분이 만들어짐 |
| 가정에 상대적으로 둔감 | 정규성 가정이 없어도 사용 가능 (다만 해석 시 주의) |
5. 주성분 수 결정 방법
가장 많이 사용하는 기준들입니다.
- 고유값 기준 (Kaiser 기준): 고유값 > 1인 주성분만 선택
- 스크리 도표: 고유값이 급격히 감소하다가 완만해지는 지점(팔꿈치) 이전까지 선택
- 누적 설명 분산 비율: 전체 분산의 70%, 80%, 90% 등을 설명하는 수준까지 선택
- 평행 분석(Parallel Analysis): 더 정확한 방법으로 평가되기도 함
6. 요인분석(Factor Analysis)과의 비교
| 목적 | 분산을 최대한 보존하며 차원 축소 | 잠재된 공통 요인을 찾아 구조 파악 |
| 사용하는 분산 | 전체 분산 | 공통 분산만 사용 |
| 오차 처리 | 오차를 별도로 분리하지 않음 | 측정오차(고유분산)를 인정 |
| 결과물의 성격 | 데이터 요약·압축 | 잠재 구조 해석·이론 검증 |
| 주성분/요인의 관계 | 서로 직교 | 직교 또는 상관 허용(사각회전) |
| 주요 사용처 | 차원 축소, 시각화, 다중공선성 제거 | 척도 개발, 구성 타당도 검증 |
간단히 말해:
- PCA → “데이터를 잘 요약해서 줄이자”
- 요인분석 → “변수들 뒤에 숨은 공통 원인을 찾자”
7. 장점과 단점
장점
- 개념이 명확하고 계산이 비교적 빠름
- 다중공선성을 효과적으로 제거
- 시각화에 매우 유용
- 가정이 적어 다양한 데이터에 적용 가능
단점
- 주성분의 해석이 항상 쉽지 않음 (원래 변수의 선형결합이라 의미가 모호할 수 있음)
- 비선형 구조를 잘 포착하지 못함 (비선형 차원 축소 기법인 t-SNE, UMAP 등과 차이)
- 분산이 큰 방향이 반드시 “중요한” 정보라는 보장은 없음
8. 요약
주성분 분석(PCA)은 고차원 데이터의 분산을 최대한 유지하면서 서로 독립적인 소수의 새로운 축(주성분)으로 데이터를 변환하는 선형 차원 축소 기법입니다.
- 가장 널리 쓰이는 차원 축소 방법
- 다중공선성 해결, 시각화, 노이즈 감소, 후속 분석 준비에 유용
- 요인분석과 목적이 다르므로 상황에 맞게 선택해야 함
특이값 분해 (Singular Value Decomposition, SVD)
특이값 분해는 행렬을 특정한 구조로 분해하는 대표적인 행렬 분해 기법입니다. 선형대수학에서 가장 중요하고 유용한 도구 중 하나로, 주성분 분석(PCA), 차원 축소, 추천 시스템, 이미지 압축 등 다양한 분야에서 핵심적으로 사용됩니다.
- 고유벡터: 행렬을 곱해도 방향이 바뀌지 않고 크기만 변하는 특별한 벡터
- 고유값: 그 고유벡터가 행렬을 곱했을 때 늘어나거나 줄어드는 배율
- 특이값: 행렬을 특이값 분해했을 때 나오는, 데이터를 늘리거나 줄이는 강도(크기)를 나타내는 0 이상의 값
1. 특이값 분해의 정의
임의의 $ m \times n $ 행렬 $ A $는 다음과 같이 분해할 수 있습니다.
여기서
| $ U $ | $ m \times m $ | 좌특이벡터(left singular vectors)로 이루어진 직교행렬 |
| $ \Sigma $ | $ m \times n $ | |
| $ V $ | $ V $$ n \times n $ | 우특이벡터(right singular vectors)로 이루어진 직교행렬 |
| $ V^T $ | $ V $$ n \times n $ | V V 의 전치행렬 |
- $ U $의 열벡터들은 $ AA^T $의 고유벡터
- $ V $의 열벡터들은 $ A^T A $의 고유벡터
- $ \Sigma $의 대각 원소 $ \sigma_1 \geq \sigma_2 \geq \cdots \geq 0 $ 는 특이값이며,
$ A^T A $ 또는 $ AA^T $의 고유값에 제곱근을 취한 값입니다.
2. 기하학적·직관적 의미
특이값 분해는 행렬 A 가 하는 선형 변환을 세 단계로 나눠서 보여줍니다.
- $ V^T $: 원래 공간을 회전(또는 반사)
- $ \Sigma $: 각 축 방향으로 늘리거나 줄임 (스케일링)
- $ U $: 다시 회전(또는 반사)
즉, 어떤 행렬이든 회전 → 스케일링 → 회전으로 분해할 수 있다는 뜻입니다. 특이값은 그 스케일링의 크기를 나타냅니다.
3. 저랭크 근사 (Low-rank Approximation) – 가장 중요한 활용
특이값 중 큰 값만 남기고 작은 특이값을 0으로 만들면, 원래 행렬 $ A $를 낮은 랭크의 행렬로 근사할 수 있습니다.
$$A \approx U_k \Sigma_k V_k^T$$
- $ k $개의 큰 특이값만 사용
- 이 근사는 프로베니우스 노름(Frobenius norm) 기준으로 최적의 근사입니다. (Eckart–Young–Mirsky 정리)
이 성질 때문에 SVD는 차원 축소와 데이터 압축에서 매우 강력합니다.
4. 주성분 분석(PCA)과의 관계
PCA와 SVD는 매우 밀접하게 연결되어 있습니다.
- 데이터를 중심화(평균을 0으로 만듦)한 행렬을 $ X $라고 할 때,
- $ X $에 SVD를 적용하면 $ X = U \Sigma V^T $
- 이때 $ V $의 열벡터가 바로 주성분 방향(고유벡터)
- $ \Sigma $의 특이값을 제곱해서 $ n-1 $로 나누면 주성분의 분산(고유값)이 됨
- 주성분 점수는 $ XV = U\Sigma $로 바로 얻을 수 있음
실무적으로는 공분산 행렬을 직접 고유값 분해하는 것보다 데이터 행렬에 SVD를 적용하는 방식이 수치적으로 더 안정적이기 때문에, 대부분의 PCA 구현은 내부적으로 SVD를 사용합니다.
5. 주요 활용 분야
| 차원 축소 | PCA의 계산 엔진으로 사용 |
| 추천 시스템 | 사용자-아이템 행렬을 저랭크 근사하여 취향 예측 (Matrix Factorization) |
| 이미지 압축 | 이미지 행렬을 저랭크 근사하여 용량 축소 |
| 노이즈 제거 | 작은 특이값을 제거하여 신호만 남김 |
| 의사역행렬 | 특이값이 0인 부분을 제외하고 역행렬을 계산 (Pseudo-inverse) |
| 잠재 의미 분석 (LSA) | 텍스트 마이닝에서 문서-단어 행렬 분해 |
| 데이터 분석 | 다중공선성 진단, 행렬의 랭크 파악 등 |
6. 특이값 분해의 특징과 장점
특징
- 어떤 행렬이든 (정사각이 아니어도) 분해 가능
- 특이값은 항상 0 이상의 실수
- $ U $와 $ V $는 직교행렬 → 계산과 해석이 안정적
장점
- 수치적으로 매우 안정적
- 저랭크 근사의 최적성을 보장
- PCA, 추천 시스템, 압축 등 응용 범위가 넓음
- 행렬의 본질적인 구조(랭크, 중요 방향)를 드러냄
단점
- 계산 비용이 큼 ($ O(\min(mn^2, m^2n)) $ 정도)
- 대규모 행렬에서는 근사 SVD나 랜덤 SVD 같은 기법을 사용해야 함
- 결과의 해석이 도메인 지식 없이 어려울 수 있음
7. 요약
특이값 분해(SVD)는 임의의 행렬을 $ U \Sigma V^T $ 형태로 분해하여,, 행렬이 가진 가장 중요한 방향과 크기 정보를 추출하는 기법입니다.
- PCA를 계산하는 가장 표준적이고 안정적인 방법
- 저랭크 근사를 통해 차원 축소, 압축, 노이즈 제거에 탁월
- 추천 시스템과 텍스트 분석 등에서도 핵심적으로 사용
PCA가 “데이터를 잘 요약하는 축을 찾는 것”이라면, SVD는 그 축을 찾아내는 수학적 엔진이라고 볼 수 있습니다.
더 깊이 들어가고 싶은 부분(수학적 유도, 이미지 압축 예시, 추천 시스템에서의 활용 등)이 있으면 말씀해 주세요.
음수 미포함 행렬 분해 (Non-negative Matrix Factorization, NMF)
비음수 행렬 분해라고도 하며, 행렬의 모든 원소가 0 이상이라는 제약 조건을 걸고 행렬을 분해하는 기법입니다.
1. 정의
비음수인 행렬 $ V $ (크기 $ m \times n $)를 두 개의 비음수 행렬로 근사 분해합니다.
- $ W $: $ m \times k $ 크기의 비음수 행렬 (기저 행렬, Basis)
- $ H $: $ k \times n $ 크기의 비음수 행렬 (계수 행렬, Encoding)
- $ k $는 보통 원래 차원보다 훨씬 작은 값 (저랭크 근사)
모든 행렬의 원소가 0 이상이어야 한다는 것이 핵심 제약입니다.
- 기저 행렬 (W): 데이터를 구성하는 기본 패턴(부품)들을 담고 있는 행렬
- 계수 행렬 (H): 각 데이터에 그 기본 패턴들을 얼마나 섞어서 사용할지를 나타내는 행렬
- 저랭크: 원래 행렬보다 훨씬 작은 차원(순위)으로 근사하는 것 (중요한 정보만 남기고 압축)
2. 핵심 특징
| 음수 허용 안 함 | 모든 값이 0 이상 → 결과가 가산적(additive)으로만 표현됨 |
| 부분 기반 표현 | 전체를 부분(parts)의 합으로 나타냄 (예: 얼굴 = 눈 + 코 + 입) |
| 해석이 용이 | 음수가 없어서 “무엇이 얼마나 더해졌는지”를 직관적으로 이해 가능 |
| 희소성(Sparsity) | 자연스럽게 많은 값이 0에 가까운 희소한 결과가 나오는 경향 |
3. SVD / PCA와의 차이점
| 음수 허용 | 가능 | 불가능 (모두 0 이상) |
| 표현 방식 | 양수·음수가 섞인 선형결합 | 오직 더하기만 가능한 조합 |
| 해석력 | 상대적으로 어려움 | 훨씬 직관적 |
| 결과 성격 | 전체적(global) 패턴 | 부분적(parts-based) 패턴 |
| 직교성 | 주성분은 서로 직교 | 직교 조건 없음 |
직관적 차이 예시
- SVD/PCA: “눈 부분을 강조하기 위해 다른 부분을 음수로 빼는” 방식이 가능
- NMF: “눈 + 코 + 입”처럼 더하는 방식으로만 얼굴을 구성 → 사람이 이해하기 쉬움
4. 주요 목적과 활용
- 차원 축소 + 해석 가능한 특징 추출
- 주제 모델링 (Topic Modeling): 문서-단어 행렬을 분해하여 잠재 주제 발견
- 이미지 처리: 얼굴 이미지를 눈·코·입 같은 부분으로 분해
- 추천 시스템: 사용자-아이템 행렬 분해
- 음성/음악 분리: 음원을 개별 악기로 분리
- 바이오인포매틱스: 유전자 발현 데이터 분석
5. 장점과 단점
장점
- 결과가 해석하기 매우 좋음 (특히 사람이 의미를 부여해야 할 때)
- 희소한 표현을 자연스럽게 얻음
- 차원 축소와 특징 추출을 동시에 수행
단점
- 전역 최적해를 보장하지 않음 (초기값에 따라 결과가 달라질 수 있음)
- 계산이 SVD보다 느린 편
- k (요인의 수)를 미리 정해야 함
- 원래 데이터에 음수가 있으면 사용할 수 없음 (음수가 있으면 전처리 필요)
6. 요약
음수 미포함 행렬 분해(NMF)는 “음수를 허용하지 않고” 행렬을 두 개의 비음수 행렬로 분해하여, 부분을 더해서 전체를 만드는 방식으로 데이터를 표현하는 기법입니다.
- SVD가 “수학적으로 最优의 저랭크 근사”를 추구한다면
- NMF는 “사람이 해석하기 좋은 부분 기반 표현”을 추구합니다.
해석력이 중요한 상황(텍스트 주제 분석, 이미지 부분 분해, 추천 설명 등)에서 특히 강점을 발휘합니다.
'AI > 확률|통계 기반' 카테고리의 다른 글
| 고급데이터 탐색 (0) | 2026.08.08 |
|---|---|
| 상관분석과 기초통계 분석 이해 (0) | 2026.08.08 |
| 통계값을 활용한 데이터 탐색 (EDA) 개요 (0) | 2026.08.08 |
| 파생변수의 생성, 변수 변환 그리고 불균형 데이터 처리 대해 (0) | 2026.08.08 |
| 분석 변수 처리 방법과 이론들 (0) | 2026.08.08 |