Search
Duplicate

선형대수/ 고유 분해(eigen decomposition)

고윳값(eigen value), 고유벡터(eigen vector), 고유공간(eigen space)

고윳값과 고유벡터는 정사각행렬에서만 존재하며, 모든 정사각행렬은 고윳값과 고유벡터를 갖는다.
반면 정사각이 아닌 행렬은 고윳값과 고유벡터를 가질 수 없다. 대신 특잇값과 특이벡터를 가짐. 기본적으로 행렬이 벡터의 선형 변환임을 생각해 보면 정사각행렬은 벡터를 동일한 차원의 벡터로 바꾸는 변환을 의미한다. 따라서 정사각 행렬에만 존재하는 고유벡터는 차원이 변하는 맥락에 대해서는 적용되지 않음. 그런 경우에는 특이벡터를 사용한다.
행렬은 선형 변환이므로 벡터 공간에 대해 선형 변환을 일으키는데, 그 선형 변환 후에도 벡터 공간 내에 크기만 변화할 뿐 방향은 변하지 않는 벡터들이 존재할 수 있는데, 이 방향이 변하지 않은 벡터들을 고유벡터, 그 고유벡터의 크기를 변화시키는 값을 고윳값이라고 할 수 있다.
방향이 유지되는 벡터를 고유벡터라고 하기 때문에 만일 행렬이 scale만 시키는 행렬이라면 모든 벡터가 고유벡터가 되고, 만일 행렬이 rotate 시키는 행렬이라면 고유벡터는 없게 된다.
유한차원 벡터공간 VV에서 정의된 선형연산자 TT에 대해
[T]β[T]_\beta가 대각행렬이 되도록 하는 VV의 순서기저 β\beta가 존재할 때, 선형연산자 TT는 대각화가능(diagonalizable)하다고 한다.
LAL_\bold{A}가 대각화가능할 때, 정사각행렬 A\bold{A}는 대각화가능(diagonalizable)하다고 한다.
벡터공간 VV의 선형연산자 TT에 대하여,
영벡터가 아닌 벡터 vV\bold{v} \in V와 어떤 스칼라 λ\lambda가 존재하여 다음 식을 만족할 때, 벡터 v\bold{v}TT의 고유벡터(eigenvector)라 하고, 스칼라 λ\lambda를 고유벡터 v\bold{v}에 대응하는 고윳값(eigenvalue)라 한다.
T(v)=λvT(\bold{v}) = \lambda \bold{v}
Mn×n(F)M_{n \times n}(F)에 속하는 행렬 A\bold{A}에 대하여,
LAL_\bold{A}의 고유벡터, 다음 식을 만족하는 스칼라 λ\lambda가 존재하게 만드는 영벡터가 아닌 벡터 vFn\bold{v} \in F^nA\bold{A}의 고유벡터라 하고, 스칼라 λ\lambda를 고유벡터 v\bold{v}에 대응하는 행렬 A\bold{A}의 고윳값이라 한다.
참고로 고유벡터 대신 특성 벡터(characteristic vector, proper vector), 고윳값 대신 특성값(characteristic value, proper value)라고 하기도 한다.
Av=λv\bold{Av} = \lambda \bold{v}
행렬 AMn×n(F)\bold{A} \in M_{n \times n} (F)에 대하여 스칼라 λ\lambdaA\bold{A}의 고윳값이기 위한 필요충분조건은 다음의 식을 만족하는 것이다.
행렬 AMn×n(F)\bold{A} \in M_{n \times n}(F)에 대하여 다항식 f(t)=det(AtIn)f(t) = \det(\bold{A} - t\bold{I}_n)A\bold{A}의 특성다항식(characteristic polynomial)이라 한다.
det(AλIn)=0\det(\bold{A} - \lambda \bold{I}_n) = 0
벡터공간 VV의 선형연산자 TT와 고윳값 λ\lambda에 대하여, 다음 집합 EλE_\lambda를 고윳값 λ\lambda에 대응하는 TT의 고유공간(eigenspace)라 한다.
Eλ={xV:T(x)=λx}=N(TλIV)E_\lambda = \{ \bold{x} \in V : T(\bold{x}) = \lambda \bold{x} \} = N(T - \lambda \bold{I}_V)
고윳값의 특성 다항식과 유사하게 고유벡터를 보면 다음의 널 공간에 속하는 벡터가 바로 고유벡터가 된다.
N(AλIn)N(\bold{A} - \lambda \bold{I}_n)
널 공간이 span하는 공간에 속하는 벡터는 무한히 많기 때문에, 일반적으로 그 중에 basis가 되는 벡터를 대표로 eigen vector로 뽑는다.
이와 비슷하게 λ\lambda에 대응하는 LAL_\bold{A}의 고유공간을 λ\lambda에 대응하는 정사각행렬 A\bold{A}의 고유공간이라 한다.
보다 쉬운 표현으로 Av=λv\bold{Av} = \lambda\bold{v} 관계를 만족하는 모든 벡터 v\bold{v}의 집합를 고유공간이라 하고 EλE_\lambda로 표기한다.

