선형대수 정리 - 특이값 분해
1. 특이값 분해
-
특이값 분해는 고유값 분해와 같은 행렬을 대각화시키는 방법으로 행렬이 정방행렬이든 직사각행렬이든 관계없이 적용이 가능한 점이 특별합니다.
-
실수공간에서 임의의 행렬 $A$가 $m \times n$ 행렬일 때, 특이값 분해가 됩니다.
$A = U\sum V^T$
-
$U$는 $m \times m$ 직교행렬로 left singular vector 라고 부릅니다.
- ($AA^T = U(\sum\sum^T)U^T$)
- $UU^T = I$
-
$V$는 $n \times n$ 직교행렬로 right singular vector 라고 부릅니다.
- ($A^TA = V(\sum^T\sum)V^T$)
- $VV^T = I$
-
$\sum$는 $AA^T, A^TA$를 고유값 분해를 해서 나오는 고유값들의 제곱근을 대각원소로 하는 $m \times n$ 직사각행렬로 그 대각 원소들을 행렬 $A$의 특이값(singular value)라고 부릅니다.
- $AA^T, A^TA$는 모두 대칭행렬이므로 위와 같은 고유값 분해가 항상 가능합니다.
- $AA^T, A^TA$의 고유값들은 모두 0 이상(nonnegative)이며 0이 아닌 고유값들은 서로 동일합니다.
- 행렬 $A$가 선형변환을 시켜주는 함수일 때, $A_{m\times n}a_n = b_m$ 과 식이 나오게 됩니다. 이 식의 의미는 특이행렬 $A$가 $n$차원의 벡터를 선형변환시키면 $m$차원의 벡터로 변환시켜준다는 의미입니다.
- 행렬 $A$의 계수는 $\sum$의 대각 원소 중 영이 아닌 고유값의 개수를 $r \leq min (m,n)$과 같으며, 이 $\sum$ 대각 원소들의 순서는 큰 값이 가장 앞에서 부터 배열되어 있습니다.
2. 특이값 분해의 기하학적 의미
식 $Ax = U\sum V^{T}x$에 따르면 $U, V$는 직교행렬이고 $\sum$은 대각행렬이므로 $x$를 먼저 $V^T$에 의해 회전시킨 후 $\sum$으로 스케일을 변화시키고 다시 $U$로 회전시칸다는 것을 알 수가 있습니다.
- 즉 행렬의 특이값이란 이 선형변환의 스케일 변환을 나타내는 값으로 해석이 가능합니다.
- 고유값 분해와 비교해보면 고유값은 변환에 의해 불변인 방향벡터(고유벡터)에 대한 스케일 factor 이고 특이값은 변환 자체의 스케일 factor로 볼 수 있습니다.
3. Reduced SVD와 행렬근사, 데이터 압축
-
$m \times n $ 행렬 $A$를 SVD로 분해하면 full SVD라 부릅니다. (단, $m > n$)
-
일반적으로는 full SVD를 사용하는 경우는 적으며 동일한 의미를 가지지만 연산량을 훨씬 적은 reduced SVD를 사용합니다. ($s$ = $n$개의 singular value들 중 0이 아닌 것들의 개수가 r개로 $t < r$라고 가정합니다.)
4. 특이값 분해와 pseudo inverse, 최소제곱법
선형시스템 $Ax = b$가 있을 때, 행렬 $A$가 invertible하여 역행렬이 존재하면 $x = A^{-1}b$의 식으로 $x$를 간단하게 구할 수 있습니다.
하지만 현실의 대부분의 문제에서는 역행렬이 존재하지 않는 non-invertible한 상황이 많이 발생하며 역행렬에 근사하는 pseudo inverse인 $A^+$를 사용하여 $x = A^+b$를 계산할 수 있는데 실제로 $x$를 구할 때는 $\vert \vert Ax - b \vert \vert$가 최소가 되는 해를 구합니다.
-
pesudo inverse로 해를 구하는 방식은 최소제곱법을 사용하는 것과 같습니다.
-
원래 역행렬은 정방행렬에서만 정의되지만 pseudo inverse를 사용하여 직사각행렬에서도 특이값 분해로 계산이 되어집니다.
-
$m \times n $ 인 직사각 행렬 $A$가 존재할 때,
$A = U\sum V^{T}$
$A^+ = V\sum U^{T}$
$AA^+ = E_n$ $(m \geq n)$
$A^+A = E_m$ $(m \leq n)$
참고 사이트
- https://darkpgmr.tistory.com/106?category=460967