Mathematics/Linear Algebra

[Linear Algebra] 고윳값 분해(eigen decomposition)

언킴 2022. 3. 5. 14:14
반응형

변수의 보편적인 성질을 찾아내면 변수를 더 잘 이해할 수 있는 것들이 많다. 소인수 분해를 통해 16을 설명한다면 $2^4$로 간결하게 이해할 수 있을 것이다. 비슷한 맥락으로 행렬을 다양한 방식으로 분해하게 되면 기존의 구성에서는 미처 발견하지 못하는 여러 기능적인 속성을 발견할 수도 있다. 이럴때 가장 많이 사용되는 행렬 분해 방법 중 하나는 고윳값 분해(eigen decomposition)이다. 특이값 분해도 많이 사용되지만, 다음에 다루어 볼 것이다. 

 

고윳값 분해는 행렬을 고유벡터(eigen vector)고윳값(eigen value)으로 분해한다. 정방행렬 $\boldsymbol{A}$의 고유벡터는 하나의 0이 아닌 벡터이며, $\boldsymbol{A}$와 곱해도 $\boldsymbol{x}$의 스케일(scale)만 변한다는 조건을 만족하며, 수식으로 표현하면 다음과 같다. 

 

$\boldsymbol{Ax} = \lambda \boldsymbol{x}$

 

여기서 $\boldsymbol{v}$가 $\boldsymbol{A}$의 고유벡터이면, $\forall s\in \mathbb{R}, s \neq 0$ 으로 곱한 벡터 $s \boldsymbol{b}$도 $\boldsymbol{A}$의 한 고유벡터이다. 행렬 $\boldsymbol{A}$에 선형독립인 n개의 고유벡터 집합 {$\boldsymbol{v}^{(1)},..., \boldsymbol{v}^{(n)}$ }이 있고, 각 벡터에 대응되는 고윳값 집합 {$\lambda_1, ... , \lambda_n$}이 있다고 하자. 이 고유벡터들로 이루어진 행렬 $\boldsymbol{V}$=[$\boldsymbol{v}^{(1)},...,\boldsymbol{v}^{(n)}]$과 고유값들로 이루어진 벡터 $\boldsymbol{\lambda} = [ \lambda_1, ..., \lambda_n]^T$를 만들 수 있다. 이 행렬과 벡터를 통해 행렬 $\boldsymbol{A}$의 고윳값 분해를 정의할 수 있으며, 고윳값 분해는 다음과 같이 정의된다. 

 

$\boldsymbol{A} = \boldsymbol{V} diag(\boldsymbol{\lambda})\boldsymbol{V}^{-1}$

 

행렬을 분해하게 되면 보다 복잡한 상호관계를 쉽게 표현해주어 이해하는 것에 있어 도움을 제공해줄 수 있다. 위와 같이 새로운 행렬을 구축하는 것이 아니라 기존 행렬의 고윳값과 고유벡터들로 분해하는 경우도 많다. 도입부에 언급한 것 처럼 소인수 분해의 결과가 정수를 이해하는데 도움을 제공해주는 것과 마찬가지로, 행렬을 분해해 행렬의 특징을 파악하는데 도움이 된다. 

 

$\boldsymbol{A} = \boldsymbol{Q}\boldsymbol{\Lambda}\boldsymbol{Q}^T$

 

여기서 $\boldsymbol{Q}$는 행렬 $\boldsymbol{A}$의 고유벡터로 이루어진 직교행렬(orthogonal matrix)이고, $\boldsymbol{\Lambda}$는 대각행렬이다. 이때 $\boldsymbol{\Lambda}_{i,i}$는 $\boldsymbol{Q}$ 열 $i$의 고유벡터와 연관된다. 만약 대각행렬의 성분 중 하나라도 0이면, 행렬은 특이행렬이 된다. 

 

  • positive definite : 모든 고윳값이 양수인 행렬을 의미한다.
  • positive semidefinite : 모든 고윳값이 양수 혹은 0인 행렬을 의미한다.
  • negative definite : 모든 고윳값이 음수인 행렬을 의미한다.
  • negative semidefinite : 모든 고윳값이 음수 혹은 0인 행렬을 의미한다.