Dimensionality Reduction & PCA
고차원 데이터의 핵심 정보는 유지하면서 노이즈와 중복을 제거하여 차원을 축소하는 원리와, 주성분 분석(PCA)의 수학적 매커니즘을 다루는 학습 노드입니다.
Article
M
Me
hyunyoun's Blog
mathematics-computing-logicmathematicscomputing-logiclinear-algebradata-geometrydimensionality-reductionpcamath-logic9 min read
1. Overview
차원 축소와 주성분 분석(Dimensionality Reduction & PCA, DRP)은 데이터가 무자비하게 팽창하여 하드웨어 메모리를 찢어발기는 고차원(High-Dimensional) 우주에서, 노이즈(Noise)를 깎아내고 데이터의 '진짜 뼈대(Latent Features)'만을 남기는 압축의 기하학입니다.
학습자는 정보의 흩어짐(Variance)이 가장 큰 방향을 수학적으로 추적하여 잉여 차원을 뭉개버리는 **주성분 분석(PCA)**의 분산 극대화 역학을 뜯어봅니다. 나아가 모든 직사각형 행렬을 회전-스케일링-회전으로 완벽히 해체하는 선형대수학의 제왕 **특이값 분해(Singular Value Decomposition, SVD)**를 해부하여, 수만 차원의 이미지나 텍스트 데이터를 단 50차원의 밀집 벡터(Dense Vector)로 압축하면서도 데이터 본연의 위상을 99% 유지하는 하이엔드 차원 조형술을 통달합니다.
2. Scope & Boundaries
In-Scope
- 차원의 저주와 투영 (Curse of Dimensionality): 유클리디안 거리 붕괴 현상, 직교 투영(Orthogonal Projection), 분산(Variance)과 공분산(Covariance) 행렬.
- 주성분 분석 역학 (PCA Physics): 데이터 정규화(Centering), 공분산 행렬의 고유 분해, 주성분(Principal Components), 설명된 분산 비율(Explained Variance Ratio).
- 특이값 분해 (SVD Mechanics): 특이값 분해(), 랭크(Rank), 절단된 특이값 분해(Truncated SVD), 무어-펜로즈 유사 역행렬(Pseudoinverse).
- 실무 응용 (Applied Reduction): 잠재 의미 분석(LSA/LSI), 추천 시스템의 협업 필터링 행렬 분해(Matrix Factorization).
Out-of-Scope
- 비선형 차원 축소 (t-SNE, UMAP): 매니폴드(Manifold) 위상을 보존하며 2차원으로 시각화하는 비선형 알고리즘 11-01. Learning & Optimization 영역.
- 딥러닝을 이용한 차원 압축: 오토인코더(Autoencoder) 등 인공 신경망 기반의 압축 기법 11-02. Deep Learning & Transformer 영역.
Boundaries
- DRP vs. Eigendecomposition (01-03-02): MCE(01-03-02)가 오직 정방 행렬(Square Matrix)의 특이 성질을 다루는 순수 수학에 가깝다면, DRP는 넷플릭스 유저-영화 평점 행렬처럼 극도로 찌그러진 직사각형(Rectangular) 비대칭 행렬을 SVD로 박살 내는 극강의 실무 물리입니다.
3. Counterexample
- 스케일링 누락의 주성분 붕괴 (Unscaled PCA Fallacy): 키(cm)와 몸무게(kg), 연봉(원)이라는 단위가 전혀 다른 데이터를 PCA에 욱여넣으면서 표준화(StandardScaler)를 잊어버리는 치명적 실수. 분산(Variance)이 가장 큰 방향을 찾는 PCA 특성상, 숫자가 무식하게 큰 연봉(원) 축이 시스템의 기하학을 완전히 지배해버려, 주성분 벡터가 기형적으로 왜곡되는 데이터 사이언스 최악의 설계 붕괴를 초래합니다.
- 가짜 패턴 착각 (Noise Fitting Fallacy): 설명된 분산(Explained Variance)이 낮은 주성분들까지 미련을 버리지 못하고 과도하게 챙기는 행위. 차원 축소의 본질은 "하위 주성분은 비즈니스적 의미가 없는 시스템 노이즈(Noise)이므로 물리적으로 칼같이 썰어버린다"는 것인데, 이를 이해하지 못하면 모델이 쓰레기 데이터까지 달달 외워버리는 과적합(Overfitting) 수렁에 빠집니다.
4. Prerequisites
- 고유 분해와 대칭 행렬 (Basic): 공분산 행렬은 무조건 대칭 행렬이 되며, 대칭 행렬의 고유벡터는 서로 직교(Orthogonal)한다는 스펙트럼 정리에 대한 절대적 확신이 필요합니다. (01-03-02 MCE)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 공분산과 차원의 저주 (Covariance & The Curse)
- Why to Learn: 1,000차원의 텍스트 임베딩 속에서 코사인 유사도나 유클리디안 거리를 잴 때, 990차원은 텅 빈 허공이거나 전혀 쓸모없는 잡음임을 수학적으로 증명하기 위해서입니다.
- What to Learn:
- Concepts: 차원의 저주(Curse of Dimensionality), 분산(Variance), 공분산(Covariance).
- Skills: 공분산 행렬(), 중심화(Mean Centering).
- Tools: 히스토그램 거리 분포 분석.
- Trade-offs: 데이터를 온전히 보존하기 위해 피처(Feature)를 10,000개로 늘렸을 때 얻는 세밀함 vs 3차원을 넘는 순간 모든 데이터 점들의 거리가 물리적으로 껍질(Edge)로 밀려나버려(초구의 부피 기형) 유사도 계산이 완벽히 무의미해지는 치명적 붕괴.
- How to Learn:
- 1단계: 변수 와 가 얼마나 같이 변하는지(동행성)를 곱하여 나타낸 공분산 행렬이, 주대각선은 자기 자신의 분산(에너지)을 뿜고 빗변은 타인과의 얽힘을 보여주는 '데이터 거울'임을 해부합니다.
- 2단계: 1차원 선에서는 원점 근처에 점이 몰려있기 쉽지만, 100차원 구(Sphere)에서는 구의 중심 부피가 0으로 수렴하여 모든 점들이 껍질 밖으로 물리적 이탈을 하는 기하학적 저주를 뜯어봅니다.
- Implement: 넘파이를 이용해 차원의 점 100만 개를 무작위 생성하고 이 2차원에서 1,000차원으로 증가할 때 두 점 사이의 최대 거리와 최소 거리의 비율이 1로 수렴해버리는(거리가 의미 없어지는 현상) 저주 증명 시뮬레이션 작성.
Recommended
Core Topic 02: 주성분 분석 역학 (PCA Physics)
- Why to Learn: 흩어진 데이터들 사이에서, 가장 에너지가 빵빵하게 터지는(Variance Maximum) 절대 뼈대 축을 찾아내어 100차원을 3차원으로 납작하게 압축하기 위함입니다.
- What to Learn:
- Concepts: 주성분(Principal Component, PC), 정규 직교 기저(Orthonormal Basis).
- Skills: 공분산 행렬의 고유값 분해(Eigendecomposition of Covariance Matrix), 설명된 분산(Explained Variance).
- Tools: Scikit-Learn
PCA. - Trade-offs: 상관관계가 높은 쓰레기 변수들을 독립적인 PC 축으로 뭉뚱그려 메모리를 90% 아끼는 연산 이득 vs "그래서 첫 번째 주성분(PC1)이 인간의 언어로 무슨 의미인데?"라고 기획자가 물었을 때 아무도 대답할 수 없는 블랙박스(Interpretability Loss).
- How to Learn:
- 1단계: 공분산 행렬 는 완벽한 대칭 행렬이므로, 스펙트럼 정리에 의해 고유벡터들이 서로 90도 직교(Orthogonal)하는 완벽한 십자가 축(기저)을 제공하는 위상 물리를 뜯어봅니다.
- 2단계: 가장 큰 고유값(Eigenvalue, )을 가진 고유벡터가 바로 데이터가 가장 넓게 퍼진 'PC1' 축이며, 이 축에 데이터를 쏴서(투영) 만든 그림자가 정보 손실을 물리적으로 최소화하는 증명을 해부합니다.
- Implement: 붓꽃(Iris) 데이터셋(4차원)을 입력받아 수동으로 의 고유벡터를 구하고, 가 전체 분산의 95% 이상을 씹어먹는 것을 확인한 뒤, 상위 2개의 고유벡터 행렬을 곱해 2D 평면에 데이터를 찍어내는 커스텀 PCA 파이프라인.
Practical
Core Topic 03: 특이값 분해 엔진 (Singular Value Decomposition, SVD)
- Why to Learn: 정방 행렬(Square Matrix)이 아니면 작동조차 안 하는 샌님 같은 고유 분해(MCE)를 버리고, 추천 시스템의 유저(1,000만 명)-영화(10만 개) 같은 극악의 비대칭 거대 행렬을 갈기갈기 해체하기 위해서입니다.
- What to Learn:
- Concepts: SVD (), 특이값(Singular Values, ), 좌/우 특이벡터(Left/Right Singular Vectors).
- Skills: 절단된 특이값 분해(Truncated SVD), 랭크-k 근사(Rank-k Approximation, 에카르트-영 정리).
- Tools: SciPy
svds. - Trade-offs: 거대한 원본 행렬 의 데이터를 세 개의 얄팍한 행렬로 박살 내어 랭크(k) 개수만큼의 곱셈 연산으로 줄이는 폭발적 메모리 절약 vs 절단된(Truncated) 하위 특이값을 버릴 때 필연적으로 깎여나가는 해상도(Resolution Loss).
- How to Learn:
- 1단계: 어떤 미친 기하학적 형태의 직사각형 행렬 변환이라도, 무조건 "회전() 늘리기() 다시 회전()"이라는 3단계 기본 물리 동작으로 100% 찢어 발길 수 있다는 SVD의 기하학적 기적을 뜯어봅니다.
- 2단계: 특이값 행렬 는 대각선에 큰 수부터 작은 수로 줄을 서는데, 여기서 하위 노이즈 꼬리를 잘라버리는 랭크-k 근사(Truncation)가 어떻게 이미지 압축과 물리적으로 동일한지 해부합니다.
- Implement: 흑백 이미지 행렬을 읽어 SVD 알고리즘을 돌린 뒤, 특이값(Singular Value) 상위 10개, 50개, 100개만 사용해 이미지를 로 역복원(Reconstruct)하여 k값에 따른 시각적 품질과 행렬 용량 압축률(%)을 비교하는 데모.
Advanced
Core Topic 04: 잠재 의미 분석과 의사 역행렬 (LSA & Pseudoinverse)
- Why to Learn: "아이폰"을 검색했을 때 "애플 스마트폰"이라는 단어도 같이 튀어나오는 검색 엔진을 만들거나, 해(Solution)가 완벽히 떨어지지 않는 억지 데이터 방정식의 최적해(오차 최소화)를 찾기 위함입니다.
- What to Learn:
- Concepts: 잠재 의미 분석(Latent Semantic Analysis, LSA/LSI), 무어-펜로즈 유사 역행렬(Moore-Penrose Pseudoinverse, ).
- Skills: TF-IDF 행렬의 SVD 분해, 희소 행렬(Sparse Matrix) 붕괴 방어, 선형 최소 제곱법(Linear Least Squares, ).
- Tools: Numpy
np.linalg.pinv. - Trade-offs: 단어(Term)와 문서(Document)라는 극단적으로 텅 빈(Sparse) 10만 차원의 매트릭스를 SVD로 찌그러뜨려 '문맥적 개념(Latent Concept)' 축으로 묶어내는 마법 vs 밀집(Dense) 연산 때문에 폭주하는 CPU 부하와 매번 새 문서를 넣을 때마다 행렬 전체를 재계산해야 하는 SVD 갱신 불가(Static) 딜레마.
- How to Learn:
- 1단계: '강아지'와 '개'라는 단어가 텍스트 행렬에서는 전혀 겹치지 않는 완전 직교(Orthogonal) 벡터지만, SVD를 치고 남은 '주성분 개념 공간'에서는 두 단어 벡터가 99% 같은 방향을 가리키는(코사인 유사도 ) 물리적 유착을 해부합니다.
- 2단계: 직사각형 행렬 라 역행렬을 구할 수 없는 방정식 에서, 특이값 분해를 이용해 억지로 만든 유사 역행렬 가 에러 노름 를 우주에서 가장 작게(최소 제곱) 만드는 신의 해답임을 증명합니다.
- Implement: 100개의 짧은 뉴스 헤드라인을 TF-IDF 단어 행렬(예: 차원)로 변환한 후, Truncated SVD()를 먹여 차원을 압축하고, "애플"이라는 단어가 들어간 뉴스와 단 한 단어도 안 겹치지만 문맥상 완벽히 유사한 "아이폰" 기사를 코사인 유사도로 끄집어내는 LSA 추천기 작성.
7. Terminology
8. References
Primary
- [P1] CS2023 - DS/Linear Algebra — Applications in DR.
- [P4] DS-BoK - Data Analytics / Dimensionality Reduction — DS core skills.
Secondary
- [Pattern Recognition and Machine Learning] Christopher Bishop — Geometric view of PCA.
- [Python Data Science Handbook] Jake VanderPlas — Practical implementation of DR.
Industry
- [Netflix Prize SVD documentation] — Collaborative filtering with matrix decomposition.
- [Scikit-learn PCA User Guide] — Industry standard implementation patterns.
9. Final Checklist
Primary
- 공분산 행렬의 '고윳값'들의 총합이 데이터의 전체 분량(에너지)과 수학적으로 일치함을 입증할 수 있는 가? (P1)
- PCA의 첫 번째 주성분 축이 데이터의 재구성 오차(Reconstruction Error)를 최소화하는 물리적 축임을 논리적으로 증명 가능한가? (P1)
Secondary
- SVD 분해 시 도출되는 특이값()들이 0에 가까울수록 해당 데이터 영토를 '절삭(Truncation)'해도 되는 이유를 설명할 수 있는 가?
- PCA 결과물을 시각화했을 때, 주성분끼리 서로 교차하지 않고 90도(Orthogonal)를 유지해야 하는 물리적 이유를 소통 가능한가?
Industry
- 수천 개의 피쳐를 가진 고객 데이터를 모델에 입력하기 전, PCA를 통해 멀티콜리니어리티(Multicollinearity)를 물리적으로 제거하는 아키텍처를 설계할 수 있는 가? (SFIA)
- 고용량 대규모 로그 데이터 시각화 요구사항 발생 시, SVD를 이용한 실시간 차원 축소 파이프라인의 성능과 데이터 유실율을 정량적으로 평가할 수 있는 가?