SVD分解求解线性方程组
1. SVD分解
任一实矩阵 A m × n \mathbf{A}_{m \times n} Am×n (典型情况: m ≥ n m \ge n m≥n),都可分解为:
A = U Σ V ⊤ \mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top A=UΣV⊤
U m × m \mathbf{U}_{m \times m} Um×m:酉矩阵, U \mathbf{U} U 的列向量叫做 A \mathbf{A} A 的左奇异向量
V n × n \mathbf{V}_{n \times n} Vn×n:酉矩阵, V \mathbf{V} V的列向量叫做 A \mathbf{A} A 的右奇异向量
Σ
m
×
n
\boldsymbol{\Sigma}_{m \times n}
Σm×n:对角线元素叫做
A
\mathbf{A}
A 的奇异值 ,沿对角线呈递减排列,且是非负值
Σ
m
×
n
=
[
σ
0
0
0
⋯
0
0
σ
1
0
⋯
0
0
0
σ
2
⋯
0
⋮
⋮
⋮
⋱
⋮
0
0
0
⋯
σ
n
0
0
0
⋯
0
⋮
⋮
⋮
⋱
⋮
0
0
0
⋯
0
]
where
σ
i
≥
σ
i
+
1
σ
i
≥
0
\boldsymbol{\Sigma}_{m \times n} = \begin{bmatrix} \sigma_0 &0 &0 &\cdots &0\\ 0 &\sigma_1 &0 &\cdots &0\\ 0 &0 &\sigma_2 &\cdots &0 \\ \vdots &\vdots &\vdots &\ddots &\vdots\\ 0 &0 &0 &\cdots &\sigma_n\\ 0 &0 &0 &\cdots &0\\ \vdots &\vdots &\vdots &\ddots &\vdots\\ 0 &0 &0 &\cdots &0 \end{bmatrix} \\ \text{where } \sigma_i \ge \sigma_{i+1} \\ \sigma_i \ge 0
Σm×n=
σ000⋮00⋮00σ10⋮00⋮000σ2⋮00⋮0⋯⋯⋯⋱⋯⋯⋱⋯000⋮σn0⋮0
where σi≥σi+1σi≥0
2. 求解齐次线性方程组
齐次线性方程组:
A x = 0 \mathbf{A} \mathbf{x} = \mathbf{0} Ax=0
这里需要说明一下:
- 若 x \mathbf{x} x 是一个解,那么 λ ⋅ x \lambda \cdot \mathbf{x} λ⋅x 也是一个解
- 零解不是我们想要的
于是为了简便,表达为如下的带约束的最优化问题:
min ∣ ∣ A x ∣ ∣ 2 ,s.t. ∣ ∣ x ∣ ∣ = 1 \min||\mathbf{A} \mathbf{x}||^2, \text{s.t. } ||\mathbf{x}|| = 1 min∣∣Ax∣∣2,s.t. ∣∣x∣∣=1
2.1 推导过程
∣ ∣ A x ∣ ∣ 2 = ∣ ∣ U Σ V ⊤ x ∣ ∣ 2 = ∣ ∣ Σ V ⊤ x ∣ ∣ 2 ||\mathbf{A} \mathbf{x}||^2 = ||\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top \mathbf{x}||^2 = ||\boldsymbol{\Sigma} \mathbf{V}^\top \mathbf{x}||^2 ∣∣Ax∣∣2=∣∣UΣV⊤x∣∣2=∣∣ΣV⊤x∣∣2
令 y = V ⊤ x \mathbf{y} = \mathbf{V}^\top \mathbf{x} y=V⊤x,那么 ∣ ∣ y ∣ ∣ = 1 ||\mathbf{y}|| = 1 ∣∣y∣∣=1,则
min ∣ ∣ A x ∣ ∣ 2 = min ∣ ∣ Σ y ∣ ∣ 2 \min ||\mathbf{A} \mathbf{x}||^2 = \min ||\boldsymbol{\Sigma} \mathbf{y}||^2 min∣∣Ax∣∣2=min∣∣Σy∣∣2
可得 y = [ 0 , ⋯ , 1 ] ⊤ \mathbf{y} = [0, \cdots , 1]^\top y=[0,⋯,1]⊤ 一定是其中一个解,于是 x \mathbf{x} x 等于 V \mathbf{V} V 的最后一列。
3. 求解非齐次线性方程组
非齐次线性方程组:
A x = b \mathbf{A} \mathbf{x} = \mathbf{b} Ax=b
表达为如下最优化问题:
min ∣ ∣ A x − b ∣ ∣ 2 \min||\mathbf{A} \mathbf{x} - \mathbf{b}||^2 min∣∣Ax−b∣∣2
3.1 推导过程
∣ ∣ A x − b ∣ ∣ 2 = ∣ ∣ U Σ V ⊤ x − b ∣ ∣ 2 = ∣ ∣ Σ V ⊤ x − U ⊤ b ∣ ∣ 2 ||\mathbf{A} \mathbf{x} - \mathbf{b}||^2 = ||\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top \mathbf{x} - \mathbf{b}||^2 = ||\boldsymbol{\Sigma} \mathbf{V}^\top \mathbf{x} - \mathbf{U}^\top \mathbf{b}||^2 ∣∣Ax−b∣∣2=∣∣UΣV⊤x−b∣∣2=∣∣ΣV⊤x−U⊤b∣∣2
令 y = V ⊤ x , c = U ⊤ b \mathbf{y} = \mathbf{V}^\top \mathbf{x}, \mathbf{c} = \mathbf{U}^\top \mathbf{b} y=V⊤x,c=U⊤b,则
min ∣ ∣ A x − b ∣ ∣ 2 = min ∣ ∣ Σ y − c ∣ ∣ 2 \min ||\mathbf{A} \mathbf{x} - \mathbf{b}||^2 = \min ||\boldsymbol{\Sigma} \mathbf{y} - \mathbf{c}||^2 min∣∣Ax−b∣∣2=min∣∣Σy−c∣∣2
可得 y i = c i / σ i y_i = c_i / \sigma_i yi=ci/σi, x = V y \mathbf{x} = \mathbf{V} \mathbf{y} x=Vy。