之前的一篇博客对PCA的原理、特点进行了介绍以及用python实现了PCA
。本篇博客对PCA
和Robust PCA
进行简单的区别。
1.PCA
主成分分析(PCA
)可以有效的找出数据中最重要的元素和结构,去除噪音和冗余,能将原有的复杂数据进行降维。最简单的主成分分析方法就是PCA
,从线性代数的角度看,PCA
的目标就是使用另一组基去重新描述得到的新的数据空间,通过这组新的基,能揭示与原有的数据间的关系,即这个维度最重要的“主元”。PCA
的目标就是找到这样的“主元”,最大程度的去除冗余和噪音的干扰。
2.Robust PCA
与经典PCA
一样,Robust PCA
(鲁棒主成分分析)本质上也是寻找数据在低维空间上的最佳投影问题。当观测数据较大时,PCA
无法给出理想的结果,而Robust PCA
能够从较大的且稀疏噪声污染的观测数据中恢复出本质上低秩的数据。Robust PCA
考虑的是这样一个问题:一般的数据矩阵D包含结构信息,也包含噪声。那么可以将这个矩阵分解为两个矩阵相加:D = A + E
,A
是低秩的(由于内部有一定的结构信息造成各行或列间是线性相关的),E
是稀疏的(含有噪声,则是稀疏的),则Robust PCA
可以写成以下的优化问题:
由于rank
和L0
范数在优化上存在非凸和非光滑特性,所以一般将这个NP
问题转换成求解一个松弛的凸优化问题:
后续博客中,会介绍几种Robust PCA
常见的优化方法AML、DUAL、APG
等,具体优化部分可以参考马毅的实验室提供的论文。
Robust PCA
常用在视频背景建模、图像恢复、图像类别标签净化、音乐词曲分离、图像矫正与去噪、图像对齐等。
3.两者区别
Robust PCA
与经典PCA
问题一样,Robust PCA
本质上也是寻找数据在低维空间上的最佳投影问题。对于低秩数据观测矩阵D
,假如D
受到随机(稀疏)噪声的影响,则D
的低秩性就会破坏,使D
变成满秩的。所以就需要将D
分解成包含其真实结构的低秩矩阵A和稀疏噪声矩阵E之和。找到了低秩矩阵,实际上就找到了数据的本质低维空间,那么Robust PCA
的Robust
在哪呢?因为PCA
前提假设的数据的噪声是高斯的,对于大的噪声或者严重的离群点,PCA
会被它影响,导致其无法正常工作。而Robust PCA
则不存在这个假设(Robust PCA
假设噪声是稀疏的,而不管噪声的强弱)。