logo

完全な特異値分解の存在証明 📂行列代数

完全な特異値分解の存在証明

概要

固有値の対角化 は正方行列であるという制限があったが、特異値分解 (SVD) にはそのような制約はなかった。

このような便利な分解法が全ての行列に通用するか、つまり分解の存在を明らかにすることは非常に重要な問題だと言える。

定理

3つの自然数 $m \ge n \ge r = \text{rank} A$ に対して、行列 $A \in \mathbb{R}^{m \times n}$ はSVDを持つ。

証明

任意のベクトル $\mathbf{x} \ne \mathbb{0}$ に対して $\mathbf{x}^{T} A^{T} A \mathbf{x} = || A \mathbf{x} || ^2 > 0$ であるから、$A^{T} A$ の固有値 $\sigma_{i}^{2}$ は $i \le r$ において正、$i > r$ において $0$ である。便宜のため $$ \sigma_{1} \ge \sigma_{2} \ge \cdots \ge \sigma_{r}>0 = \sigma_{r+1} = \cdots = \sigma_{n} $$ と置き、対角行列 $S := \text{diag} ( \sigma_{1} , \sigma_{2} , \cdots , \sigma_{r})$ を定義する。互いに直交正規である $\mathbf{v}_{1} , \mathbf{v}_{2} , \cdots , \mathbf{v}_{n}$ がそれぞれ $\sigma_{1} , \sigma_{2} , \cdots , \sigma_{n}$ に対応するとすると $$ A^{T} A \mathbf{v}_{i} = \sigma_{i}^2 \mathbf{v}_{i} $$ 次に $$ V_1 := \begin{bmatrix} \mathbf{v}_{1} & \mathbf{v}_{2} & \cdots & \mathbf{v}_{r} \end{bmatrix} \\ V_2 := \begin{bmatrix} \mathbf{v}_{r+1} & \mathbf{v}_{r+2} & \cdots & \mathbf{v}_{n} \end{bmatrix} $$ を構成すると $$ V := \begin{bmatrix} V_{1} & V_{2} \end{bmatrix} $$ は直交行列である。$V_{1}$ に対して $A^{T} A V_{1} = V_{1} S^2$ であり、双方に $V_{1}^{T}$ を掛けると $$ V_{1}^{T} A^{T} A V_{1} = V_{1}^{T} V_{1} S^2 = S^2 $$ ここで $U_{1} : = A V_{1} S^{-1}$ とすると $$ U_{1}^{T} A V_{1} = ( A V_{1} S^{-1} )^{T} A V_{1} = S^{-1} (A V_{1})^{T} A V_{1} = S^{-1} \cdot S^2 = S $$ $V_{2}$ に対して $\sigma_{r+1} = \cdots = \sigma_{n} = 0$ であるから $$ A^{T} A V_{2} = V_{2} O = \mathbb{0} $$ であり、双方に $V_{2}^{T}$ を掛けると $$ V_{2}^{T} A^{T} A V_{2} = \| A V_{2} \|^2 = 0 $$

これで $$ U : = \begin{bmatrix} U_{1} & U_{2} \end{bmatrix} $$ が直交行列になるように $U_{2}$ を定義すると $U_{2}^{T} U_{1} = 0$ であり、$AV_{1} = U_{1} S$ の双方に $U_{2}^{T}$ を掛けると $$ U_{2}^{T} AV_{1} = U_{2}^{T} U_{1} S = 0 $$ 一方 $$ U_{1}^{T} U_{1} = ( A V_{1} S^{-1} ) ^{T} ( A V_{1} S^{-1} ) = S V_{1}^{T} A^{T} A V S^{-1} = I $$ であるから $U_{1} \in \mathbb{R}^{m \times r}$ は直交正規ベクトルで構成されている。しかし $U_{1}$ が直交行列であることを示したわけではないので $U_{1} U_{1}^{T} = I$ は分からず、$A V_{1} = U_{1} S$ をする必要があるのは次のとおり。 $$ \begin{align*} && U^{T} A V_{1} = \begin{bmatrix} U_{1}^{T} \\ U_{2}^{T} \end{bmatrix} A V_{1} = \begin{bmatrix} U_{1}^{T} A V_{1} \\ U_{2}^{T} A V_{1} \end{bmatrix} = \begin{bmatrix} S \\ O \end{bmatrix} \\ \iff & AV_{1} = U \begin{bmatrix} S \\ O \end{bmatrix} = \begin{bmatrix} U_{1} & U_{2} \end{bmatrix} \begin{bmatrix} S \\ O \end{bmatrix} = U_{1} S \end{align*} $$

最後に $\Sigma : = \begin{bmatrix} S & O \\ O & O \end{bmatrix} \in \mathbb{R}^{m \times m}$ を定義すると、 $$ \begin{align*} AV =& A \begin{bmatrix} V_{1} & V_{2} \end{bmatrix} \\ =& \begin{bmatrix} A V_{1} & A V_{2} \end{bmatrix} \\ =& \begin{bmatrix} U_{1} S & O \end{bmatrix} \\ =& \begin{bmatrix} U_{1} & U_{2} \end{bmatrix} \begin{bmatrix} S & O \\ O & O \end{bmatrix} \\ =& U \Sigma \end{align*} $$ 結果として $A = U \Sigma V^{T} = U_{1} S V_{1}^{T}$、すなわちSVDを得る。

一般化

定理の条件は $A \in \mathbb{R}^{m \times n}$ だが、実際には $A \in \mathbb{C}^{m \times n}$ に一般化可能である。