Search

고윳값 분해 (2)

Created at
2018/12/02
Updated at
Tags
Keywords
3 more properties

고윳값행렬과 고유벡터행렬

NN차원의 정방행렬 AANN개의 고윳값과 이에 대응하는 고유벡터를 가질 때, 그 고윳값과 고유벡터를 다음과 같이 표시하자
고윳값: λ1,λ2,,λN\lambda_1, \lambda_2, \cdots, \lambda_N
고윳벡터: v1,v2,,vNv_1, v_2, \cdots, v_N
이 고윳값과 고유벡터를 묶어서 아래와 같이 고유벡터 행렬, 고윳값 행렬을 정의
고유벡터 행렬 VV: 고유벡터를 옆으로 쌓아서 만든 행렬
V=[v1vN],VRN×NV = \begin{bmatrix} v_1 & \cdots & v_N \end{bmatrix},\quad V \in R^{N \times N}
고윳값 행렬 Λ\Lambda: 고윳값을 대각성분으로 가지는 대각행렬
Λ=[λ1000λ2000λN],ΛRN×N\Lambda = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ 0 & 0 & \cdots & \lambda_N \end{bmatrix}, \quad \Lambda \in R^{N \times N}

행렬의 대각화(diagonalization)

위와 같이 고유벡터행렬과 고윳값행렬을 정의하면 행렬과 고유벡터행렬의 곱고유벡터행렬과 고윳값행렬의 곱과 같음
AV=VΛAV = V\Lambda
유도 과정
AV=A[v1vN]=[Av1AvN]=[λ1v1λ2vN]=[v1vN][λ1000λ2000λN]=VΛ\begin{aligned} AV & = A \begin{bmatrix} v_1 & \cdots & v_N \end{bmatrix} \\ & = \begin{bmatrix} Av_1 & \cdots & Av_N \end{bmatrix} \\ & = \begin{bmatrix} \lambda_1 v_1 & \cdots & \lambda_2 v_N \end{bmatrix} \\ & = \begin{bmatrix} v_1 & \cdots & v_N \end{bmatrix} \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ 0 & 0 & \cdots & \lambda_N \end{bmatrix} \\ & = V \Lambda \end{aligned}
행렬의 대각화: 고유벡터행렬 $V$의 역행렬이 존재한다면 행렬을 다음처럼 고유벡터행렬과 고윳값행렬의 곱으로 표현 가능
A=VΛV1A = V\Lambda V^{-1}

대각화가능(diagonalizable)

행렬이 대각화가능하려면 고유벡터가 선형독립이어야 함 (= 고유벡터행렬 VV에 역행렬이 존재)

고윳값과 역행렬

대각화가능한 행렬에 0인 고윳값이 없으면 항상 역행렬이 존재함
증명
대각화가능 행렬 AA: A=VΛV1\quad A = V \Lambda V^{-1}
AA의 역행렬: A1=(VΛV1)1=VΛ1V1\quad A^{-1} = (V \Lambda V^{-1})^{-1} = V \Lambda^{-1} V^{-1}
대각행렬의 역행렬은 각 대각성분의 역수로 이루어진 대각행렬이므로 0인 고윳값이 없으면 항상 역행렬이 존재함

대칭행렬의 고유분해

행렬 AA가 실수인 대칭행렬이면 고윳값이 실수이고 고유벡터는 직교(orthogonal)
만약 고유벡터가 크기가 1이 되도록 정규화된 상태라면 고유벡터 행렬 VV는 다음과 같이 전치 행렬이 역행렬임
VTV=VVT=1V^TV = VV^T = 1
V1=VTV^{-1} = V^T
따라서, 대칭행렬은 항상 대각화가능

대칭행렬을 랭크-1 행렬의 합으로 분해

