고유값·고유벡터와 PCA: 선형대수 기초 4장 (완결)
3장에서는 벡터 연산, 선형 변환, 행렬 곱셈, 역행렬을 배웠습니다. 이번 마지막 글에서는 행렬식을 기하학적으로 해석하고, 선형대수의 꽃인 고유값(Eigenvalue) 과 고유벡터(Eigenvector) 를 깊이 파고들며, 이것이 머신러닝의 PCA(주성분 분석) 에 어떻게 연결되는지까지 정리합니다.
이 글은 DeepLearning.AI의 Mathematics for Machine Learning and Data Science 4주차 내용을 기반으로 정리했습니다.
이번 글에서 배우는 것#
- 행렬식을 넓이(부피) 로 해석하기
- 곱의 행렬식, 역행렬의 행렬식 공식
- 기저(Basis) 와 생성(Span) 의 개념
- 고유값·고유벡터 의 직관과 계산법
- PCA — 분산·공분산·고유벡터를 이용한 차원 축소
- 마르코프 행렬 과 이산 동적 시스템
선형 변환의 특이성과 랭크#
선형 변환도 행렬과 마찬가지로 특이/비특이로 분류됩니다.
| 변환 유형 | 결과 | 랭크 |
|---|---|---|
| 비특이 변환 | 평면 전체를 덮음 | 2 (2D 기준) |
| 특이 변환 (선) | 한 직선만 덮음 | 1 |
| 특이 변환 (점) | 원점 하나만 남음 | 0 |
비특이 행렬의 선형 변환은 평면의 모든 점을 커버합니다. 특이 행렬의 변환은 평면을 직선 또는 점으로 압축합니다.
행렬식 = 넓이 (기하학적 해석)#
행렬식은 단순한 숫자가 아닙니다. 선형 변환이 공간을 얼마나 늘리거나 줄이는지를 나타내는 넓이(부피)의 배율입니다.
단위 정사각형(면적 = 1)에 이 변환을 적용하면, 결과 평행사변형의 넓이가 입니다.
| 행렬식 값 | 의미 |
|---|---|
| 공간이 선/점으로 압축 (넓이 = 0) | |
| 공간이 늘어남, 방향 유지 | |
| 공간이 늘어남, 방향 반전 (반시계 방향 변환) |
핵심: 특이 행렬이 넓이 0으로 압축되기 때문에 이 됩니다.
곱의 행렬식#
두 선형 변환을 합성했을 때의 넓이 배율은, 각 변환의 배율을 곱한 것과 같습니다.
중요한 결론:
특이 행렬과 비특이 행렬의 곱은 항상 특이입니다.
역행렬의 행렬식#
가 비특이(역행렬 존재)일 때:
직관: 가 공간을 5배로 늘렸다면, 은 배로 줄여서 원래대로 되돌려야 합니다.
예시:
기저 (Basis)#
기저는 벡터 공간을 정의하는 최소한의 벡터 집합입니다.
기저의 핵심 성질: 공간의 모든 점을 기저 벡터들의 선형 결합으로 표현할 수 있습니다.
기저가 되기 위한 조건:
- 벡터들이 선형 독립 (어떤 벡터도 나머지의 선형 결합으로 표현 불가)
- 같은 방향 또는 반대 방향의 벡터는 기저가 될 수 없음
생성 (Span)#
생성(Span) 은 주어진 벡터들의 모든 선형 결합으로 도달할 수 있는 점들의 집합입니다.
| 벡터 수 | 생성 결과 |
|---|---|
| 1개 벡터 | 직선 (1차원) |
| 2개 선형 독립 벡터 | 평면 (2차원) |
| 2개 선형 종속 벡터 | 직선 (1차원만) |
기저 = 최소 생성 집합: 공간을 생성하는 데 필요한 최소 개수의 선형 독립 벡터.
공간의 차원보다 많은 벡터가 있으면 항상 선형 종속이 발생합니다.
고유기저 (Eigenbasis)#
선형 변환 를 적용할 때, 대부분의 벡터는 방향이 바뀝니다. 하지만 방향은 유지하고 크기(스케일)만 변하는 특별한 벡터가 있습니다. 이것이 고유벡터(Eigenvector) 입니다.
- : 고유벡터 (방향 유지)
- : 고유값 (스케일 배율)
직관: 고유벡터 방향으로 데이터를 보면, 행렬 곱(복잡한 연산)이 단순한 스칼라 곱으로 바뀝니다.
고유값과 고유벡터 계산#
핵심 공식#
이 되려면 가 특이 행렬 이어야 합니다:
2×2 행렬 예시#
1단계 — 특성 다항식:
고유값:
2단계 — 고유벡터 ():
고유벡터 ():
고유값과 고유벡터는 항상 쌍으로 존재합니다.
고유벡터의 개수#
| 행렬 크기 | 고유값 특성 | 고유벡터 수 |
|---|---|---|
| 2×2 | 서로 다른 고유값 2개 | 항상 2개 |
| 2×2 | 같은 고유값 2개 | 1개 또는 2개 |
| 3×3 | 서로 다른 고유값 3개 | 항상 3개 |
| 3×3 | 고유값 1개 중복 | 2개 또는 3개 |
| 3×3 | 고유값 1개 3중 | 1~3개 |
주의: 고유값·고유벡터는 정방행렬(square matrix) 에서만 계산 가능합니다.
차원 축소와 투영 (Projection)#
고차원 데이터를 저차원으로 줄이면서 최대한 많은 정보를 보존하는 것이 차원 축소의 목표입니다.
투영의 수식#
데이터 포인트 를 단위 벡터 위로 투영:
- : 점곱으로 투영값 계산
- 를 단위 벡터 ()로 정규화 → 스트레칭 없음
어떤 벡터(방향)로 투영하느냐에 따라 보존되는 정보량이 달라집니다. 분산(퍼짐)이 최대인 방향을 선택해야 정보 손실이 최소화됩니다.
분산과 공분산#
PCA를 이해하려면 두 가지 통계 개념이 필요합니다.
분산 (Variance)#
데이터가 평균에서 얼마나 퍼져 있는지를 나타냅니다.
공분산 (Covariance)#
두 변수가 같은 방향으로 함께 변하는지 를 나타냅니다.
| 공분산 값 | 의미 |
|---|---|
| 양수 | 가 크면 도 큰 경향 (같은 방향) |
| 0 | 두 변수 사이에 선형 관계 없음 |
| 음수 | 가 크면 는 작은 경향 (반대 방향) |
평균과 분산이 같더라도 공분산이 다르면 데이터의 패턴은 전혀 다릅니다.
공분산 행렬 (Covariance Matrix)#
여러 변수들 간의 공분산과 분산을 모두 담은 행렬입니다.
- 대각 원소: 각 변수의 분산
- 비대각 원소: 변수 쌍의 공분산
- 대칭 행렬:
행렬 표기법:
여기서 는 평균을 뺀(중심화된) 데이터 행렬입니다.
PCA — 주성분 분석#
PCA는 투영 + 고유값·고유벡터 + 공분산 행렬을 결합해, 정보를 최대한 보존하며 차원을 줄이는 알고리즘입니다.
핵심 아이디어#
공분산 행렬의 고유벡터 = 데이터가 가장 많이 퍼지는 방향
가장 큰 고유값에 대응하는 고유벡터 = 정보가 가장 많이 담긴 방향 (제1주성분)
PCA 단계별 절차#
1단계 — 데이터 중심화
각 열의 평균을 빼서 평균이 0이 되도록 합니다.
2단계 — 공분산 행렬 계산
3단계 — 고유값·고유벡터 계산
고유값을 내림차순으로 정렬합니다. ()
4단계 — 투영 행렬 생성
원하는 차원 수만큼 고유벡터를 선택해 투영 행렬 를 만듭니다. (각 고유벡터를 단위 벡터로 정규화)
5단계 — 데이터 투영
왜 작동하는가?#
공분산 행렬은 데이터의 퍼짐 방향과 크기를 나타냅니다. 이것을 선형 변환으로 보면, 고유벡터는 변환이 회전 없이 늘리기만 하는 방향이고, 고유값은 얼마나 늘리는지를 나타냅니다.
가장 큰 고유값의 고유벡터 방향으로 투영하면 → 데이터의 분산(정보)이 최대 보존됩니다.
실무에서는? scikit-learn의
PCA(n_components=2)가 이 과정을 자동으로 수행합니다. 얼굴 인식, 노이즈 제거, 시각화에 널리 사용됩니다.
from sklearn.decomposition import PCA
import numpy as np
X = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9],
[1.9, 2.2], [3.1, 3.0], [2.3, 2.7]])
pca = PCA(n_components=1)
X_pca = pca.fit_transform(X)
print("고유값:", pca.explained_variance_)
print("고유벡터:", pca.components_)
print("변환된 데이터:", X_pca)
마르코프 행렬과 이산 동적 시스템#
고유벡터의 실용적인 응용 중 하나가 마르코프 행렬입니다.
마르코프 행렬 (Markov Matrix)#
- 각 원소가 0 이상
- 각 열(column)의 합이 1 — 상태 전이 확률을 나타냄
(예: 맑은 날 → 맑을 확률 90%, 맑은 날 → 흐릴 확률 10%)
상태 벡터 업데이트#
현재 상태 에서 다음 상태:
이 과정을 반복하면 상태 벡터가 수렴(평형) 합니다.
평형 벡터 = 고유값 1에 대응하는 고유벡터
마르코프 행렬은 항상 고유값 1을 가지므로, 장기 균형 상태를 고유벡터로 구할 수 있습니다.
실무에서는? Google의 PageRank 알고리즘이 마르코프 행렬을 사용해 웹페이지 순위를 계산합니다.
전체 핵심 정리#
| 개념 | 설명 |
|---|---|
| 행렬식 = 넓이 | 선형 변환이 단위 정사각형을 얼마나 늘리는지 |
| 곱의 행렬식 = 행렬식의 곱 | |
| 역행렬의 행렬식 = 역수 | |
| 기저 | 공간을 생성하는 최소 선형 독립 벡터 집합 |
| 생성(Span) | 벡터들의 모든 선형 결합으로 도달 가능한 점 집합 |
| 고유벡터 | 변환 후 방향이 바뀌지 않는 벡터 |
| 고유값 | 고유벡터의 스케일 배율 |
| 특성 다항식 | 으로 고유값 계산 |
| 공분산 행렬 | 변수 간 분산/공분산을 담은 대칭 행렬 |
| PCA | 공분산 행렬의 고유벡터로 정보 최대 보존 차원 축소 |
| 마르코프 행렬 | 상태 전이 확률 행렬, 평형 = 고유벡터 |
퀴즈#
Q1. , 일 때, 와 를 구하세요.
정답 보기
이므로 이 변환은 공간을 반전시킵니다.
Q2. 집합 은 의 기저가 될 수 있나요?
정답 보기
이므로 두 벡터는 선형 종속입니다.
같은 방향의 벡터는 직선만 생성하므로 의 기저가 될 수 없습니다.
Q3. 다음 행렬의 고유값을 구하세요.
정답 보기
고유값:
(삼각 행렬의 고유값은 대각 원소입니다.)
Q4. PCA에서 가장 큰 고유값에 해당하는 고유벡터를 선택하는 이유는?
정답 보기
고유값은 해당 방향으로 데이터가 얼마나 퍼지는지(분산) 를 나타냅니다.
가장 큰 고유값 = 데이터의 분산이 최대인 방향 = 정보가 가장 많이 보존되는 방향.
따라서 차원을 줄일 때 정보 손실을 최소화하려면 가장 큰 고유값의 고유벡터 방향을 선택해야 합니다.
Q5. 마르코프 행렬 의 평형 벡터는 무엇의 고유벡터인가요?
정답 보기
마르코프 행렬의 고유값 1 에 대응하는 고유벡터입니다.
즉, 상태 벡터를 아무리 업데이트해도 더 이상 변하지 않는 고정점(fixed point) 이 평형 벡터이며, 이것이 고유값 1의 고유벡터입니다.
이것으로 선형대수 기초 시리즈를 마칩니다. 1장부터 4장까지의 여정을 요약하면:
관련 포스트
벡터, 선형 변환, 행렬 곱셈과 역행렬: 선형대수 기초 3장
벡터의 노름·점곱·스칼라 곱, 선형 변환의 개념, 행렬 곱셈, 역행렬 계산법, 그리고 이 모든 개념이 뉴럴 네트워크(퍼셉트론)에서 어떻게 연결되는지 정리했습니다.
소거법, 행 사다리꼴, 가우스 소거법: 선형대수 기초 2장
소거법으로 선형방정식을 푸는 방법, 행렬의 행 사다리꼴(REF)과 기약 행 사다리꼴(RREF), 가우스 소거법, 랭크(Rank)까지 핵심 개념을 정리했습니다.
선형방정식 시스템과 행렬의 특이성: 선형대수 기초 1장
선형방정식 시스템이 머신러닝에서 어떻게 활용되는지, 특이행렬과 비특이행렬의 차이, 선형 독립/종속, 행렬식 계산법까지 핵심 개념을 정리했습니다.