Mathematics

[선형대수학#14] 고유값과 고유벡터

j.d 2026. 3. 29. 13:18

이번 포스팅에서는 행렬이 벡터에 작용할 때 방향이 변하지 않는 특별한 벡터, 즉 고유벡터와 그에 대응하는 고유값을 정리한다.

 

선형 연산(Linear Operator)

이전 행렬 변환 포스팅에서 선형 변환을 다뤘다. 덧셈보존($L(\mathbf{a} + \mathbf{b}) = L(\mathbf{a}) + L(\mathbf{b})$)과 스칼라 곱 보존($L(r\mathbf{a}) = rL(\mathbf{a})$)을 만족하는 함수$L \colon V \to W$가 선형 변환이었고, 모든 행렬 변환은 선형 변환이었다.

 

고유값과 고유벡터는 특별히 $V = W$인 경우, 즉 같은 공간에서 같은 공간으로의 선형 변환 $L \colon V \to W$를 다룬다. 이를 선형 연산(inear operator)이라 한다. 행렬 $A$를 벡터에 곱하는 것($\mathbf{x} \mapsto A\mathbf{x}$)이 대포적인 linear operator이며, 이 경우 $A$는 반드시 정방행렬($n \times n$)이다. 입력과 출력의 차원이 같아야 하기 때문이다.

 

 

고유값과 고유벡터의 정의

$n \times n$행렬 $A$에 대해, 0이 아닌 벡터 $\mathbf{x}$가 존재하여 

 

$$A\mathbf{x} = \lambda\mathbf{x}$$

 

를 만족하면 $\lambda$를 고유값(eigenvalue), 이 방정식을 만족하는 0이 아닌 모든 벡터 $\mathbf{x}$를 고유벡터(eigenvector)라 한다.

 

출처: https://robosathi.com/docs/maths/linear_algebra/eigen-value-decomposition/

 

직관적으로, 행렬 $A$를 벡터에 곱하면 일반적으로 방향과 크기가 모두 바뀐다. 그런데 고유벡터는 $A$를 곱해도 방향은 유지되고 크기만 $\lambda$배 변하는 특별한 벡터이다. $\lambda > 1$이면 늘어나고, $0 < \lambda < 1$이면 줄어들고, $\lambda < 0$이면 방향이 발전된다. $\lambda = 1$이면 $A$를 곱해도 아예 변하지 않는다. 

 

고유값을 구하는 방법

$A\mathbf{x} = \lambda\mathbf{x}$를 어떻게 풀까? 우변을 좌변으로 옮기면

 

$$A\mathbf{x} - \lambda\mathbf{x} = \mathbf{0} \implies (A - \lambda I)\mathbf{x} = \mathbf{0}$$

 

이다. 이것은 $ (A - \lambda I)$를 계수 행렬로 하는 동차 연립방정식이다. 우리가 원하는 건 0이 아닌 $\mathbf{x}$, 즉 nontrivial solution이다. 랭크를 다뤘던 포스팅에서 다뤘던 동치 조건을 떠올려보면, $(A - \lambda I)\mathbf{x} = \mathbf{0}$이 nontrivial solution을 가지려면 $ A - \lambda I$가 singular(역행렬이 존재하지 않음)이어야 한다. 이는 곧 

 

$$det(A - \lambda I) = 0$$

 

을 의미한다. 이 식을 $A$의 특성 방정식(characteristic equation)이라 하고, $det(\lambda I_n - A)$를 $\lambda$에 대한 다항식으로 전개한 것을 특성 다항식(characteristic polynomial)이라 한다. $n \times n$행렬의 특성 다항식은 $\lambda$에 대한 $n$차 다항식이므로, 고유값은 중복을 포함하여 최대 $n$개 존재한다.

 

 

고유벡터와 고유공간

고유값$\lambda$를 구한 뒤, 각 $\lambda$에 대해 $(A - \lambda I)\mathbf{x} = \mathbf{0}$을 출면 고유 벡터를 얻는다. 이 동차 연립방정식의 해공간을 고유공간(eigenspace) 이라 한다. 고유공간은 이전 포스팅에서 다뤘던 null space와 같은 개념이다. $A - \lambda I$의 null space가 곧 $\lambda$에 대응하는 고유공간이다.

 

고유벡터는 하나의 벡터가 아니라 고유공간에 속하는 모든 0이 아닌 벡터임에 주의하자. 고듀벡터의 스칼라 배도 고유벡터이다.

 

 

예시

 

1. 고유값이 존재하지 않는 경우

 

$90^\circ$ 반시계 방향 전환 $L\left(\begin{pmatrix} x_1 \\ x_2 \end{pmatrix}\right) = \begin{pmatrix} -x_2 \\ x_1 \end{pmatrix}$에 대해 $L(\mathbf{x}) = \lambda \mathbf{x}$를 풀어보자.

 

$$-x_2 = \lambda x_1, x_1 = \lambda x_2$$

 

두 식을 결합하면 $x_1 = -\lambda^2x_1$이므로 $x_1(\lambda^2 + 1) = 0$이다. $x_1 \neq 0$이면 $\lambda^2 + 1 = 0$, 즉 $\lambda \pm i$가 된다. 실수 범위에서 해가 없으므로, 이 변환은 실수 고유값을 갖지 않는다. 직관적으로 생각해보면 $ 90^\circ $회전은 어떤 벡터도 원래 방향으로 두지 않으니 맞다. 

 

2. 고유값이 존재하는 경우

 

$A = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix}$에 대해 고유값과 고유벡터를 구하자.

 

