{{위키데이터 속성 추적}}
'''특잇값 분해'''(Singular Value Decomposition, '''SVD''')는 [[행렬]]을 특정한 구조로 [[행렬 분해|분해]]하는 방식으로, [[신호 처리]]와 [[통계학]] 등의 분야에서 자주 사용된다.

특잇값 분해는 행렬의 [[스펙트럼 이론]]을 임의의 직사각행렬에 대해 일반화한 것으로 볼 수 있다. 스펙트럼 이론을 이용하면 [[직교행렬|직교 정사각행렬]]을 [[고윳값]]을 기저로 하여 대각행렬로 분해할 수 있다.

== 정의 ==
[[파일:Singular value decomposition visualisation.svg|섬네일|280x280픽셀|특잇값 분해의 행렬곱을 시각화한 그림]]
[[실수]]나 [[복소수]]로 이루어진 [[체 (수학)|체]] ''K''의 원소로 구성되는 ''m'' × ''n'' 행렬 ''M''에 대해, ''M''은 다음과 같은 세 행렬의 곱으로 분해할 수 있다.

:<math>M = U\Sigma V^*\!</math>

여기에서 각 행렬은 다음과 같은 성질을 가진다.
* <math>U</math>는 ''m'' × ''m'' 크기를 가지는 [[유니터리 행렬]]이다.
* <math>\Sigma</math>는 ''m'' × ''n'' 크기를 가지며, 대각선상에 있는 원소의 값은 음수가 아니며 나머지 원소의 값이 모두 0인 [[대각행렬]]이다.
* <math>V^{*}</math>는 ''V''의 [[켤레전치]] 행렬로, ''n'' × ''n'' [[유니터리 행렬]]이다.
행렬 ''M''을 이와 같은 세 행렬의 곱으로 나타내는 것을 ''M''의 특잇값 분해라고 한다.

일반적으로 Σ 행렬은 더 큰 값이 먼저 나오도록, 즉 <math>(\Sigma)_{i,i} \ge (\Sigma)_{i+1, i+1}</math>이 되도록 구하며, 이렇게 할 경우 Σ는 ''M''에 따라 유일하게 결정된다.

== 예제 ==
다음과 같은 행렬 <math>A</math>가 있을 때,
:<math>A = 
\begin{bmatrix}
1 & 0 & 0 & 0 & 2\\
0 & 0 & 3 & 0 & 0\\
0 & 0 & 0 & 0 & 0\\
0 & 4 & 0 & 0 & 0\end{bmatrix}
</math>

이 행렬을 <math>A = U \Sigma V^*</math>로 분해하면 다음과 같다.
:<math>
U = \begin{bmatrix}
0 & 0 & 1 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 0 & -1\\
1 & 0 & 0 & 0\end{bmatrix} ,

\Sigma = \begin{bmatrix}
4 & 0 & 0 & 0 & 0\\
0 & 3 & 0 & 0 & 0\\
0 & 0 & \sqrt{5} & 0 & 0\\
0 & 0 & 0 & 0 & 0\end{bmatrix} ,

V^* = \begin{bmatrix}
0 & 1 & 0 & 0 & 0\\
0 & 0 & 1 & 0 & 0\\
\sqrt{0.2} & 0 & 0 & 0 & \sqrt{0.8}\\
0 & 0 & 0 & 1 & 0\\
-\sqrt{0.8} & 0 & 0 & 0 & \sqrt{0.2}\end{bmatrix}
</math>

여기에서 특잇값 분해 결과는 유일하지 않다. 예를 들어, 위의 결과에서 <math>V^*</math>를
:<math>V^* = \begin{bmatrix} 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0\\ \sqrt{0.2} & 0 & 0 & 0 & \sqrt{0.8}\\ \sqrt{0.4} & 0 & 0 & \sqrt{0.5} & -\sqrt{0.1}\\ -\sqrt{0.4} & 0 & 0 & \sqrt{0.5} & \sqrt{0.1} \end{bmatrix}</math>
로 교체할 수도 있다.

== 특잇값과 특이벡터 ==

''m'' × ''n'' 행렬 ''M''에 대해 다음 두 조건을 만족하는 벡터 <math>u \in K^m</math>과 <math>v \in K^n</math>이 존재할 때, 음수가 아닌 실수 σ를 '''특잇값'''이라 부른다.

:<math>Mv = \sigma u \, , M^{*} u = \sigma v. \,\!</math>

또한 ''u''와 ''v''를 각각 '''좌측 특이벡터'''와 '''우측 특이벡터'''라 부른다.

특잇값 분해 <math>M = U \Sigma V^*\!</math>에서 Σ의 대각선 성분들은 ''M''의 특잇값이 되고 ''U''와 ''V''의 열들은 각각의 특잇값에 해당하는 좌측 특이벡터와 우측 특이벡터가 된다. 또한 위 식으로부터 다음과 같은 사실도 알 수 있다.

* ''m'' × ''n'' 행렬 ''M''은 최소한 한개, 최대 ''p'' = min(''m'', ''n'')개의 서로 다른 특잇값을 갖는다.
* ''M''의 좌측 특이벡터들을 포함하는, ''K''<sup>''m''</sup>의 유니터리 기저를 항상 찾을 수 있다.
* ''M''의 우측 특이벡터들을 포함하는, ''K''<sup>''n''</sup>의 유니터리 기저를 항상 찾을 수 있다.

== 고유값 분해와의 관계 ==

특잇값 분해는 정사각행렬만을 분해할 수 있는 고윳값 분해보다 훨씬 일반적인 행렬을 다룰 수 있지만, 두 분해는 서로 관련되어 있다.

''M''이 [[양의 정부호 행렬|양의 정부호]]인 [[에르미트 행렬]]일 때 ''M''의 모든 고윳값은 음이 아닌 실수이다. 이때 ''M''의 특잇값과 특이벡터는 ''M''의 고윳값과 고유벡터와 같아진다.

:<math>M = V \Lambda V^* \!</math>

더 일반적으로는, ''M''의 특잇값 분해가 주어졌을 때 다음과 같은 두 식이 성립한다.

:<math>M^* M = V \Sigma^* U^* U \Sigma V^* = V (\Sigma^* \Sigma) V^* \!</math>
:<math>M M^* = U \Sigma V^* V \Sigma^* U^* = U (\Sigma \Sigma^* ) U^* \!</math>

두 식의 우변은 좌변의 고윳값 분해를 나타낸다. 즉, ''M''의 0이 아닌 특잇값들의 제곱은 ''M''<sup>*</sup>''M'' 과 ''MM''<sup>*</sup>의 고윳값들과 같다. 또한 ''U''는 ''MM''<sup>*</sup>의 고유벡터이고 ''V''는 ''M''<sup>*</sup>''M''의 고유벡터이다.
== 같이 보기 ==
* [[표준 형식]]
* [[대응 분석]]
* [[차원의 저주]]
* [[디지털 신호 처리]]
* [[차원 축소 (통계학)]]
* [[고유값 분해]]
* [[푸리에 해석]]
* [[특잇값]]
* [[잠재 의미 분석]]
* [[푸리에 관련 변환의 목록]]
* [[행렬 분해]]
* [[최근접 이웃 탐색]]
* [[극분해]]
* [[주성분 분석]]
* [[스미스 표준형]]
* [[특잇값]]
* [[시계열]]

[[분류:행렬 분해]]
[[분류:행렬론]]
[[분류:수치선형대수학]]