고유 분해(eigen decomposition) 절차

행렬 A=(1141)M2×2(R)\bold{A} = \left( \begin{matrix} 1 & 1 \\ 4 & 1 \end{matrix} \right) \in M_{2 \times 2}(R)에 대한 고윳값 구하기의 예
det(AtI2)=det(1t141t)=t22t3=(t3)(t+1)λ=3,1\det(\bold{A} - t\bold{I}_2) = \det \left( \begin{matrix} 1 - t & 1 \\ 4 & 1 - t \end{matrix} \right) = t^2 - 2t - 3 = (t-3)(t+1) \\ \therefore \lambda = 3, -1
행렬 AMn×n(F)\bold{A} \in M_{n \times n}(F)에 대해 다음이 성립한다.
A\bold{A}의 특성다항식은 nn차 다항식이고, 최고차항의 계수는 (1)n(-1)^n이다.
A\bold{A}에는 최대 nn개의 서로 다른 고윳값이 있다.
행렬 AMn×n(F)\bold{A} \in M_{n \times n}(F)과 고윳값 λ\lambda에 대하여 벡터 vFn\bold{v} \in F^nλ\lambda에 대응하는 A\bold{A}의 고유벡터이기 위한 필요충분조건은 v0\bold{v} \neq \bold{0}이고 (AλI)v=0(\bold{A} - \lambda \bold{I})\bold{v} = \bold{0}이다.
행렬 A=(1141)M2×2(R)\bold{A} = \left( \begin{matrix} 1 & 1 \\ 4 & 1 \end{matrix} \right) \in M_{2 \times 2}(R)와 고윳값 λ=3,1\lambda = 3, -1의 고유벡터 구하기 예.
1.
우선 λ=3\lambda = 3인 경우를 다음처럼 푼다.
B1=Aλ1I=(1141)(3003)=(2142)\bold{B}_1 = \bold{A} - \lambda_1\bold{I} = \left( \begin{matrix} 1 & 1 \\ 4 & 1 \end{matrix} \right) - \left( \begin{matrix} 3 & 0 \\ 0 & 3 \end{matrix} \right) = \left( \begin{matrix} -2 & 1 \\ 4 & 2 \end{matrix} \right)
2.
이 결과를 x=(x1x2)\bold{x} = \left( \begin{matrix} x_1 \\ x_2 \end{matrix} \right)와 곱하고 방정식이 0\bold{0}이 되는 해를 찾는다.
(2142)(x1x2)=(2x1+x24x12xx)=(00)\left( \begin{matrix} -2 & 1 \\ 4 & -2 \end{matrix} \right)\left( \begin{matrix} x_1 \\ x_2 \end{matrix} \right) = \left( \begin{matrix} -2x_1 + x_2 \\ 4x_1 - 2x_x \end{matrix} \right) = \left( \begin{matrix} 0 \\ 0\end{matrix} \right)
3.
위의 해는 x=t(12)\bold{x} = t \left( \begin{matrix} 1 \\ 2 \end{matrix} \right)가 된다.
(1,2)(1, 2)에 임의의 상수를 곱한 모든 벡터라는 뜻.
같은 식으로 λ=1\lambda = -1인 경우에 대해 풀면 x=t(12)\bold{x} = t \left( \begin{matrix} 1 \\ -2 \end{matrix} \right)를 구할 수 있고, 고유벡터는 {(12),(12)}\left\{ \left( \begin{matrix} 1 \\ 2 \end{matrix} \right), \left( \begin{matrix} 1 \\ -2 \end{matrix} \right) \right\}가 된다.