1) 특성 방정식을 세운다. 

 

$$\det(\lambda I - A) = \begin{vmatrix} \lambda - 1 & -1 \\ 0 & \lambda + 1 \end{vmatrix} = (\lambda - 1)(\lambda + 1) = 0$$

$$ \therefore \lambda = 1 \text{ 또는 } \lambda = -1 $$

 

2) 각 고유값에 대해 $(A - \lambda I)\mathbf{x} = \mathbf{0}$을 푼다.

 

$\lambda = 1$인 경우:

 

$$(A + I)\mathbf{x} = \begin{pmatrix} 2 & 1 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} \implies x_2 = -2x_1$$

 

$x_1$은 자유 변수이므로 고유공간은 $\mathbf{x} = s \begin{pmatrix} 1 \\ 0 \end{pmatrix} (x \neq 0)$이다.

 

$\lambda = -1$인 경우:

 

$$(A + I)\mathbf{x} = \begin{pmatrix} 2 & 1 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} \implies x_2 = -2x_1$$

 

고유공간은 $\mathbf{x} = p \begin{pmatrix} 1 \\ -2 \end{pmatrix} (p \neq 0)$이다.

 

검산해 보면, $A \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \end{pmatrix} = 1 \cdot \begin{pmatrix} 1 \\ 0 \end{pmatrix}$이고, $A \begin{pmatrix} 1 \\ -2 \end{pmatrix} = \begin{pmatrix} -1 \\ 2 \end{pmatrix} = (-1) \cdot \begin{pmatrix} 1 \\ -2 \end{pmatrix}$이다. 각각 방향이 유지되고 크기만 $\lambda$배 변한 것을 확인할 수 있다.

 

Nonsingular 동치 조건의 확장

이전 포스팅에서 정리했던 nonsingular 행렬의 동치 조건에 고유값 관련 조건을 추가할 수 있다. $A$가 $n \times n$ 정방행렬일 때, 기존 조건들에 더해 다음이 동치이다.

 

$\lambda  = 0$은 $A$의 고유값이 아니다. 

 

$\lambda = 0$이 고유값이면 $A\mathbf{x} = 0 \cdot \mathbf{x} = \mathbf{0}$, 즉 $A\mathbf{x} = \mathbf{x} = \mathbf{0}$이 nontrivial solution을 가진다는 뜻이다. 이는 $A$가 singular임을 의미한다. 반대로 $A$가 nonsingular이면 $det(A) \neq 0$이고, $det(A - 0 \cdot I) = det(A) \neq 0$이므로 $\lambda = 0$은 고유값이 될 수 없다. 이렇게 이전 포스팅들에서 다뤘던 개념들이 고유값에서도 일관되게 연결된다.

 


 

ML에서 고유값과 고유벡터가 가장 직접적으로 사용되는 곳은 PCA(Principla Component Analysis)이다. 데이터의 공분산 행렬(covariance matrix)을 고유값 분해하면, 고유벡터가 데이터의 분산이 가장 큰 방향(주성분)을 나타내고, 고유값이 그 방향의 분산 크기를 나타낸다. 큰 고유값에 대응하는 고유벡터만 선택하면 정보 손실을 최소화하면서 차원을 축소할 수 있다. SVD(Singular Value Decomposition)도 본질적으로 고유값 분해를 일반화한 것이다.