【笔记】为什么Cholesky Decomposition和Rotation-Scaling Decomposition可以解决协方差矩阵正半定性问题?
在优化协方差矩阵 Σ \boldsymbol{\Sigma} Σ(例如在高斯分布建模中)时,一个关键挑战是确保 Σ \boldsymbol{\Sigma} Σ 始终保持正半定性(positive semi-definite)。如果直接使用梯度下降优化 Σ \boldsymbol{\Sigma} Σ 的元素,矩阵可能在更新过程中变得非正半定,导致无效的高斯分布或数值不稳定性。**Cholesky Decomposition(Cholesky分解)和Rotation-Scaling Decomposition(旋转-缩放分解)**通过提供一种特殊的参数化方式,解决了这个问题,使得 Σ \boldsymbol{\Sigma} Σ 在优化过程中始终满足正半定性要求。以下是对这两种方法的详细解释。
1. Cholesky Decomposition(Cholesky分解)
Cholesky分解将协方差矩阵
Σ
\boldsymbol{\Sigma}
Σ 表示为一个下三角矩阵
L
\boldsymbol{L}
L 与其转置
L
T
\boldsymbol{L}^T
LT 的乘积:
Σ
=
L
L
T
\boldsymbol{\Sigma} = \boldsymbol{L} \boldsymbol{L}^T
Σ=LLT
对于一个 2×2 的协方差矩阵,
L
\boldsymbol{L}
L 可以写为:
L
=
[
l
1
0
l
2
l
3
]
\boldsymbol{L} = \begin{bmatrix} l_1 & 0 \\ l_2 & l_3 \end{bmatrix}
L=[l1l20l3]
其中
l
1
,
l
2
,
l
3
l_1, l_2, l_3
l1,l2,l3 是可学习的参数。
对于任意矩阵
L
\boldsymbol{L}
L,
Σ
=
L
L
T
\boldsymbol{\Sigma} = \boldsymbol{L} \boldsymbol{L}^T
Σ=LLT 总是正半定的。这是因为对于任意非零向量
a
\mathbf{a}
a,有:
a
T
Σ
a
=
a
T
L
L
T
a
=
(
L
T
a
)
T
(
L
T
a
)
=
∥
L
T
a
∥
2
≥
0
\mathbf{a}^T \boldsymbol{\Sigma} \mathbf{a} = \mathbf{a}^T \boldsymbol{L} \boldsymbol{L}^T \mathbf{a} = (\boldsymbol{L}^T \mathbf{a})^T (\boldsymbol{L}^T \mathbf{a}) = \|\boldsymbol{L}^T \mathbf{a}\|^2 \geq 0
aTΣa=aTLLTa=(LTa)T(LTa)=∥LTa∥2≥0
这满足正半定矩阵的定义(即
a
T
Σ
a
≥
0
\mathbf{a}^T \boldsymbol{\Sigma} \mathbf{a} \geq 0
aTΣa≥0 对所有
a
\mathbf{a}
a 成立)。
如果 L \boldsymbol{L} L 的对角元素 l 1 > 0 l_1 > 0 l1>0 和 l 3 > 0 l_3 > 0 l3>0,则 Σ \boldsymbol{\Sigma} Σ 是正定的(即 a T Σ a > 0 \mathbf{a}^T \boldsymbol{\Sigma} \mathbf{a} > 0 aTΣa>0 对所有 a ≠ 0 \mathbf{a} \neq 0 a=0 成立)。正定性通常是高斯分布所需的更强条件。
与其直接优化 Σ \boldsymbol{\Sigma} Σ 的元素,不如优化 L \boldsymbol{L} L 的元素 l 1 , l 2 , l 3 l_1, l_2, l_3 l1,l2,l3。由于 Σ = L L T \boldsymbol{\Sigma} = \boldsymbol{L} \boldsymbol{L}^T Σ=LLT 的形式,无论 l 1 , l 2 , l 3 l_1, l_2, l_3 l1,l2,l3 如何取值, Σ \boldsymbol{\Sigma} Σ 始终是正半定的。
为了保证
Σ
\boldsymbol{\Sigma}
Σ 是正定的,可以对对角元素
l
1
l_1
l1 和
l
3
l_3
l3 施加约束。例如,使用参数化:
l
1
=
exp
(
θ
1
)
,
l
3
=
exp
(
θ
3
)
l_1 = \exp(\theta_1), \quad l_3 = \exp(\theta_3)
l1=exp(θ1),l3=exp(θ3)
其中
θ
1
,
θ
3
\theta_1, \theta_3
θ1,θ3 是无约束的可学习参数。由于指数函数
exp
(
⋅
)
\exp(\cdot)
exp(⋅) 始终大于 0,这保证了
l
1
>
0
l_1 > 0
l1>0 和
l
3
>
0
l_3 > 0
l3>0。而非对角元素
l
2
l_2
l2 可以是任意实数,因为它不直接影响正定性。
Cholesky 分解还有助于提高计算稳定性。例如,计算逆矩阵 Σ − 1 = ( L L T ) − 1 = L − T L − 1 \boldsymbol{\Sigma}^{-1} = (\boldsymbol{L} \boldsymbol{L}^T)^{-1} = \boldsymbol{L}^{-T} \boldsymbol{L}^{-1} Σ−1=(LLT)−1=L−TL−1,由于 L \boldsymbol{L} L 是下三角矩阵,其逆可以通过简单的回代法求解,比直接求 Σ − 1 \boldsymbol{\Sigma}^{-1} Σ−1 更稳定。
通过优化 L \boldsymbol{L} L 的参数而不是 Σ \boldsymbol{\Sigma} Σ 的元素,Cholesky 分解将正半定性约束嵌入到矩阵的构造中,避免了梯度下降可能导致的约束违反问题。
2. Rotation-Scaling Decomposition(旋转-缩放分解)
旋转-缩放分解将
Σ
\boldsymbol{\Sigma}
Σ 表示为旋转矩阵
R
\boldsymbol{R}
R 和缩放矩阵
S
\boldsymbol{S}
S 的组合:
Σ
=
(
R
S
)
(
R
S
)
T
=
R
S
S
T
R
T
\boldsymbol{\Sigma} = (\boldsymbol{R} \boldsymbol{S}) (\boldsymbol{R} \boldsymbol{S})^T = \boldsymbol{R} \boldsymbol{S} \boldsymbol{S}^T \boldsymbol{R}^T
Σ=(RS)(RS)T=RSSTRT
对于 2D 情况:
R
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
\boldsymbol{R} = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
R=[cosθsinθ−sinθcosθ]
由旋转角度
θ
\theta
θ 参数化。
S
=
[
s
1
0
0
s
2
]
\boldsymbol{S} = \begin{bmatrix} s_1 & 0 \\ 0 & s_2 \end{bmatrix}
S=[s100s2]
由缩放因子
s
1
,
s
2
s_1, s_2
s1,s2 参数化。
计算可得:
S
S
T
=
[
s
1
2
0
0
s
2
2
]
,
Σ
=
R
[
s
1
2
0
0
s
2
2
]
R
T
\boldsymbol{S} \boldsymbol{S}^T = \begin{bmatrix} s_1^2 & 0 \\ 0 & s_2^2 \end{bmatrix}, \quad \boldsymbol{\Sigma} = \boldsymbol{R} \begin{bmatrix} s_1^2 & 0 \\ 0 & s_2^2 \end{bmatrix} \boldsymbol{R}^T
SST=[s1200s22],Σ=R[s1200s22]RT
R \boldsymbol{R} R 是正交矩阵( R T R = I \boldsymbol{R}^T \boldsymbol{R} = \boldsymbol{I} RTR=I),而 S S T = [ s 1 2 0 0 s 2 2 ] \boldsymbol{S} \boldsymbol{S}^T = \begin{bmatrix} s_1^2 & 0 \\ 0 & s_2^2 \end{bmatrix} SST=[s1200s22] 是对角矩阵,其对角元素 s 1 2 ≥ 0 s_1^2 \geq 0 s12≥0 和 s 2 2 ≥ 0 s_2^2 \geq 0 s22≥0(因为 s 1 , s 2 s_1, s_2 s1,s2 是实数)。因此, Σ \boldsymbol{\Sigma} Σ 是正半定的。
如果 s 1 > 0 s_1 > 0 s1>0 和 s 2 > 0 s_2 > 0 s2>0,则 S S T \boldsymbol{S} \boldsymbol{S}^T SST 的对角元素严格大于 0, Σ \boldsymbol{\Sigma} Σ 成为正定矩阵。
优化参数 θ , s 1 , s 2 \theta, s_1, s_2 θ,s1,s2 而不是直接优化 Σ \boldsymbol{\Sigma} Σ。由于 Σ \boldsymbol{\Sigma} Σ 的形式, θ \theta θ 可以取任意实数(因为旋转矩阵始终正交),而 s 1 s_1 s1 和 s 2 s_2 s2 需要保持非负。
为了保证正定性,可以参数化:
s
1
=
exp
(
ϕ
1
)
,
s
2
=
exp
(
ϕ
2
)
s_1 = \exp(\phi_1), \quad s_2 = \exp(\phi_2)
s1=exp(ϕ1),s2=exp(ϕ2)
其中
ϕ
1
,
ϕ
2
\phi_1, \phi_2
ϕ1,ϕ2 是可学习参数,确保
s
1
>
0
s_1 > 0
s1>0 和
s
2
>
0
s_2 > 0
s2>0。
计算 Σ − 1 = R [ s 1 − 2 0 0 s 2 − 2 ] R T \boldsymbol{\Sigma}^{-1} = \boldsymbol{R} \begin{bmatrix} s_1^{-2} & 0 \\ 0 & s_2^{-2} \end{bmatrix} \boldsymbol{R}^T Σ−1=R[s1−200s2−2]RT 很简单,只要 s 1 , s 2 ≠ 0 s_1, s_2 \neq 0 s1,s2=0,计算就稳定且高效。
旋转-缩放分解通过将 Σ \boldsymbol{\Sigma} Σ 分解为旋转(方向)和缩放(大小),将正半定性嵌入到结构中,使得优化过程不会破坏这一性质。
3. 为什么这两种分解能解决问题?
Cholesky 分解通过
L
L
T
\boldsymbol{L} \boldsymbol{L}^T
LLT 的形式,天然保证了正半定性。
旋转-缩放分解通过
R
S
S
T
R
T
\boldsymbol{R} \boldsymbol{S} \boldsymbol{S}^T \boldsymbol{R}^T
RSSTRT,利用正交矩阵和非负对角矩阵的性质,同样保证了正半定性。
这种参数化将约束“隐藏”在矩阵构造中,避免了直接优化
Σ
\boldsymbol{\Sigma}
Σ 时需要显式施加正半定性约束的复杂性。
直接优化 Σ \boldsymbol{\Sigma} Σ 的元素时,梯度下降可能使其偏离正半定区域(例如特征值变为负数),导致高斯分布无效或计算不稳定。而分解方法通过优化中间参数(如 L \boldsymbol{L} L 或 θ , s 1 , s 2 \theta, s_1, s_2 θ,s1,s2),确保 Σ \boldsymbol{\Sigma} Σ 始终有效。
对于 2×2 的对称协方差矩阵, Σ \boldsymbol{\Sigma} Σ 有 3 个独立元素:
- Cholesky 分解使用 l 1 , l 2 , l 3 l_1, l_2, l_3 l1,l2,l3(3 个参数)。
- 旋转-缩放分解使用 θ , s 1 , s 2 \theta, s_1, s_2 θ,s1,s2(3 个参数)。
两种方法都未增加参数数量,同时保持了表达能力。
Cholesky 分解:
L
\boldsymbol{L}
L 是三角矩阵,求逆和行列式(
det
(
Σ
)
=
l
1
2
l
3
2
\det(\boldsymbol{\Sigma}) = l_1^2 l_3^2
det(Σ)=l12l32)计算简单。
旋转-缩放分解:
Σ
\boldsymbol{\Sigma}
Σ 的逆和行列式(
det
(
Σ
)
=
s
1
2
s
2
2
\det(\boldsymbol{\Sigma}) = s_1^2 s_2^2
det(Σ)=s12s22)同样易于计算,避免了
Σ
\boldsymbol{\Sigma}
Σ 接近奇异时的数值问题。
4. 总结
Cholesky 分解和旋转-缩放分解通过将协方差矩阵 Σ \boldsymbol{\Sigma} Σ 参数化为特定的矩阵乘积形式( L L T \boldsymbol{L} \boldsymbol{L}^T LLT 或 R S S T R T \boldsymbol{R} \boldsymbol{S} \boldsymbol{S}^T \boldsymbol{R}^T RSSTRT),确保其在梯度下降优化中始终保持正半定性。这种方法:
- 正半定性由分解结构保证,无需额外约束。
- 避免直接操作 Σ \boldsymbol{\Sigma} Σ 的数值问题。
- 将问题转化为无约束参数的优化,使得梯度下降更稳定和高效。
因此,这两种分解是解决协方差矩阵优化中正半定性问题的强大工具,广泛应用于机器学习和高斯建模任务中。