Linear Algebra & Data Geometry
고차원 데이터의 구조를 체계적으로 다루는 선형대수학과, 이를 공간적 관점에서 해석하는 데이터 기하학을 다루는 학습 노드입니다.
Article
M
Me
hyunyoun's Blog
mathematics-computing-logicmathematicscomputing-logiclinear-algebradata-geometrymath-logiclearningvector-space9 min read
1. Overview
선형대수 및 데이터 기하학(Linear Algebra & Data Geometry, LADG)은 다차원 공간 상의 데이터를 선형 결합(Linear Combination)과 행렬 변환(Matrix Transformation)을 통해 체계적으로 분석하고 모델링하는 추상 수학 및 응용 기하학 분야입니다.
단순한 2D/3D 그래픽스의 물리적 좌표 변환을 넘어서, 현대 소프트웨어 산업의 핵심인 지능형 컴퓨팅 시스템은 모두 선형대수를 근간으로 연산합니다. 머신러닝의 차원 축소(PCA)와 추천 시스템(Collaborative Filtering), 검색 엔진의 페이지 랭크(PageRank) 알고리즘, LLM(대형 언어 모델) 등 딥러닝 텐서(Tensor)의 대규모 병렬 곱셈까지, 데이터의 흐름은 곧 선형 변환의 연속입니다.
학습자는 단순히 손으로 행렬식을 계산하는 맹목적 수학 산술에서 벗어나, 행렬을 **'데이터 공간을 휘고 회전시키며 정보를 필터링하는 선형 변환기(Operator)'**로 인식해야 합니다. 나아가 거대한 다변량 데이터가 형성하는 매니폴드(Manifold)의 기하학적 구조를 추출하고, 시스템의 연산량과 메모리를 최적화하는 공학적 데이터 엔지니어링 역량을 습득합니다.
2. Scope & Boundaries
In-Scope
- 벡터 공간과 기저 (Vector Space & Basis): 데이터의 차원(Dimension) 정의, 부분 공간(Subspace), 랭크(Rank), 선형 독립(Linear Independence) 및 벡터의 직교성(Orthogonality).
- 선형 변환 및 행렬 대수 (Linear Transformations): 공간 좌표계 변환, 투영(Projection) 연산, 가역 행렬(Invertible Matrix) 판별, 행렬식(Determinant)의 기하학적 의미(부피의 변화).
- 대수적 행렬 분해 (Algebraic Decompositions): 시스템 연산 복잡도를 낮추기 위한 LU 분해, QR 분해 및 그레디언트 해석.
- 고유값과 정보 기하학 (Eigen-Analysis & Geometry): 고유값/고유벡터(Eigen-decomposition), 특이값 분해(SVD)를 활용한 저랭크 근사(Low-Rank Approximation), 주성분 분석(PCA)의 데이터 차원 축소 원리.
Out-of-Scope
- 순수 추상 대수학 및 위상 수학: 군(Group), 환(Ring), 체(Field)에 대한 엄밀한 공리적 증명 및 실수계의 위상 분석 → 수학(순수 학문) 영역으로 위임.
- 비선형 최적화 알고리즘 상세: 편미분(Partial Derivative), 경사 하강법(Gradient Descent) 딥러닝 최적화 루프 자체 → 11. Machine Learning & AI 영역으로 위임.
- 물리적 3D 렌더링 파이프라인: 픽셀 래스터화(Rasterization), 조명 반사 방정식(Phong Shading) 등 빛의 물리적 렌더링 구현 → 12. Human-Computer Interaction & Graphics 영역으로 위임.
Boundaries
- LADG vs Graphics (12. HCG): LADG는 수만 차원의 '추상적 수학 공간'에서 데이터 정보량을 분해하고 변환하는 대수학 모델을 정의합니다. 반면 HCG는 LADG의 하위 셋인 3D 변환 기법(동차 좌표계 등)을 시각 도메인에 매핑하여, 사용자 뷰포트(Viewport)와 카메라 프러스텀(Frustum) 등 '시각적 출력'에 집중합니다.
3. Counterexample
- 기계적 역행렬/행렬식 수작업 계산 (Blind Calculation): 3x3 행렬의 역행렬을 손으로 가우스-조르단 소거법을 써서 빠르게 푸는 것은 현대 CS 환경에서 의미가 없습니다. 대신 특정 데이터 변환 행렬의 Determinant(행렬식)가 0이 되었을 때, 그것이 데이터 공간 측면에서 **'차원의 붕괴(Rank Deficiency)'**나 **'정보의 완전한 손실(Irreversible Loss)'**을 의미함을 기하학적으로 해석하고, 시간 복잡도를 회피하는 파이프라인을 설계할 줄 알아야 합니다.
- 스칼라 수준의 반복문 코딩: 딥러닝 연산을 구현할 때, 파이썬 이중/삼중
for문을 사용하여 픽셀 단위로 스칼라 곱을 수행하는 행위는 안티패턴입니다. 이를 선형대수 텐서 연산(np.dot, 벡터화 연산)으로 추상화하여 하드웨어 SIMD 코어가 사이클에 가깝게 병렬 처리할 수 있도록 코드를 작성해야 합니다.
4. Prerequisites
- 이산 구조 및 모델링 (Basic): 함수(Function)와 사상(Mapping)의 개념, 비둘기집 원리가 행렬을 '입력을 받아 출력으로 변환하는 다차원 함수'로 이해하는 데 필수적인 논리적 근간을 제공합니다. (01-01. DSM)
- 컴퓨터 구조 (Practical): 거대한 행렬 곱 연산이 왜 CPU 단일 코어보다 GPU의 SIMD(Single Instruction Multiple Data) 아키텍처나 텐서 코어(Tensor Core)에서 수천 배 폭발적으로 가속되는지 메모리 캐시 및 하드웨어 병렬성에 대한 이해가 필요합니다. (02-03. PCM)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 벡터 공간과 내적 기하학 (Vector Space & Inner Products)
- Why to Learn: 현대 소프트웨어의 모든 비정형 데이터(텍스트, 이미지, 음성)를 기계가 연산 가능한 고차원 공간 상의 좌표점(Vector)으로 매핑하고, 두 데이터 간의 유사도(Distance)를 연산하기 위한 기초이기 때문입니다.
- What to Learn:
- Concepts: 벡터의 스칼라 곱 및 선형 결합(Linear Combination), 노름(Norm, L1/L2/L), 벡터 공간의 기저(Basis).
- Skills: 내적(Dot Product)을 활용한 두 벡터의 직교성(Orthogonality) 판별, 기준 축에 특정 데이터 투영(Projection)하기.
- Tools: NumPy 선형대수 모듈 (
np.dot,np.linalg.norm). - Trade-offs: 고차원 L2 노름 유클리디안 거리 측정의 기하학적 직관성 vs '차원의 저주(Curse of Dimensionality)'에 의해 모든 데이터 포인트 간 거리가 비슷해지며 발생하는 변별력 상실 문제.
- How to Learn:
- 1단계: 3차원 데이터 벡터를 2차원 평면으로 투영하는 프로젝션 수식을 직접 작성하고 Matplotlib으로 기하학적 형태를 관찰합니다.
- 2단계: 두 텍스트 문서의 TF-IDF 행렬 벡터를 코사인 유사도(Cosine Similarity)로 측정하여, 내적이 문서 검색 엔진에서 어떻게 관련성 점수로 쓰이는지 분석합니다.
- Implement: N차원 데이터 배열 리스트를 입력받아, 모든 벡터 쌍 사이의 코사인 거리와 유클리디안 거리 매트릭스를 자동 계산하여 속도로 반환하는 추천 시스템 코어 모듈.
Recommended
Core Topic 02: 선형 변환과 시스템 방정식 최적화 (Linear Transforms & Solvers)
- Why to Learn: 그래픽스의 뷰포트 전환, 자율주행 차량의 센서 좌표계 변환, 혹은 다중 미지수가 포함된 비즈니스 최적화 모델을 코드로 빠르고 안정적으로 풀기 위함입니다.
- What to Learn:
- Concepts: 선형 변환(Linear Transformation), 행렬식(Determinant), 랭크(Rank), 영공간(Null Space)과 치역(Column Space), 차원 정리(Rank-Nullity Theorem).
- Skills: 가우스 소거법(Gaussian Elimination)을 활용한 연립 선형 방정식의 해 공간 판별(Unique, Infinite, None).
- Tools: 선형대수학 시각화 시뮬레이터 (예: 3Blue1Brown).
- Trade-offs: 정방 행렬 역행렬 계산의 대수적 완결성 vs 대규모 시스템 행렬(10,000x10,000 이상)에서의 치명적인 런타임 비효율 및 수치적 불안정성(Floating Point Error).
- How to Learn:
- 1단계: 2x2 변환 행렬의 Determinant가 0이 될 때 평면 데이터가 어떻게 '1차원 선분'으로 붕괴하며 복원이 불가능해지는지 기하학적으로 시각화해 봅니다.
- 2단계: 크기가 큰 선형 연립방정식 코드를 풀 때, 명시적 역행렬
inv()를 직접 호출하는 것 대비 가우스 소거법이나 LU 분해(scipy.linalg.lu)를 호출하는 것이 연산 속도와 정밀도 측면에서 왜 압도적으로 유리한지 벤치마크합니다.
- Implement: 피벗(Pivot) 기반의 가우스-조르단 소거 알고리즘을 직접 작성하여, 역행렬 연산 없이 안정적으로 N차원 연립방정식의 해를 도출하는 수치해석 Solver 클래스.
Practical
Core Topic 03: 고유값 분석과 대각화 (Eigen-Analysis & Diagonalization)
- Why to Learn: 거대한 시스템 행렬의 상태 전이를 분석할 때, 연산 기준 축을 회전(정렬)시켜 대규모 데이터 처리의 메모리 복잡도를 극도로 낮추고 시스템의 장기적 안정 상태(Steady State)를 찾기 위해서입니다.
- What to Learn:
- Concepts: 고유값(Eigenvalue, ), 고유벡터(Eigenvector), 특성 방정식(Characteristic Equation), 행렬의 대각화(Diagonalization).
- Skills: 마르코프 체인(Markov Chain)과 같은 상태 추이 행렬의 수렴성 증명, 대각화를 이용한 거대한 행렬의 거듭제곱() 연산 최적화.
- Tools: NumPy (
np.linalg.eig), PageRank 알고리즘. - Trade-offs: 기저 변환 대각화를 통한 거듭제곱 연산 속도 확보 vs 비대칭 행렬의 경우 대각화 자체가 불가능할 가능성(Defective Matrix).
- How to Learn:
- 1단계: 4개의 웹페이지로 구성된 미니 웹 생태계의 이동 확률(Transition Matrix)을 만들고, 행렬을 100번 거듭제곱하여 도출된 수렴 벡터가 어떻게 구글 PageRank 순위와 일치하는지 증명합니다.
- 2단계: 이미지 처리 및 3D 모델링에서 객체의 주된 회전 중심축이 수학적 고유벡터의 방향과 어떻게 완벽히 일치하는지 시각화 코드로 확인합니다.
- Implement: 특정 상태 전이 행렬의 고유 분해(Eigendecomposition)를 수행하여, 1000번의 상태 전이 루프를 도는 대신 대각 행렬의 스칼라 거듭제곱만으로 시스템의 최종 수렴 상태 벡터를 단숨에 추론하는 최적화 스크립트.
Advanced
Core Topic 04: 특이값 분해(SVD)와 데이터 차원 축소 (SVD & Dimensionality Reduction)
- Why to Learn: 실제 산업 환경의 데이터는 노이즈가 많고 차원이 수만 개에 달합니다. 이를 압축하여 정보의 노이즈를 필터링하고 학습 알고리즘의 성능을 극대화하기 위한 핵심 엔지니어링 기법입니다.
- What to Learn:
- Concepts: 특이값 분해(SVD: ), 주성분 분석(PCA), 공분산 행렬(Covariance Matrix), 저랭크 근사(Low-Rank Approximation).
- Skills: 대규모 다변량 데이터의 정보량 분산을 측정하고, 유의미한 주성분 축으로 데이터를 투영하여 차원(메모리)을 기하급수적으로 축소시키는 기하학적 설계.
- Tools: Scikit-Learn (
TruncatedSVD,PCA). - Trade-offs: SVD 차원 축소를 통한 엄청난 메모리 절감 및 학습 성능 극대화 vs 특정 차원이 절단(Truncate)됨에 따른 세부 정보 유실 및 원본 피처(Feature)의 직관적 해석 가능성(Interpretability) 저하.
- How to Learn:
- 1단계: 고해상도(예: 1024x1024) 이미지 데이터를 SVD 연산으로 분해한 뒤, 크기가 큰 특이값(Singular Value) 상위 5%만 사용하여 복원행렬을 만들어 형체가 유지되는지 확인합니다. (이미지 압축 원리)
- 2단계: 속성이 50개인 캘리포니아 집값 데이터를 PCA 공분산 행렬 기반으로 2차원 공간으로 사상(Mapping)시켜, 산점도(Scatter Plot)에 시각화하여 군집을 관찰합니다.
- Implement: SVD 알고리즘을 활용해 추천 시스템의 User-Item 행렬(희소 행렬) 노이즈를 제거하고 잠재 요인(Latent Factor) 모델을 구축하여, 새로운 영화에 대한 예상 평점을 예측하는 콜라보레이티브 필터링 코어.
7. Terminology
8. References
Primary References
- [P1] CS2023 - DS/Mathematical Foundations — Matrix and vector operations for CS.
- [P4] DS-BoK - Mathematical Basis — Theoretical foundations for data analytics.
Secondary References
- [Linear Algebra and Its Applications] Gilbert Strang, Wellesley-Cambridge Press — Standard curriculum reference.
- [3Blue1Brown] Essence of Linear Algebra — Excellent visual intuition for geometry.
Industry References
- [Google Developers] PageRank Explained — Practical application of Linear Algebra in Search.
- [PyTorch/TensorFlow Docs] Tensors and Linear Algebra Operations — Modern hardware mapping.
9. Final Checklist
Primary Checklist
- 고차원 데이터를 벡터 공간의 원소로 정의하고 기저 변환(Change of Basis)의 수식적/기하학적 의미를 아는가? (P1)
- 행렬 곱을 함수 합성으로 인식하고 역행렬 유무를 Determinant와 연관 지어 판단 가능한가? (P1, P4)
Secondary Checklist
- 고유값 분해와 SVD가 데이터 압축 및 특징 추출(Feature Extraction)에서 담당하는 역할을 설명할 수 있는가?
- 가우스 소거법을 이용해 시스템 선형 방정식의 해의 구조(Rank 기반)를 추론 가능한가?
Industry Checklist
- PCA를 활용하여 변수가 많은 데이터 셋에서 정보 손실을 최소화하며 차원을 축소하는 로직을 설계할 수 있는가? (SFIA)
- 딥러닝 등의 텐서 연산 시 BroadCasting과 행렬 차원 변환의 수리적 무결성을 검토할 수 있는가?