Eigen-Decomposition (고유값 분해),PCA(주성분분석)

/-@,.@-/·2023년 7월 27일
0

Linear Algebra

목록 보기
5/6

Eigen-Decomposition란?

Eigen Value Decomposition으로 고유값 분해라고 합니다.

수식으로 조금 더 쉽게 다가가보면!

Av1\vec{v_1} = λ1\lambda_1v1\vec{v_1}

  • A = matrix, v1\vec{v_1}=eigen vector, λ\lambda=eigen value(constant)

A가 어떤 행렬 m x n일 때, v1\vec{v_1}는 n x 1입니다
Av1\vec{v_1} = m x 1 인데 우변에 있는 v1\vec{v_1}은 n x 1 이니까 결국 m = n이죠.
그래서 A는 square matrix임을 알 수 있습니다.

Av1\vec{v_1} = λ1\lambda_1v1\vec{v_1}, Av2\vec{v_2} = λ2\lambda_2v2\vec{v_2}, Av3\vec{v_3} = λ3\lambda_3v3\vec{v_3}
A[v1v2v3]\begin{bmatrix} \vec{v_1} & \vec{v_2} & \vec{v_3} \end{bmatrix} = [λv1λv2λv3]\begin{bmatrix} \lambda\vec{v_1} & \lambda\vec{v_2} & \lambda\vec{v_3} \end{bmatrix}=[v1v2v3]\begin{bmatrix} \vec{v_1} & \vec{v_2} & \vec{v_3} \end{bmatrix}[λ1000λ2000λ3]\begin{bmatrix} \lambda_1 & 0 & 0\\ 0 & \lambda_2 & 0\\ 0 & 0 & \lambda_3 \\ \end{bmatrix}
이렇게 표현하고 좌변에 있는 vectors도 우변으로 넘겨주고!.

=[v1v2v3]\begin{bmatrix} \vec{v_1} & \vec{v_2} & \vec{v_3} \end{bmatrix} [λ1000λ2000λ3]\begin{bmatrix} \lambda_1 & 0 & 0\\ 0 & \lambda_2 & 0\\ 0 & 0 & \lambda_3 \\ \end{bmatrix} [v1v2v3]1\begin{bmatrix} \vec{v_1} & \vec{v_2} & \vec{v_3} \end{bmatrix}^{-1} = VVΛ\LambdaV1V^{-1} = AA
근데 여기서 람다만 남겨주고 다 넘기면
Λ\Lambda = V1V^{-1}AAVV
diagonalizable이라고 합니다.

또 symmetric matrix면 diagonalizable함
symmetrix matrix는 자기 자신과 transpose한 값과 동일하기 때문에
AA=ATA^T
AA=VVΛ\LambdaV1V^{-1}를 transpose하면
VTV^{-T}Λ\LambdaVTV^{T}
V1V^{-1} = VTV^{T}

PCA란?

Principal Component Analysis의 약자로 주성분 분석입니다.

쉽게 데이터 포인트들이 각각 존재할 때 각 데이터들의 분산이 가장 큰 방향이 주성분입니다.

왜 분산이 가장 큰 방향이 주성분인가?
어떤 데이터와 데이터를 잇는 방향과 다른 데이터들을 내적을 했을 때 오차값이 가장 작아야지 잘 설명하는 것인데 그 방향이 분산이 가장 큰 방향입니다.

minu1Ni(didiTuu)T(didiTuu)uTu=1\min_{\vec{u}} \frac{1}{N}\sum_i (\vec{d}_i-\vec{d}_i^T\vec{u}\cdot\vec{u})^T(\vec{d}_i-\vec{d}_i^T\vec{u}\cdot\vec{u}) \\ \vec{u}^T\cdot\vec{u} = 1

길이는 1로 기준으로 보자.

위식을 전개하며 u를 최소화하는 것이기 때문에 필요한 것만 보면

1NiuTdidiTu-\frac{1}{N}\sum_i\vec{u}^T\vec{d_i}\vec{d}_i^T\vec{u}

di\vec{d_i}=d~i\vec{\tilde{d}}_i-dˉ\vec{\bar{d}}
dˉ\bar{d} = 데이터들의 평균

uT-\vec{u}^T1Ni(d~idˉ)(d~idˉ)T\frac{1}{N}\sum_i(\vec{\tilde{d}_i}-\vec{\bar{d}})(\vec{\tilde{d}_i}-\vec{\bar{d}})^Tu\vec{u}
빨간색으로 칠한 부분이 sample covariance matrix입니다.
빨간 부분은 RdR_d라고 하고 식을 보면
uTRdu-\vec{u}^TR_d\vec{u}인데 마이너스가 붙어있으니까 가장 크게 만드는 것이 가장 작아지니까 maximize하는 것입니다

maxuuTRdu\max_{\vec{u}} \vec{u}^TR_d\vec{u}

Lagrange multiplier
최적화 문제에서 사용하는 방법인데 최대 최소값을 찾으려는 문제 해결방법입니다
objective function과 constraints을 λ\lambda를 이용하여 편미분 값이 0이 되는 변수의 해를 찾는 것.

L=uTRdu+λ(1uTu)L=\vec{u}^TR_d\vec{u} + \lambda(1-\vec{u}^T\vec{u})
Lu=uTRdu+uTRduλuTuλuTu\partial L_{\vec{u}} = \partial\vec{u}^TR_d\vec{u} + \vec{u}^TR_d\partial\vec{u}-\lambda\partial\vec{u}^T\vec{u}-\lambda\vec{u}^T\partial\vec{u}
=(2uTRd2λuT)u=(2\vec{u}^TR_d-2\lambda\vec{u}^T)\partial\vec{u}

2uTRd2λuT=02\vec{u}^TR_d-2\lambda\vec{u}^T=0이 되도록하는 u를 찾으면 됩니다
더 해보면

uTRd=λuT\vec{u}^TR_d=\lambda\vec{u}^T
=(uTRd)T=(λuT)T=(\vec{u}^TR_d)^T=(\lambda\vec{u}^T)^T
=Rdu=λu=R_d\vec{u} = \lambda\vec{u}
위 람다는 eigen value!!
위 식을 eigen decomposition 하면
uTRdu\vec{u}^TR_d\vec{u} = uT(λ1q1q1T+λ2q2q2T+λ3q3q3T+ ⁣)u\vec{u}^T(\lambda_1\vec{q}_1\vec{q}_1^T + \lambda_2\vec{q}_2\vec{q}_2^T + \lambda_3\vec{q}_3\vec{q}_3^T+ \dotsi)\vec{u}
u\vec{u}가 가장 큰 값이 λ1\lambda_1 다음으로 큰 값이 λ2\lambda_2 eigendecomposition에서 projection한 것과 같기 때문에 람다 하나하나의 값들은 전부 orthogonal하기 때문에 다음으로 큰 값은 수직입니다!

profile
공부한 것과 관심 있는 것을 정리합니다.

0개의 댓글