675 字
3 分钟
rPCA鲁棒主成分分析 (Robust Principal Component Analysis)
2026-04-08
无标签

如果说 PCA 是为了“压缩信息”,那么 RPCA(Robust PCA,鲁棒主成分分析) 就是为了“剔除脏数据”。

在处理实际问题时,数据往往不干净。普通的 PCA 对离群点(Outliers)非常敏感,只要有一个巨大的噪声点,PCA 的主轴就会被带偏。而 RPCA 的出现就是为了解决这个问题。

RPCA 的核心原理:低秩 + 稀疏#

RPCA 假设你的原始矩阵 MM 可以分解为两个矩阵之和:

M=L+SM = L + S

其中,LL (Low-Rank):低秩矩阵。它代表了数据的“背景”或“本质结构”。比如一段固定摄像机拍摄的视频,背景(地板、墙壁)在每一帧几乎不变,这部分数据就是低秩的。

SS (Sparse):稀疏矩阵。它代表了数据中的“噪声”或“前景”。比如视频中突然走过的人、图像上的斑点噪声。这部分数据在空间上分布很稀疏。

数学表达#

我们要找一个秩尽可能小的 LL 和一个尽可能稀疏的 SS

minL,Srank(L)+λS0s.t.L+S=M\min_{L, S} \text{rank}(L) + \lambda \|S\|_0 \quad \text{s.t.} \quad L+S=M

由于 rank\text{rank}L0L_0 范数是很难求解的(NP-hard),数学家们把它们替换成了更容易算的核范数(Nuclear Norm) \|\cdot\|_*L1L_1 范数 1\|\cdot\|_1

minL,SL+λS1s.t.L+S=M\min_{L, S} \|L\|_* + \lambda \|S\|_1 \quad \text{s.t.} \quad L+S=M
TIP

理想情况(非凸): 原始的 RPCA 目标是最小化 rank(L)rank(L)。但 rankrank 函数在数学上是非连续、非凸的。可以想象成函数图像上有很多突变的“坑”,计算机很难找到全局最优解,通常是 NP-hard 问题。

凸松弛: 既然原始问题算不动,数学家就找一个跟它长得最像、但是平滑且凸的函数来代替它。就像把一个凹凸不平的坑洼地铺上了一层平滑的毯子,这样用梯度下降等方法就能轻松找到底部的最优解。

应用: 核范数就是 rankrank 的凸松弛,而 L1L_1 范数就是 L0L_0 范数的凸松弛。

核范数:矩阵的核范数是其奇异值的和。它是秩的凸松弛,能够有效地逼近秩。

L1范数:矩阵的L1范数是其元素绝对值的和。它是稀疏性的凸松弛,能够有效地逼近L0范数。

优化方法:不精确增广拉格朗日乘子法 (Inexact ALM)#

目标函数(增广拉格朗日函数)#

算法在迭代中实际上在最小化:

L(L,S,Y,μ)=L+λS1+Y,MLS+μ2MLSF2\mathcal{L}(L, S, Y, \mu) = \|L\|_* + \lambda \|S\|_1 + \langle Y, M-L-S \rangle + \frac{\mu}{2} \|M-L-S\|_F^2
  • YY 是乘子矩阵(用来惩罚不符合 M=L+SM=L+S 的情况)。

  • μ\mu 是惩罚因子,随着迭代不断增大。

rPCA鲁棒主成分分析 (Robust Principal Component Analysis)
https://biscuit0613.github.io/posts/lineralgebra/rpca/
作者
Biscuit
发布于
2026-04-08
许可协议
CC BY-NC-SA 4.0