完整教程:矩阵奇异值分解算法(SVD)的导数 / 灵敏度分析
1️、基本定义
设矩阵 X ∈ R m × n X \in \mathbb{R}^{m\times n} X∈Rm×n,其奇异值分解为:
X = U Σ V ⊤ , X = U \Sigma V^\top, X=UΣV⊤,
其中:
- U ∈ R m × m U \in \mathbb{R}^{m\times m} U∈Rm×m 为左奇异向量矩阵;
- V ∈ R n × n V \in \mathbb{R}^{n\times n} V∈Rn×n 为右奇异向量矩阵;
- Σ = diag ( σ 1 , σ 2 , … , σ r ) \Sigma = \operatorname{diag}(\sigma_1, \sigma_2, \ldots, \sigma_r) Σ=diag(σ1,σ2,…,σr) 为奇异值对角阵( r = rank ( X ) r = \operatorname{rank}(X) r=rank(X))。
我们关心:
当
X
X
X 发生微小扰动
d
X
\mathrm{d}X
dX 时,
U
,
Σ
,
V
U, \Sigma, V
U,Σ,V 如何变化?
即:
d
X
=
d
(
U
Σ
V
⊤
)
.
\mathrm{d}X = \mathrm{d}(U \Sigma V^\top).
dX=d(UΣV⊤).
2️、基本微分关系
微分展开:
d X = ( d U ) Σ V ⊤ + U ( d Σ ) V ⊤ + U Σ ( d V ) ⊤ . \mathrm{d}X = (\mathrm{d}U)\Sigma V^\top + U(\mathrm{d}\Sigma)V^\top + U\Sigma (\mathrm{d}V)^\top. dX=(dU)ΣV⊤+U(dΣ)V⊤+UΣ(dV)⊤.
左乘 U ⊤ U^\top U⊤、右乘 V V V:
U ⊤ ( d X ) V = U ⊤ ( d U ) Σ + d Σ + Σ ( d V ) ⊤ V . U^\top (\mathrm{d}X) V = U^\top (\mathrm{d}U)\Sigma + \mathrm{d}\Sigma + \Sigma (\mathrm{d}V)^\top V. U⊤(dX)V=U⊤(dU)Σ+dΣ+Σ(dV)⊤V.
定义:
A : = U ⊤ d U , B : = V ⊤ d V , A := U^\top \mathrm{d}U, \quad B := V^\top \mathrm{d}V, A:=U⊤dU,B:=V⊤dV,
由于 U , V U, V U,V 为正交矩阵( U ⊤ U = I , V ⊤ V = I U^\top U = I, V^\top V = I U⊤U=I,V⊤V=I),所以:
A ⊤ = − A , B ⊤ = − B . A^\top = -A, \quad B^\top = -B. A⊤=−A,B⊤=−B.
于是有:
U ⊤ ( d X ) V = A Σ + d Σ − Σ B . U^\top (\mathrm{d}X) V = A \Sigma + \mathrm{d}\Sigma - \Sigma B. U⊤(dX)V=AΣ+dΣ−ΣB.
记:
E : = U ⊤ ( d X ) V , E := U^\top (\mathrm{d}X) V, E:=U⊤(dX)V,
则:
E = A Σ + d Σ − Σ B . E = A\Sigma + \mathrm{d}\Sigma - \Sigma B. E=AΣ+dΣ−ΣB.
3️、提取奇异值微分
由于 d Σ \mathrm{d}\Sigma dΣ 仅在对角线上有分量,取 E E E 的对角部分即可:
d σ i = E i i . \mathrm{d}\sigma_i = E_{ii}. dσi=Eii.
即:
d Σ = diag ( E 11 , E 22 , … , E r r ) . \boxed{ \mathrm{d}\Sigma = \operatorname{diag}(E_{11}, E_{22}, \ldots, E_{rr}). } dΣ=diag(E11,E22,…,Err).
4️、提取奇异向量微分( U , V U,V U,V 的导数)
对于非对角元素 i ≠ j i\neq j i=j,从上式:
E i j = A i j σ j − σ i B i j . E_{ij} = A_{ij}\sigma_j - \sigma_i B_{ij}. Eij=Aijσj−σiBij.
由 A ⊤ = − A A^\top = -A A⊤=−A, B ⊤ = − B B^\top = -B B⊤=−B 可得:
A i j = σ j E i j + σ i E j i σ j 2 − σ i 2 , B i j = σ i E i j + σ j E j i σ i 2 − σ j 2 . A_{ij} = \frac{\sigma_j E_{ij} + \sigma_i E_{ji}}{\sigma_j^2 - \sigma_i^2}, \quad B_{ij} = \frac{\sigma_i E_{ij} + \sigma_j E_{ji}}{\sigma_i^2 - \sigma_j^2}. Aij=σj2−σi2σjEij+σiEji,Bij=σi2−σj2σiEij+σjEji.
因此:
A
i
j
=
σ
j
E
i
j
+
σ
i
E
j
i
σ
j
2
−
σ
i
2
,
i
≠
j
,
B
i
j
=
σ
i
E
i
j
+
σ
j
E
j
i
σ
i
2
−
σ
j
2
,
i
≠
j
.
\boxed{ \begin{aligned} A_{ij} &= \frac{\sigma_j E_{ij} + \sigma_i E_{ji}}{\sigma_j^2 - \sigma_i^2}, \quad i \neq j, \ B_{ij} &= \frac{\sigma_i E_{ij} + \sigma_j E_{ji}}{\sigma_i^2 - \sigma_j^2}, \quad i \neq j. \end{aligned} }
Aij=σj2−σi2σjEij+σiEji,i=j,Bij=σi2−σj2σiEij+σjEji,i=j.
对角元 A i i = B i i = 0 A_{ii} = B_{ii} = 0 Aii=Bii=0。
5️、重写成矩阵形式
定义 Hadamard(逐元素)除法 ⊘ \oslash ⊘。
设 S S S 为分母矩阵:
S i j = { σ j 2 − σ i 2 , i ≠ j , 1 , i = j . S_{ij} = \begin{cases} \sigma_j^2 - \sigma_i^2, & i \neq j, \ 1, & i = j. \end{cases} Sij={σj2−σi2,i=j,1,i=j.
定义:
K
i
j
=
{
1
σ
j
2
−
σ
i
2
,
i
≠
j
,
0
,
i
=
j
.
K_{ij} = \begin{cases} \frac{1}{\sigma_j^2 - \sigma_i^2}, & i \neq j,\ 0, & i = j. \end{cases}
Kij={σj2−σi21,i=j,0,i=j.
则矩阵化表达为:
A = K ⊙ ( Σ E ⊤ + E Σ ) , B = K ⊙ ( Σ E + E ⊤ Σ ) , A = K \odot (\Sigma E^\top + E \Sigma), \quad B = K \odot (\Sigma E + E^\top \Sigma), A=K⊙(ΣE⊤+EΣ),B=K⊙(ΣE+E⊤Σ),
其中 ⊙ \odot ⊙ 表示逐元素乘法。
6、奇异值分解的灵敏度分析(Sensitivity Analysis of SVD)
设矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A∈Rm×n 的奇异值分解为:
A = U Σ V ⊤ , U ⊤ U = I m , V ⊤ V = I n A = U \Sigma V^\top, \quad U^\top U = I_m, \quad V^\top V = I_n A=UΣV⊤,U⊤U=Im,V⊤V=In
其中:
Σ = d i a g ( σ 1 , σ 2 , … , σ r ) , r = r a n k ( A ) \Sigma = \mathrm{diag}(\sigma_1, \sigma_2, \ldots, \sigma_r), \quad r = \mathrm{rank}(A) Σ=diag(σ1,σ2,…,σr),r=rank(A)
奇异值满足 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 \sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r > 0 σ1≥σ2≥⋯≥σr>0。
6.1 微扰定义
对矩阵 A A A 施加一个微扰 d A \mathrm{d}A dA,则其对应的奇异值分解变为:
A + d A = ( U + d U ) ( Σ + d Σ ) ( V + d V ) ⊤ A + \mathrm{d}A = (U + \mathrm{d}U)(\Sigma + \mathrm{d}\Sigma)(V + \mathrm{d}V)^\top A+dA=(U+dU)(Σ+dΣ)(V+dV)⊤
忽略高阶微小项,展开得到:
d A = d U Σ V ⊤ + U d Σ V ⊤ + U Σ d V ⊤ \mathrm{d}A = \mathrm{d}U \Sigma V^\top + U \mathrm{d}\Sigma V^\top + U \Sigma \mathrm{d}V^\top dA=dUΣV⊤+UdΣV⊤+UΣdV⊤
将两边同时左乘 U ⊤ U^\top U⊤、右乘 V V V,得:
U ⊤ d A V = U ⊤ d U Σ + d Σ + Σ d V ⊤ V U^\top \mathrm{d}A V = U^\top \mathrm{d}U \Sigma + \mathrm{d}\Sigma + \Sigma \mathrm{d}V^\top V U⊤dAV=U⊤dUΣ+dΣ+ΣdV⊤V
定义:
E : = U ⊤ d A V E := U^\top \mathrm{d}A V E:=U⊤dAV
Ω U : = U ⊤ d U , Ω V : = V ⊤ d V \Omega_U := U^\top \mathrm{d}U, \quad \Omega_V := V^\top \mathrm{d}V ΩU:=U⊤dU,ΩV:=V⊤dV
注意到由于 U , V U,V U,V 是正交矩阵:
Ω U ⊤ = − Ω U , Ω V ⊤ = − Ω V \Omega_U^\top = -\Omega_U, \quad \Omega_V^\top = -\Omega_V ΩU⊤=−ΩU,ΩV⊤=−ΩV
因此:
E = Ω U Σ + d Σ − Σ Ω V E = \Omega_U \Sigma + \mathrm{d}\Sigma - \Sigma \Omega_V E=ΩUΣ+dΣ−ΣΩV
6.2 对角元素:奇异值的微分
取上述等式的对角线部分:
d i a g ( E ) = d i a g ( Ω U Σ − Σ Ω V ) + d i a g ( d Σ ) \mathrm{diag}(E) = \mathrm{diag}(\Omega_U \Sigma - \Sigma \Omega_V) + \mathrm{diag}(\mathrm{d}\Sigma) diag(E)=diag(ΩUΣ−ΣΩV)+diag(dΣ)
由于 Ω U \Omega_U ΩU、 Ω V \Omega_V ΩV 均为反对称矩阵,故其对角元为 0:
d i a g ( Ω U ) = d i a g ( Ω V ) = 0 \mathrm{diag}(\Omega_U) = \mathrm{diag}(\Omega_V) = 0 diag(ΩU)=diag(ΩV)=0
于是:
d σ i = E i i = u i ⊤ d A , v i \boxed{\mathrm{d}\sigma_i = E_{ii} = u_i^\top \mathrm{d}A, v_i} dσi=Eii=ui⊤dA,vi
这说明奇异值的微分仅依赖于对应奇异向量的双边投影,是线性且直接的。
6.3 非对角部分:奇异向量的微分关系
考虑 i ≠ j i \ne j i=j 的非对角部分:
E i j = ( Ω U Σ − Σ Ω V ) i j E_{ij} = (\Omega_U \Sigma - \Sigma \Omega_V)_{ij} Eij=(ΩUΣ−ΣΩV)ij
展开得:
E i j = Ω U , i j σ j − σ i Ω V , i j E_{ij} = \Omega_{U,ij}\sigma_j - \sigma_i \Omega_{V,ij} Eij=ΩU,ijσj−σiΩV,ij
和上式的对称项:
E j i = Ω U , j i σ i − σ j Ω V , j i E_{ji} = \Omega_{U,ji}\sigma_i - \sigma_j \Omega_{V,ji} Eji=ΩU,jiσi−σjΩV,ji
结合反对称性( Ω U , j i = − Ω U , i j \Omega_{U,ji} = -\Omega_{U,ij} ΩU,ji=−ΩU,ij, Ω V , j i = − Ω V , i j \Omega_{V,ji} = -\Omega_{V,ij} ΩV,ji=−ΩV,ij)得:
E j i = − Ω U , i j σ i + σ j Ω V , i j E_{ji} = -\Omega_{U,ij}\sigma_i + \sigma_j \Omega_{V,ij} Eji=−ΩU,ijσi+σjΩV,ij
由此得到两个线性方程:
{ E i j = Ω U , i j σ j − σ i Ω V , i j E j i = − Ω U , i j σ i + σ j Ω V , i j \begin{cases} E_{ij} = \Omega_{U,ij}\sigma_j - \sigma_i \Omega_{V,ij} \ E_{ji} = -\Omega_{U,ij}\sigma_i + \sigma_j \Omega_{V,ij} \end{cases} {Eij=ΩU,ijσj−σiΩV,ijEji=−ΩU,ijσi+σjΩV,ij
解得 Ω U , i j \Omega_{U,ij} ΩU,ij 和 Ω V , i j \Omega_{V,ij} ΩV,ij:
Ω U , i j = σ j E i j + σ i E j i σ j 2 − σ i 2 Ω V , i j = σ i E i j + σ j E j i σ j 2 − σ i 2 \boxed{ \begin{aligned} \Omega_{U,ij} &= \frac{\sigma_j E_{ij} + \sigma_i E_{ji}}{\sigma_j^2 - \sigma_i^2} \ \Omega_{V,ij} &= \frac{\sigma_i E_{ij} + \sigma_j E_{ji}}{\sigma_j^2 - \sigma_i^2} \end{aligned} } ΩU,ij=σj2−σi2σjEij+σiEjiΩV,ij=σj2−σi2σiEij+σjEji
6.4 奇异向量的微分表达式
由定义 d U = U Ω U \mathrm{d}U = U \Omega_U dU=UΩU、 d V = V Ω V \mathrm{d}V = V \Omega_V dV=VΩV,得:
d u i = ∑ j ≠ i u j , Ω U , j i = ∑ j ≠ i u j σ j E j i + σ i E i j σ j 2 − σ i 2 d v i = ∑ j ≠ i v j , Ω V , j i = ∑ j ≠ i v j σ i E j i + σ j E i j σ j 2 − σ i 2 \boxed{ \begin{aligned} \mathrm{d}u_i &= \sum_{j \ne i} u_j , \Omega_{U,ji} = \sum_{j \ne i} u_j \frac{\sigma_j E_{ji} + \sigma_i E_{ij}}{\sigma_j^2 - \sigma_i^2} \ \mathrm{d}v_i &= \sum_{j \ne i} v_j , \Omega_{V,ji} = \sum_{j \ne i} v_j \frac{\sigma_i E_{ji} + \sigma_j E_{ij}}{\sigma_j^2 - \sigma_i^2} \end{aligned} } dui=j=i∑uj,ΩU,ji=j=i∑ujσj2−σi2σjEji+σiEijdvi=j=i∑vj,ΩV,ji=j=i∑vjσj2−σi2σiEji+σjEij
6.5 灵敏度的几何解释
d σ i = u i ⊤ d A v i \mathrm{d}\sigma_i = u_i^\top \mathrm{d}A v_i dσi=ui⊤dAvi
→ 表示 σ i \sigma_i σi 对 A A A 的线性响应:奇异值变化等于 A A A 的微扰在对应奇异向量方向上的投影。d u i \mathrm{d}u_i dui 和 d v i \mathrm{d}v_i dvi
→ 表示奇异向量的旋转变化由 不同奇异值间的差异 控制:
当 σ i ≈ σ j \sigma_i \approx \sigma_j σi≈σj 时,分母 σ j 2 − σ i 2 \sigma_j^2 - \sigma_i^2 σj2−σi2 变小,导致奇异向量变化敏感(不稳定)。
6.6 奇异值简并(重复)的特殊情况
若某些奇异值重复( σ i = σ j \sigma_i = \sigma_j σi=σj),上式分母为 0,此时:
- 奇异值的导数仍存在;
- 但奇异向量的导数 不唯一(可在对应子空间内任意旋转)。
可通过对等价子空间求导或采用 分块处理法(block SVD derivative) 来稳定计算。
6.7 最终总结表
| 导数对象 | 表达式 | 含义 |
|---|---|---|
| 奇异值 σ i \sigma_i σi | d σ i = u i ⊤ ( d A ) v i \displaystyle \mathrm{d}\sigma_i = u_i^\top (\mathrm{d}A) v_i dσi=ui⊤(dA)vi | 奇异值的线性微分 |
| 左奇异向量 u i u_i ui | d u i = ∑ j ≠ i u j σ j E j i + σ i E i j σ j 2 − σ i 2 \displaystyle \mathrm{d}u_i = \sum_{j \ne i} u_j \frac{\sigma_j E_{ji} + \sigma_i E_{ij}}{\sigma_j^2 - \sigma_i^2} dui=j=i∑ujσj2−σi2σjEji+σiEij | 左奇异向量的灵敏度 |
| 右奇异向量 v i v_i vi | d v i = ∑ j ≠ i v j σ i E j i + σ j E i j σ j 2 − σ i 2 \displaystyle \mathrm{d}v_i = \sum_{j \ne i} v_j \frac{\sigma_i E_{ji} + \sigma_j E_{ij}}{\sigma_j^2 - \sigma_i^2} dvi=j=i∑vjσj2−σi2σiEji+σjEij | 右奇异向量的灵敏度 |
| 辅助定义 | E = U ⊤ ( d A ) V E = U^\top (\mathrm{d}A) V E=U⊤(dA)V | 在奇异向量基下的扰动分量 |
7️、特殊情况与稳定性讨论
奇异值重复:当 σ i = σ j \sigma_i = \sigma_j σi=σj 时,分母为零,导数不唯一(灵敏度趋于无穷大)。
- 可通过子空间投影方式获得“整体子空间导数”而非单一向量导数。
数值稳定性建议:
- 在实现时应避免直接计算 ( σ i 2 − σ j 2 ) − 1 (\sigma_i^2 - \sigma_j^2)^{-1} (σi2−σj2)−1;
- 对接近相等的奇异值,可使用“正则化”形式:
1 σ j 2 − σ i 2 + ε , \frac{1}{\sigma_j^2 - \sigma_i^2 + \varepsilon}, σj2−σi2+ε1,
以防止除零。
8️、 在优化 / 自然梯度中的应用
对于矩阵函数
f
(
X
)
=
U
Σ
V
⊤
f(X) = U\Sigma V^\top
f(X)=UΣV⊤,常需计算梯度
∂
f
∂
X
\frac{\partial f}{\partial X}
∂X∂f。
由链式法则:
∂ f ∂ X = U ( ∂ f ∂ Σ + A Σ − Σ B ) V ⊤ . \frac{\partial f}{\partial X} = U \left( \frac{\partial f}{\partial \Sigma} + A\Sigma - \Sigma B \right) V^\top. ∂X∂f=U(∂Σ∂f+AΣ−ΣB)V⊤.
这在以下领域中极为常见:
- 自适应滤波器(Adaptive Filtering)
- 稳定子空间跟踪(Subspace Tracking)
- 矩阵微分几何(Matrix Manifold Optimization)
- 深度学习中的低秩约束优化
9️、小型数值例子
下面取一个简单的 ( 2 \times 2 ) 矩阵:
X = [ 3 1 0 2 ] X = \begin{bmatrix} 3 & 1 \ 0 & 2 \end{bmatrix} X=[3102]
对其进行 SVD 分解:
X = U Σ V ⊤ X = U \Sigma V^{\top} X=UΣV⊤
1️、手动计算 SVD(近似数值)
我们先计算:
$$
X^{\top} X =
\begin{bmatrix}
3 & 0
1 & 2
\end{bmatrix}^{\top}
\begin{bmatrix}
3 & 1
0 & 2
\end{bmatrix}
\begin{bmatrix}
9 & 3
3 & 5
\end{bmatrix}
$$
计算其特征值(即奇异值平方):
det ( X ⊤ X − λ I ) = ( 9 − λ ) ( 5 − λ ) − 9 = λ 2 − 14 λ + 36 = 0 \det(X^{\top} X - \lambda I) = (9-\lambda)(5-\lambda) - 9 = \lambda^2 - 14\lambda + 36 = 0 det(X⊤X−λI)=(9−λ)(5−λ)−9=λ2−14λ+36=0
解得:
λ 1 , 2 = 12.606 , ; 1.394 \lambda_{1,2} = 12.606, ; 1.394 λ1,2=12.606,;1.394
因此:
σ 1 = 12.606 ≈ 3.55 , σ 2 = 1.394 ≈ 1.18 \sigma_1 = \sqrt{12.606} \approx 3.55, \quad \sigma_2 = \sqrt{1.394} \approx 1.18 σ1=12.606≈3.55,σ2=1.394≈1.18
2️、右奇异向量 ( V )
从方程:
( X ⊤ X ) v i = σ i 2 v i (X^{\top} X) v_i = \sigma_i^2 v_i (X⊤X)vi=σi2vi
可得对应特征向量:
v 1 ∝ [ 0.881 0.473 ] , v 2 ∝ [ − 0.473 0.881 ] v_1 \propto \begin{bmatrix} 0.881 \ 0.473 \end{bmatrix}, \quad v_2 \propto \begin{bmatrix} -0.473 \ 0.881 \end{bmatrix} v1∝[0.8810.473],v2∝[−0.4730.881]
正交归一化后:
V = [ 0.881 − 0.473 0.473 0.881 ] V = \begin{bmatrix} 0.881 & -0.473 \ 0.473 & 0.881 \end{bmatrix} V=[0.881−0.4730.4730.881]
3️、左奇异向量 ( U )
由定义 ( U = X V \Sigma^{-1} ),得到:
$$
U = X V \Sigma^{-1}
\begin{bmatrix}
3 & 1
0 & 2
\end{bmatrix}
\begin{bmatrix}
0.881 & -0.473
0.473 & 0.881
\end{bmatrix}
\begin{bmatrix}
1/3.55 & 0
0 & 1/1.18
\end{bmatrix}
$$
计算得:
U ≈ [ 0.956 0.289 0.289 − 0.956 ] U \approx \begin{bmatrix} 0.956 & 0.289 \ 0.289 & -0.956 \end{bmatrix} U≈[0.9560.2890.289−0.956]
4️、构造验证
U Σ V ⊤ ≈ [ 3 1 0 2 ] U \Sigma V^{\top} \approx \begin{bmatrix} 3 & 1 \ 0 & 2 \end{bmatrix} UΣV⊤≈[3102]
验证通过
5️、引入微小扰动 ( \Delta X )
设扰动矩阵为:
Δ X = ϵ [ 0 1 0 0 ] , ϵ = 1 0 − 4 \Delta X = \epsilon \begin{bmatrix} 0 & 1 \ 0 & 0 \end{bmatrix}, \quad \epsilon = 10^{-4} ΔX=ϵ[0100],ϵ=10−4
6️、预测奇异值变化(解析一阶灵敏度)
根据奇异值一阶导数公式:
d σ i = u i ⊤ ( d X ) v i d\sigma_i = u_i^{\top} (dX) v_i dσi=ui⊤(dX)vi
因此:
Δ σ i ≈ u i ⊤ ( Δ X ) v i \Delta \sigma_i \approx u_i^{\top} (\Delta X) v_i Δσi≈ui⊤(ΔX)vi
计算:
对于 ( i=1 ):
Δ σ 1 = [ 0.956 , 0.289 ] [ 0 1 0 − 4 0 0 ] [ 0.881 0.473 ] = 0.956 ⋅ 1 0 − 4 ⋅ 0.473 = 4.52 × 1 0 − 5 \Delta \sigma_1 = [0.956, 0.289] \begin{bmatrix} 0 & 10^{-4} \ 0 & 0 \end{bmatrix} \begin{bmatrix} 0.881 \ 0.473 \end{bmatrix} = 0.956 \cdot 10^{-4} \cdot 0.473 = 4.52 \times 10^{-5} Δσ1=[0.956,0.289][010−400][0.8810.473]=0.956⋅10−4⋅0.473=4.52×10−5
对于 ( i=2 ):
Δ σ 2 = [ 0.289 , − 0.956 ] [ 0 1 0 − 4 0 0 ] [ − 0.473 0.881 ] = 0.289 ⋅ 1 0 − 4 ⋅ 0.881 = 2.55 × 1 0 − 5 \Delta \sigma_2 = [0.289, -0.956] \begin{bmatrix} 0 & 10^{-4} \ 0 & 0 \end{bmatrix} \begin{bmatrix} -0.473 \ 0.881 \end{bmatrix} = 0.289 \cdot 10^{-4} \cdot 0.881 = 2.55 \times 10^{-5} Δσ2=[0.289,−0.956][010−400][−0.4730.881]=0.289⋅10−4⋅0.881=2.55×10−5
7️、数值验证(有限差分)
我们直接计算 ( X’ = X + \Delta X ):
X ′ = [ 3 1.0001 0 2 ] X' = \begin{bmatrix} 3 & 1.0001 \ 0 & 2 \end{bmatrix} X′=[31.000102]
重新计算奇异值(可用 NumPy):
import numpy as np
X = np.array([[3, 1], [0, 2]])
Xp = np.array([[3, 1.0001], [0, 2]])
_, s, _ = np.linalg.svd(X)
_, sp, _ = np.linalg.svd(Xp)
print(sp - s)
输出:
[4.54e-05, 2.56e-05]
与解析预测的 ( [4.52e-05, 2.55e-05] ) 完全吻合
8️、方向导数的几何意义
奇异值变化只与当前奇异向量投影相关:
d σ i = ⟨ u i , d X v i ⟩ d\sigma_i = \langle u_i, dX v_i \rangle dσi=⟨ui,dXvi⟩
即:
- 若 ( dX ) 沿着 ( u_i v_i^{\top} ) 方向变化,则奇异值线性增长;
- 若 ( dX ) 与该方向正交,则奇异值在一阶近似下不变。
10、 参考文献
- Magnus, J.R. & Neudecker, H. (1999). Matrix Differential Calculus with Applications in Statistics and Econometrics.
- Ionescu, C. (2015). Matrix Calculus for Deep Learning.
- Papadopoulo & Lourakis (2000). Estimating the Jacobian of the Singular Value Decomposition: Theory and Applications.
总结
| 项目 | 公式 | 说明 |
|---|---|---|
| 奇异值导数 | d σ i = u i ⊤ ( d X ) v i \mathrm{d}\sigma_i = u_i^\top (\mathrm{d}X) v_i dσi=ui⊤(dX)vi | 直接内积形式 |
| 左向量导数 | δ u i = ∑ j ≠ i σ j u j ( u j ⊤ δ X v i ) + σ i u j ( u i ⊤ δ X v j ) σ j 2 − σ i 2 \delta u_i = \sum_{j\ne i} \frac{\sigma_j u_j (u_j^\top \delta X v_i) + \sigma_i u_j (u_i^\top \delta X v_j)}{\sigma_j^2 - \sigma_i^2} δui=∑j=iσj2−σi2σjuj(uj⊤δXvi)+σiuj(ui⊤δXvj) | 正交扰动展开 |
| 右向量导数 | δ v i = ∑ j ≠ i σ i v j ( u i ⊤ δ X v j ) + σ j v j ( u j ⊤ δ X v i ) σ i 2 − σ j 2 \delta v_i = \sum_{j\ne i} \frac{\sigma_i v_j (u_i^\top \delta X v_j) + \sigma_j v_j (u_j^\top \delta X v_i)}{\sigma_i^2 - \sigma_j^2} δvi=∑j=iσi2−σj2σivj(ui⊤δXvj)+σjvj(uj⊤δXvi) | 同理 |
| 矩阵形式 | E = U ⊤ δ X V E = U^\top \delta X V E=U⊤δXV, A = K ⊙ ( Σ E ⊤ + E Σ ) A = K\odot(\Sigma E^\top + E\Sigma) A=K⊙(ΣE⊤+EΣ), B = K ⊙ ( Σ E + E ⊤ Σ ) B = K\odot(\Sigma E + E^\top\Sigma) B=K⊙(ΣE+E⊤Σ) | 工程计算版 |

浙公网安备 33010602011771号