资料与Paper:
- lrslibrary 里面包含了RPCA、ST等系列算法共100种,matlab code
-
https://blog.csdn.net/u010510350/article/details/77725953 PCA与RPCA区别
-
https://blog.csdn.net/u010545732/article/details/19066725 Robust PCA原理
-
https://blog.csdn.net/u010510350/article/details/77803572 RPCA的优化:ALM、ADM、IT、APG
-
https://blog.csdn.net/tiandijun/article/details/44917237 RPCA与LRR 低秩恢复
-
https://blog.csdn.net/abcjennifer/article/details/8572994 Rachel Zhang的Robust PCA学习笔记
-
http://blog.csdn.net/u010545732/article/details/19066725 Rachel Zhang的Robust PCA学习笔记的翻译
1、lrslibrary共八类算法
方法基于Matrix和Tensor,矩阵和张量的100多种方法
- 用于鲁棒PCA的RPCA,
- 用于子空间跟踪的ST,subspace tracking,
- 用于矩阵完成的MC Matrix completion,
- 用于三项分解的TTD Three-term decomposition,
- 用于低秩表示的LRR Low-rank representation,
- 用于非负矩阵分解的NMF Non-negative Matrix Factorization,
- 用于非负张量分解的NTF Non-negative Tensor Factorization,
- 和标准Tensor分解的TD standard Tensor Decomposition.
2、RPCA与PCA的区别
- 主成分分析(PCA)可以有效的找出数据中最重要的元素和结构,去除噪音和冗余,能将原有的复杂数据进行降维。最简单的主成分分析方法就是PCA,从线性代数的角度看,PCA的目标就是使用另一组基去重新描述得到的新的数据空间,通过这组新的基,能揭示与原有的数据间的关系,即这个维度最重要的“主元”。PCA的目标就是找到这样的“主元”,最大程度的去除冗余和噪音的干扰。
-
与经典PCA一样,Robust PCA(鲁棒主成分分析)本质上也是寻找数据在低维空间上的最佳投影问题。当观测数据较大时,PCA无法给出理想的结果,而Robust PCA能够从较大的且稀疏噪声污染的观测数据中恢复出本质上低秩的数据。Robust PCA考虑的是这样一个问题:一般的数据矩阵D包含结构信息,也包含噪声。那么可以将这个矩阵分解为两个矩阵相加:D = A + E,A是低秩的(由于内部有一定的结构信息造成各行或列间是线性相关的),E是稀疏的(含有噪声,则是稀疏的)
-
Robust PCA处理的噪声更大,且不一定是高斯分布的。同时具有优化算法ALM、ADM、IT、APG,PCP、FPCP,而PCA是靠SVD求特征向量。
3、RPCA的求解方法
- 参考一:https://blog.csdn.net/u010510350/article/details/77803572
- 参考二:https://blog.csdn.net/tiandijun/article/details/44917237
优化求解的算法优劣比较:IT < APG < ALM < IALM
- IT算法的迭代形式简单且收敛,但收敛速度比较慢,且很难选取合适的步长;
- APG与IT算法类似,但它却大大降低了迭代次数;
- ALM比APG快很多,而且ALM可以达到较高的精度,需要较低的存储空间。
- 不精确拉格朗日乘子法(IALM)改善了EALM,不需要求解精确解,速度较快。
4、RPCA的其他求解方法(FPCP)
- lrslibrary的RPCA-FPCP求解方法很快,从Malab code看,算法没有实时更新模型