Xu H, Caramanis C, Sanghavi S, et al. Robust PCA via Outlier Pursuit[C]. neural information processing systems, 2010: 2496-2504.

这篇文章同样是关于矩阵恢复的。假设\(M = L_0 + C_0 \in \mathbb{R}^{p \times n}\),即\(M\)实际上是由一个低秩矩阵\(L_0\)和稀疏矩阵\(C_0\)构成。需要注意的是,这里的稀疏不是指某些元素为0,而是某列为零。可以简单地认为,\(L_0\)中是一些有用的正确的样本,而\(C_0\)中的是错误的样本(非零的部分)。所以,我们能够从中将\(L_0\)的列空间恢复出来,并识别出那些样本属于\(C_0\),即是错误的呢?

上面的作者的说法,我再用自己的话讲一下。\(M\)中的每一列都是一个\(p\)维样本,有些时候我们会遇到这种情况,有些样本是错误的。这个错误是指很严重的错误,而不是被一些噪声污染了,就像是这些数据是人的身高体重,却混入了长颈鹿的身高体重。所以呢,我们有理由相信,俩者分布在俩个子空间里,我们要做的就是判断哪个子空间里是我们想要的,哪个是错误的样本。显然正确的样本不能太少,而且正确的样本必须靠的紧凑一些。所以,这么想来,其实要求还不少。

显然直接这么做是不可靠的,举一个极端的例子:\(M\)中仅有\(M_{11}\)非零,那么显然是无法判断第一列是否是正确的样本的。所以,我们需要一个不连贯条件:

此外,作者也考虑了带噪声的问题\(M = L_0 + C_0 + N\),其中\(N\)是噪声。

针对不带噪声的问题,作者求解的下列问题:

其中\(\|C\|_{1,2}= \sum_{i=1}^n \|C_i\|_2\)为列的\(\ell_2\)范数的和,\(\|L\|_*\)是\(L\)的核范数。

针对带噪声问题,作者求解的是下列问题:

主要结果

定理1

定理2


理论证明

构造Oracle Problem


其中\(L_0 = U_0\Sigma_0V_0^T\), \(\mathcal{I}_0\)是\(C\)中不为0的非稀疏列的指标集,下面的类似的符号也类似的定义。

这个神谕问题,假设\(U_0, V_0, \mathcal{I}_0\)是已知的。

