기본 콘텐츠로 건너뛰기

라벨이 스펙트럴분해인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 스펙트럴 분해(Spectral decomposition)

스펙트럴 분해(Spectral decomposition) 행렬 A의 고유값 집합을 A의 스펙트럼(spectrum) 이라고 합니다. 대칭행렬의 스펙트럼은 다음과 같은 특징이 있습니다. 대칭행렬의 스펙트럼 n×n 차원의 대칭행렬 A에서 A는 n개의 서로다른 고유값을 가집니다. 각 고유값 λ과 그것의 배수는 같은 효과를 나타냅니다. 즉, 고유값의 배수를 적용할 경우 고유벡터의 길이만 변할 뿐 방향은 바뀌지 않습니다. 다른 고유값들에 대응하는 고유벡터들은 직교관계에 있습니다. A는 직교적으로 대각화가 가능합니다. 고유값 분해 방법으로 대칭행렬 A는 고유값을 대각 원소로 하는 대각행렬(D)과 고유벡터들로 구성된 고유 행렬(U)을 사용하여 식 1과 같이 분해할 수 있습니다. 이와 같이 대칭행렬의 고유값분해를 스펙트럴분해(spectral decomposition) 라고 합니다. \begin{align}A & = UDU^{-1} = UDU^T\\ \tag{식 1}& U:\;\text{고유벡터}\\ & D:\;\text{고유값을 대각요소로하는 대각행렬}\end{align} 예 1) 대칭행렬 A에 대해 식 1을 확인해 봅니다. A=np.array([[7, 2],[2,4]]) print(A) [[7 2] [2 4]] eig_val=solve(det(cheM), l) eig_val d, U=la.eig(A) D=np.diag(d) print(D) [[8. 0.] [0. 3.]] print(U.round(3)) [[ 0.894 -0.447] [ 0.447 0.894]] 다음 결과와 같이 행렬 A의 고유행렬에 대한 정규직교적 특징 을 만족합니다. np.allclose(U.T, la.inv(U)) True 결과적으로 위 식과 같이 행렬 A의 고유 분해가 이루어집니다. np.allclose(A, U@D@la.inv(U)) True 예 2) 다음 행렬 A의스펙트럴 분해를 결정합니다....

[data analysis] 직교행렬과 주성분

직교행렬과 주성분(Principal Component) 식 1의 행렬 X를 평균-편차 형태 로 가정합니다. $$\tag{식 1}X=\left[\begin{matrix} x_1 & x_2 & \cdots &x_n \end{matrix}\right]$$ 주성분분석의 목적은 식 2와 같이 X=PY 형태로 변환가능한 p×p차원의 직교 행렬 P를 발견하는 것입니다. \begin{align}\tag{식 2} \begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_p \end{bmatrix} & = \begin{bmatrix}u_1 & u_2 & \cdots & u_p \end{bmatrix}\begin{bmatrix}y_1 \\ y_2 \\ \vdots \\ y_p \end{bmatrix}\\ P&=\begin{bmatrix} u_1 & u_2 & \cdots & u_p \end{bmatrix} \end{align} 식 2에서 새로운 변수 $y_1, y_2, \cdots, y_p$는 상관성이 없고 내림차순으로 정렬된 형태입니다. Y는 P에 대해 X의 좌표벡터 가 됩니다. P가 직교행렬이므로 식 3이 성립합니다( 정규직교의 특징 참조 ). $$\tag{식 3}P^{-1}PY=P^TPY=P^TX \rightarrow Y=P^TX$$ 식 3으로 부터 새로운 변수인 Y 역시 평균-편차 형태이므로 Y의 공분산 행렬을 유도 할 수 있습니다(식 4). $$\tag{식 4}YY^T=(P^TX)(P^TX)^T=P^TXX^TP=P^TSP$$ S는 변수 X에 대한 공분산 행렬로서 대칭행렬입니다. 식 4에서 $YY^T=A$라 하고 S에 대해 정리하면 식 5와 같습니다. $$\tag{식 5}S=PAP^T$$ S가 대칭행렬이고 P가 직교행렬이므로 위 식은 스펙트럴 분해 와 동일한 형태가 됩니다. 그러므로 행렬 $A=YY^T$는 행렬 S의 고유값들을 내림차순으로 정렬한 값들을 대각...