고윳값과 고유벡터의 속성

어떤 행렬의 고윳값이 λ1,λ2,...,λN\lambda_1, \lambda_2, ... , \lambda_N이라고 하면 모든 고윳값의 곱은 행렬식의 값과 같고 모든 고윳값의 합은 대각합(trace)의 값과 같다.
det(A)=i=1Nλitr(A)=i=1Nλi\det(\bold{A}) = \prod_{i=1}^{N} \lambda_i \\ \text{tr}(\bold{A}) = \sum_{i=1}^{N} \lambda_i
nn차원 정방행렬 A\bold{A}에 대해 다음과 같은 사항이 성립한다.
행렬 A\bold{A}nn개의 고윳값-고유벡터를 가진다(복소수인 경우와 중복인 경우를 포함)
행렬의 대각합은 모든 고윳값의 합과 같다.
행렬의 행렬식은 모든 고윳값의 곱과 같다.
행렬 A\bold{A}가 대칭행렬이면 실수 고윳값 nn개를 가지며 고유벡터들이 서로 직교이다.
행렬 A\bold{A}가 대칭행렬이고 고윳값이 모두 양수이면 양의 정부호이고 역행렬이 존재한다. 역도 성립한다.
행렬 A\bold{A}가 어떤 행렬 X\bold{X}의 분산행렬 XX\bold{X}^\top \bold{X}이면 0 또는 양의 고윳값을 가진다.
행렬 X\bold{X}가 풀랭크이면 분산행렬 XX\bold{X}^\top \bold{X}은 역행렬이 존재한다.

고유벡터와 고유값으로 행렬 곱 표현

nn차원 정방행렬 A\bold{A}가 대각화 가능하면 다음과 같이 표현할 수 있다.
A=VΛV1\bold{A} = \bold{V}\boldsymbol{\Lambda}\bold{V}^{-1}
만일 이때 고유벡터들의 행렬 V\bold{V}가 정규 직교(orthogonal) 행렬이면 —행렬의 모든 열들이 orthonormal— V\bold{V}Q\bold{Q}로 표기하고 다음과 같이 표현할 수 있다.
A=QΛQ1\bold{A} = \bold{Q}\boldsymbol{\Lambda}\bold{Q}^{-1}
이것을 이용하여 행렬 A\bold{A}와 벡터 x\bold{x}의 곱을 다음처럼 표현할 수 있다.
Ax=QΛQ1x\bold{Ax} = \bold{Q}\boldsymbol{\Lambda}\bold{Q}^{-1}\bold{x}
이것을 덧셈으로 표현하면 다음과 같이 표현할 수 있다.
여기서 kk는 행렬 A\bold{A}의 고유값의 수이고, λ\lambda는 스칼라이므로 곱셈 앞으로 뺄 수 있다.
Ax=i=1Kλiqiqix=i=1Kλiqi(qiqi)1=1qix\bold{Ax} = \sum_{i=1}^{K} \lambda_i \bold{q}_i \bold{q}_i^\top \bold{x} = \sum_{i=1}^{K} \lambda_i \bold{q}_i \underbrace{(\bold{q}_i^\top\bold{q}_i)^{-1}}_{=1} \bold{q}_i^\top \bold{x}
마지막 부분의 q(qiqi)1qi\bold{q}(\bold{q}_i^\top \bold{q}_i)^{-1} \bold{q}_i^\top는 투영벡터가 된다 —qiqi=1\bold{q}_i^\top \bold{q}_i = 1이므로 q(qiqi)1qi=qiqi\bold{q}(\bold{q}_i^\top \bold{q}_i)^{-1} \bold{q}_i^\top = \bold{q}_i\bold{q}_i^{\top}이 된다
이것은 Ax\bold{Ax}를 벡터 x\bold{x}를 행렬 A\bold{A}의 각 orthonormal 고유벡터 q\bold{q}에 투영(projection)하고 λ\lambda만큼 scaling 한 것으로 이해할 수 있다는 뜻이다. 다시 말해 x\bold{x}A\bold{A}의 고유벡터들의 선형결합으로 표현할 수 있고, 그 가중치는 λ\lambda에 의해 조정된다.

참조