完整教程:矩阵奇异值分解算法(SVD)的导数 / 灵敏度分析

1️、基本定义

设矩阵 X ∈ R m × n X \in \mathbb{R}^{m\times n} XRm×n,其奇异值分解为:

X = U Σ V ⊤ , X = U \Sigma V^\top, X=UΣV,

其中:

  • U ∈ R m × m U \in \mathbb{R}^{m\times m} URm×m 为左奇异向量矩阵;
  • V ∈ R n × n V \in \mathbb{R}^{n\times n} VRn×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:=UdU,B:=VdV,

由于 U , V U, V U,V 为正交矩阵( U ⊤ U = I , V ⊤ V = I U^\top U = I, V^\top V = I UU=I,VV=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} ARm×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,UU=Im,VV=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 UdAV=UdUΣ+dΣ+ΣdVV

定义:

E : = U ⊤ d A V E := U^\top \mathrm{d}A V E:=UdAV

Ω U : = U ⊤ d U , Ω V : = V ⊤ d V \Omega_U := U^\top \mathrm{d}U, \quad \Omega_V := V^\top \mathrm{d}V ΩU:=UdU,ΩV:=VdV

注意到由于 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=uidA,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=iuj,ΩU,ji=j=iujσj2σi2σjEji+σiEijdvi=j=ivj,ΩV,ji=j=ivjσ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=uidAvi
    → 表示 σ 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=iujσ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=ivjσj2σi2σiEji+σjEij右奇异向量的灵敏度
辅助定义 E = U ⊤ ( d A ) V E = U^\top (\mathrm{d}A) V E=U(dA)V在奇异向量基下的扰动分量

7️、特殊情况与稳定性讨论

  1. 奇异值重复:当 σ i = σ j \sigma_i = \sigma_j σi=σj 时,分母为零,导数不唯一(灵敏度趋于无穷大)。

    • 可通过子空间投影方式获得“整体子空间导数”而非单一向量导数。
  2. 数值稳定性建议

    • 在实现时应避免直接计算 ( σ 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} Xf
由链式法则:

∂ 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. Xf=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(XXλI)=(9λ)(5λ)9=λ214λ+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.6063.55,σ2=1.3941.18


2️、右奇异向量 ( V )

从方程:

( X ⊤ X ) v i = σ i 2 v i (X^{\top} X) v_i = \sigma_i^2 v_i (XX)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.8810.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.2890.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],ϵ=104


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 Δσiui(Δ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][010400][0.8810.473]=0.9561040.473=4.52×105

  • 对于 ( 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][010400][0.4730.881]=0.2891040.881=2.55×105


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Σ)工程计算版

posted @ 2025-11-10 15:25  yxysuanfa  阅读(12)  评论(0)    收藏  举报