logo

特異値分解による最小二乗法 📂行列代数

特異値分解による最小二乗法

アルゴリズム

ACm×nA \in \mathbb{C}^{m \times n} とベクターbCm\mathbf{b} \in \mathbb{C}^{m}に対してrankA=n\text{rank} A = nであり、Ax=bA \mathbf{x} = \mathbf{b}の最小二乗解をx\mathbf{x}_{\ast}とする。

Step 1. 特異値分解

A=U^Σ^VA = \widehat{U} \widehat{\Sigma} V^{\ast}を満たす直交行列U^\widehat{U}対角行列Σ^\widehat{\Sigma}ユニタリ行列VVを見つける。


Step 2.

特異値分解から得たU^\widehat{U}を通じて射影P:=U^U^P : = \widehat{U} \widehat{U}^{\ast}を求める。

Ax=PbA \mathbf{x}_{\ast} = P \mathbf{b}であるため、U^Σ^Vx=U^U^b\widehat{U} \widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \widehat{U} \widehat{U}^{\ast} \mathbf{b}であり、両辺の左にU^\widehat{U}^{\ast}をかけてΣ^Vx=U^b\widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \widehat{U}^{\ast} \mathbf{b}を得る。


Step 3.

y:=U^b\mathbf{y} := \widehat{U}^{\ast} \mathbf{b}を計算してΣ^Vx=y\widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \mathbf{y}を得る。


Step 4.

Σ^Vx=y\widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \mathbf{y}w:=Vx\mathbf{w} : = V^{\ast} \mathbf{x}_{\ast}と置いて、w\mathbf{w}に対する方程式Σ^w=y\widehat{\Sigma} \mathbf{w} = \mathbf{y}の解を求める。


Step 5.

VVユニタリ行列なのでx=Vw\mathbf{x}_{\ast} = V \mathbf{w}を計算する。