作者先证明,满足\(M=L'+C';\mathcal{P}_{U_0}(L')=L';\mathcal{P}_{\mathcal{I_0}}(C')=C'\)的解有下列性质:
\[
U'U^T = U_0U_0^T, \quad \mathcal{I'}\subseteq \mathcal{I}_0
\]
这意味着,\(\hat{L}\)的列空间和\(L_0\)的列空间一致,\(\hat{C}\)中的列(非0)也确实是错误的列。

作者再证明,对于\((L', C')\)(不要求其为Oracle Problem的最优解,可行解即可),只要能找到一个\(Q\)满足对偶条件:


那么,\((L',C')\)也是原始问题(2)的最优解,而且如果\((b), (d)\)不等式是严格成立的,且\(\mathbb{S}_{\mathcal{I_0}}\cap \mathbb{S}_{V'} = \{0\}\),那么\((L', C')\)将是(2)的唯一最优解。
结合上面的证明,我们可以知道,只要我们能够证明这样的\(Q\)是存在的,那么\((L', C')\)就恢复出了同一个列子空间,并识别出了部分错误的样本。

所以我们现在需要做的就是去构造这样的一\(Q\),假设Oracle Problem的最优解为\((\hat{L}, \hat{C})\),作者在这个解的基础上,构造一个\(Q\)。

有定理四:

其中:

\(\bar{V} = \hat{V}\hat{U}^TU_0\)。

最后再证明定理4中的条件是能够达成的即可。

算法


其中\(\mathfrak{L}_{\epsilon}(S)\):如果\(S_{ii} \le \epsilon\),截断为0,否则\(S_{ii} := S_{ii} - \epsilon \cdot sgn(S_{ii})\)。
\(\mathfrak{C}_{\epsilon}(C)\): 如果\(\|C_i\|_2 \le \epsilon\),则将整列截断为0,否则\(C_i := C_i - \epsilon C_i / \|C\|_2\)

Robust PCA via Outlier Pursuit的更多相关文章

  1. 最优化之Robust PCA

    最近加了一个QQ群,接触了点新的东西,包括稀疏近似,低秩近似和压缩感知等.Robust PCA中既包含了低秩,又包含了稀疏,于是以其为切入点,做了如下笔记.笔记中有的公式有比较详细的推导,希望对读者有 ...

  2. 透过表象看本质!?之二——除了最小p乘,还有PCA

    如图1所示,最小p乘法求得是,而真实值到拟合曲线的距离为.那么,对应的是什么样的数据分析呢? 图1 最小p乘法的使用的误差是.真实值到拟合曲线的距离为 假如存在拟合曲线,设直线方程为.真实值到该曲线的 ...

  3. Rubost PCA 优化

    Rubost PCA 优化 2017-09-03 13:08:08 YongqiangGao 阅读数 2284更多 分类专栏: 背景建模   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA ...

  4. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  5. Matrix Factorization, Algorithms, Applications, and Avaliable packages

    矩阵分解 来源:http://www.cvchina.info/2011/09/05/matrix-factorization-jungle/ 美帝的有心人士收集了市面上的矩阵分解的差点儿全部算法和应 ...

  6. ECCV 2014 Results (16 Jun, 2014) 结果已出

    Accepted Papers     Title Primary Subject Area ID 3D computer vision 93 UPnP: An optimal O(n) soluti ...

  7. Computer Vision_18_Image Stitching: Image Alignment and Stitching A Tutorial——2006(book)

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  8. paper 127:机器学习中的范数规则化之(二)核范数与规则项参数选择

    机器学习中的范数规则化之(二)核范数与规则项参数选择 zouxy09@qq.com http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮 ...

  9. L0、L1与L2范数、核范数(转)

    L0.L1与L2范数.核范数 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大 ...

随机推荐

  1. Ubuntu 18.04.1 LTS + kolla-ansible 部署 openstack Rocky all-in-one 环境

    1. kolla 项目介绍 简介 kolla 的使命是为 openstack 云平台提供生产级别的.开箱即用的自动化部署能力. kolla 要实现 openetack 部署分为两步,第一步是制作 do ...

  2. python进程和线程(六)

    协程 协程,又称微线程,纤程.英文名Coroutine.顾名思义,协程是协作式的,也就是非抢占式的程序(线程是抢占式的).协程的关键字是yield,一看到这个就想到了生成器对不对?那就顺便回顾一下生成 ...

  3. Python基础(数字,字符串方法)

    数字: #二进制转十进制 a=' v=int(a,base=2) print(v) 进制转换 #当前数字的二进制至少有多少位 b=2 v2=b.bit_length() print(v2) 数值二进制 ...

  4. 关于 Docker 镜像的操作,看完这篇就够啦 !(下)

    紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...

  5. Mybatis之旅第三篇-SqlMapConfig.xml全局配置文件解析

    一.前言 刚换工作,为了更快的学习框架和了解业务,基本每天都会加班,导致隔了几天没有进行总结,心里总觉得不安,工作年限越长越感到学习的重要性,坚持下去!!! 经过前两篇的总结,已经基本掌握了mybat ...

  6. ConfirmCancelBottomSheetDialog【确认取消底部对话框】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 继承BottomSheetDialog,实现简单的确认取消对话框样式. 效果图 代码分析 ConfirmCancelBottomSh ...

  7. MySQL视图简介与操作

    1.准备工作 在MySQL数据库中创建两张表balance(余额表)和customer(客户表)并插入数据. create table customer( id int(10) primary key ...

  8. 要搞刷机!从它的尸体上踏过去!钢板云路由!WPR003N复活!成功启动OPENWRT

    这是一个很鼓舞人心的标题,自从上一篇Aria2序之导言 00,成功的贴出两张开场图片,本来计划写它的开场引言 01,正好cp一个合格的导引(引导读起来有些奇怪),连续懒惰了好几天,突然想起了WPR00 ...

  9. C# 委托链(多播委托)

    委托既可以封装一个方法,又可以对同一类型的方法进行封装,它就是多播委托 using System; using System.Collections.Generic; using System.Lin ...

  10. Java开发相关的linux一些基础命令,必须要掌握的

      1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件. find . -name "*.xml" 递归查找所有的 ...