NN차원 대칭행렬 AA는 다음처럼 NN개의 랭크-1 행렬 Ai=viviTA_i = v_i v_i^T의 합으로 표시할 수 있음
A=VΛVT=[v1v2vN][λ1000λ2000λN][v1Tv2TvNT]=[λ1v1λ2v2λNvN][v1Tv2TvNT]=i=1NλiviviT=i=1NλiAi=λ1A1++λNAN\begin{aligned} A & = V \Lambda V^T \\ & = \begin{bmatrix} v_1 & v_2 & \cdots & v_N \end{bmatrix} \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ 0 & 0 & \cdots & \lambda_N \end{bmatrix} \begin{bmatrix} v_1^T \\ v_2^T \\ \vdots \\ v_N^T \end{bmatrix} \\ & = \begin{bmatrix} \lambda_1 v_1 & \lambda_2 v_2 & \cdots & \lambda_N v_N \end{bmatrix} \begin{bmatrix} v_1^T \\ v_2^T \\ \vdots \\ v_N^T \end{bmatrix} \\ & = \sum_{i=1}^N \lambda_i v_i v_i^T \\ & = \sum_{i=1}^N \lambda_i A_i \\ & = \lambda_1 A_1 + \cdots + \lambda_N A_N \\ \end{aligned}
아래와 같은 이미지로 나타낼 수 있음
만약 0인 고윳값이 없다면 역행렬도 아래처럼 표시할 수 있음
A1=VΛ1VT=i=1N1λiviviT=1λ1A!++1λNANA^{-1} = V \Lambda^{-1}V^T = \sum_{i=1}^N \dfrac{1}{\lambda_i}v_iv_i^T = \dfrac{1}{\lambda_1}A_! + \cdots + \dfrac{1}{\lambda_N}A_N

대칭행렬의 간략화

대칭행렬을 랭크-1 행렬의 합으로 분해할 때 각 요소는 모두 단위벡터인 고유벡터로 만들어진 행렬이므로 행렬의 놈이 1이 됨
하지만 고윳값은 크기가 다양하게 나타날 수 있음
따라서 고윳값이 작은 항을 몇 개 생략해도 원래의 행렬과 큰 차이가 나지 않을 것
A=λ1A1++λNAN  (λ1>>λN)λ1A1++λMAM  (N>M)\begin{aligned} A & = \lambda_1A_1 + \cdots + \lambda_NA_N \; (\lambda_1 > \cdots > \lambda_N) \\\\ & \approx \lambda_1A_1 + \cdots + \lambda_MA_M \; (N > M) \end{aligned}

공분산행렬(covariance matrix)

공분산행렬: 임의의 실수 행렬 XX에 대해 XTXX^TX인 정방행렬
공분산행렬은 양의 준정부호임(positive semidefinite) - 음수인 고윳값은 없음
vT(XTX)v=(Xv)T(Xv)=uTu0v^T(X^TX)v = (Xv)^T(Xv) = u^Tu \ge 0
모든 벡터 vv에 대해 공분산행렬에 대한 이차형식은 어떤 벡터의 제곱합이 됨
따라서 0 또는 양수인 고윳값만 가짐

고윳값과 양의 정부호

대칭행렬의 경우 다음 성질이 성립함
1.
대칭행렬의 고윳값이 모두 양수이면 그 행렬은 양의 정부호(positive definite )이다.
2.
역으로 양의 정부호(positive definite)인 대칭행렬의 고윳값은 항상 양수이다.

공분산행렬의 역행렬

공분산행렬에서는 다음 성질이 성립함
행렬 XX가 풀랭크이면 이 행렬의 공분산행렬 XTXX^TX의 역행렬이 존재한다.
그림: 양의 정부호 행렬에 대한 고윳값-고유벡터의 성질 (출처: 데이터 사이언스 스쿨 - 고윳값 분해)

고유분해의 성질 정리

N 차원 정방행렬 A에 대해 다음 성질이 성립한다.
1.
행렬 AANN개의 고윳값-고유벡터를 가진다. (복소수인 경우와 중복인 경우를 포함)
2.
행렬의 대각합은 모든 고윳값의 합과 같다.
3.
행렬의 행렬식은 모든 고윳값의 곱과 같다.
4.
행렬 AA가 대칭행렬이면 NN개의 실수 고윳값을 가지며 고유벡터들이 서로 수직(orthogonal)이다.
5.
행렬 AA가 대칭행렬이고 고윳값이 모두 양수이면 양의 정부호(positive-definite)이고 역행렬이 존재한다. 역도 성립한다.
6.
행렬 AA가 어떤 행렬 X의 공분산행렬 XTXX^TX이면 00 또는 양의 고윳값을 가진다.
7.
행렬 XX가 풀랭크이면 공분산행렬 XTXX^TX은 역행렬이 존재한다.
참고 자료