특잇값 분해(Singular Value Decomposition, SVD)
[References]
1. 수치선형대수(Numerical Linear Algebra)
2. SVD (Singular Value Decomposition)
[강의] https://youtu.be/7-qG-A8nXmo
특잇값 분해 (Singular Value Decomposition, SVD)
정리. 행렬 $A\in\mathbb{R}^{m\times n}$ (${\rm rank}(A)=k$)에 대하여 직교행렬 $U\in\mathbb{R}^{m\times m}$, $V\in\mathbb{R}^{n\times n}$가 존재하여 다음이 성립한다.
$A=U \Sigma V^T$ (이를 특잇값 분해 또는 간단히 SVD라고 한다.)
여기서 $\Sigma=\begin{bmatrix} \hat{\Sigma} \quad 0\\ 0 \quad 0 \end{bmatrix}\in\mathbb{R}^{m\times n}$이고, $\hat{\Sigma}={\rm diag}(\sigma_1, \sigma_2, \ldots, \sigma_k)$이다.
이때, $\sigma_1 \ge\sigma_2 \ge \cdots \ge \sigma_k>0$를 $A$의 특잇값(singular value)이라 하고,
$U=[{\bf u}_1\, {\bf u}_2\, \cdots\, {\bf u}_m]$의 열들을 $A$의 left singular vector, $V=[{\bf v}_1\, {\bf v}_2\, \cdots \, {\bf v}_n]$의 열들을 $A$의 right singular vector라고 한다.
다음과 같이 행렬 $A$를 생각해보자. 이때 SVD를 구하려면 RDF 또는 CDF로 설정해야 한다.
$A$의 SVD를 계산한다. (수치적으로 계산)
$A=U \Sigma V^T$ 인지 확인해본다. (여기서는 $\|A-U \Sigma V^T\|_2$을 계산해본다.)
특잇값 분해에 대하여 다음이 성립한다.
정리. 행렬 $A\in\mathbb{R}^{m\times n}$ (${\rm rank}(A)=k$)의 SVD가 다음과 같이 주어져 있다고 하자.
$A=U \Sigma V^T$
그러면 다음이 성립한다.
(1) $V^T(A^TA)V={\rm diag}(\sigma_1^2, \sigma_2^2, \ldots, \sigma_k^2, 0, \ldots, 0)_{n\times n}$
(2) $U^T(AA^T)U={\rm diag}(\sigma_1^2, \sigma_2^2, \ldots, \sigma_k^2, 0, \ldots, 0)_{m\times m}$
즉 $A^TA$의 고유값을 큰 순서대로 나타내었을 때, $k$개의 고유값은 특잇값의 제곱과 같다.
또한 즉 $AA^T$의 고유값을 큰 순서대로 나타내었을 때, $k$개의 고유값은 특잇값의 제곱과 같다.
특잇값 분해의 기타 자세한 내용은 다음을 참고하라. (8.6절 부분)
http://matrix.skku.ac.kr/LA-K/Ch-8/
*SVD의 응용예시: 이미지 프로세싱
http://matrix.skku.ac.kr/sglee/03-Note/IP/ImageProcessing.htm
(아래 SageMathCell에 실습해보세요)
Copyright @ 2023 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee,
Dr. Jae Hwa Lee, and Dr. Yun Nam
*This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (2021R1F1A1046714).