如果说 PCA 是为了“压缩信息”,那么 RPCA(Robust PCA,鲁棒主成分分析) 就是为了“剔除脏数据”。
在处理实际问题时,数据往往不干净。普通的 PCA 对离群点(Outliers)非常敏感,只要有一个巨大的噪声点,PCA 的主轴就会被带偏。而 RPCA 的出现就是为了解决这个问题。
RPCA 的核心原理:低秩 + 稀疏
RPCA 假设你的原始矩阵 可以分解为两个矩阵之和:
其中, (Low-Rank):低秩矩阵。它代表了数据的“背景”或“本质结构”。比如一段固定摄像机拍摄的视频,背景(地板、墙壁)在每一帧几乎不变,这部分数据就是低秩的。
(Sparse):稀疏矩阵。它代表了数据中的“噪声”或“前景”。比如视频中突然走过的人、图像上的斑点噪声。这部分数据在空间上分布很稀疏。
数学表达
我们要找一个秩尽可能小的 和一个尽可能稀疏的 。
由于 和 范数是很难求解的(NP-hard),数学家们把它们替换成了更容易算的核范数(Nuclear Norm) 和 范数 。
TIP理想情况(非凸): 原始的 RPCA 目标是最小化 。但 函数在数学上是非连续、非凸的。可以想象成函数图像上有很多突变的“坑”,计算机很难找到全局最优解,通常是 NP-hard 问题。
凸松弛: 既然原始问题算不动,数学家就找一个跟它长得最像、但是平滑且凸的函数来代替它。就像把一个凹凸不平的坑洼地铺上了一层平滑的毯子,这样用梯度下降等方法就能轻松找到底部的最优解。
应用: 核范数就是 的凸松弛,而 范数就是 范数的凸松弛。
核范数:矩阵的核范数是其奇异值的和。它是秩的凸松弛,能够有效地逼近秩。
L1范数:矩阵的L1范数是其元素绝对值的和。它是稀疏性的凸松弛,能够有效地逼近L0范数。
优化方法:不精确增广拉格朗日乘子法 (Inexact ALM)
目标函数(增广拉格朗日函数)
算法在迭代中实际上在最小化:
-
是乘子矩阵(用来惩罚不符合 的情况)。
-
是惩罚因子,随着迭代不断增大。