【机器学习论文阅读笔记】Robust Recovery of Subspace Structures by Low-Rank Representation

前言

终于要轮到自己汇报了好崩溃。。盯着论文准备开始做汇报ppt感觉一头乱麻,决定还是写博客理清思路再说吧

参考资料:

论文原文:arxiv.org/pdf/1010.2955

RPCA参考文章:RPCA - 知乎 (zhihu.com)

谱聚类参考文章:谱聚类(spectral clustering)原理总结 - 刘建平Pinard - 博客园 (cnblogs.com)

一、问题描述

该篇论文提出了一种名为LRR(Low-Rank Representation)的目标函数,为了解决以下问题:

给定一组从多个子空间的并集中近似抽取的数据样本(向量),我们的目标是将样本聚类到它们各自的子空间中,并去除可能的异常值

Given a set of data samples (vectors) approximately drawn from a union of multiple subspaces, our goal is to cluster the samples into their respective subspaces and remove possible outliers as well.

什么叫数据样本是从多个子空间的并集中近似抽取的?

image.png

如图所示,当我们的每个数据点的特征数量为3时,样本空间就是三维的空间

左边的图就表示严格地从一个二维平面中和两条一维的直线上抽取数据点;右边的图则表示近似地从相同的这三个子空间中抽取数据点。

而典型的异常值有以下几种类型:

image.png

(a)为噪声,表示数据在子空间周围受到轻微扰动
(b)为随机损坏,表示有随机的部分数据被严重损坏
©为特定的损坏,表示有数据样本的一部分(即数据的列)远离子空间

二、子空间恢复

1. 低秩表示

首先关注怎么把子空间中的数据从误差中恢复出来

image.png

我们把原始的数据矩阵 X X X 表示为两个矩阵的加和:

X = X 0 + E 0 X = X_0 + E_0 X=X0+E0

其中, X 0 X_0 X0就是恢复后的矩阵, E 0 E_0 E0就是代表异常值的矩阵

我们看下这两个矩阵分别有什么特点,举一个比较简单的例子

image.png

像左侧这样一个被损坏的数据,我们可以将其分解为一个低秩(各列之间相关性较强)的矩阵,还有一个稀疏的矩阵

为了能够完成这一目标,我们定义优化目标如下:

m i n D , E r a n k ( D ) + λ ∣ ∣ E ∣ ∣ l s . t . X = D + E min_{D, E} \space rank(D) + \lambda ||E||_l \quad s.t. \quad X = D + E minD,E rank(D)+λ∣∣Els.t.X=D+E

其中, D D D表示恢复后的矩阵, ∣ ∣ E ∣ ∣ l ||E||_l ∣∣El表示特定的正则化项, l l l由异常的类型决定:

当异常值为一中提到的

(a) 噪声: ∣ ∣ E ∣ ∣ l ||E||_l ∣∣El ∣ ∣ E ∣ ∣ F ||E||_F ∣∣EF
(b) 随机损坏: ∣ ∣ E ∣ ∣ l ||E||_l ∣∣El ∣ ∣ E ∣ ∣ 0 ||E||_0 ∣∣E0
© 特定损坏: ∣ ∣ E ∣ ∣ l ||E||_l ∣∣El ∣ ∣ E ∣ ∣ 2 , 0 ||E||_{2,0} ∣∣E2,0

其实这上面的公式是被Robust PCA所采用的,而且这个公式隐式地假设了底层的数据是单一的低秩子空间的结构

当我们的数据是从多个子空间的并集 ∪ i = 1 k S i \cup_{i=1}^k S_i i=1kSi中提取出来的时,使用上述公式,就是把数据当作从一个单一的子空间 S = ∑ i = 1 k S i S = \sum_{i=1}^k S_i S=i=1kSi中采样

然而, ∑ i = 1 k S i \sum_{i=1}^k S_i i=1kSi是比 ∪ i = 1 k S i \cup_{i=1}^k S_i i=1kSi要大的多的,所以使用上述目标函数会不够精确,不能很好地考虑到单个子空间的细节

对此,我们使用以下优化目标代替:

m i n Z , E r a n k ( Z ) + λ ∣ ∣ E ∣ ∣ l s . t . X = A Z + E min_{Z, E} \space rank(Z) + \lambda ||E||_l \quad s.t. \quad X = AZ + E minZ,E rank(Z)+λ∣∣Els.t.X=AZ+E

其中, A A A是一个横跨数据空间的“字典”。我们将上述优化目标关于 Z Z Z的解 Z ∗ Z^* Z 称作 X X X在字典 A A A中的低最低秩表示(lowest rank representation)

在字典学习中,我们会利用一个字典 A A A,得到数据 X X X的稀疏表示 α \alpha α,从而提取出数据中最本质的特征,用更少的资源表示尽可能多的知识:

X = A α X = A \alpha X=Aα

A = I A = I A=I时,后面的公式就会返回前面的形式。所以LRR可以看作是RPCA泛化的版本,而RPCA使用标准基作为字典

2. 分析LRR问题

由于秩函数的离散性,优化问题难以解决。实际上,在秩最小化的问题中,人们常用 核范数(一个矩阵的奇异值之和) 代替:

m i n Z , E ∣ ∣ Z ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ l s . t . X = A Z + E min_{Z, E} \space ||Z||_* + \lambda ||E||_l \quad s.t. \quad X = AZ + E minZ,E ∣∣Z+λ∣∣Els.t.X=AZ+E

由于 l 1 l_1 l1范数和 l 2 , 1 l_{2,1} l2,1范数分别是 l 0 l_0 l0范数和 l 2 , 0 l_{2,0} l2,0范数的良好松弛,将优化问题写作如下形式:

m i n Z , E ∣ ∣ Z ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 2 , 1 s . t . X = A Z + E min_{Z, E} \space ||Z||_* + \lambda ||E||_{2,1} \quad s.t. \quad X = AZ + E minZ,E ∣∣Z+λ∣∣E2,1s.t.X=AZ+E

将其转化为等价问题如下:

m i n Z , E , J ∣ ∣ J ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 2 , 1 s . t . X = A Z + E , J = Z min_{Z, E, J} \space ||J||_* + \lambda ||E||_{2,1} \quad s.t. \quad X = AZ + E, J = Z minZ,E,J ∣∣J+λ∣∣E2,1s.t.X=AZ+E,J=Z

我也不知道为什么要引入一个 J = Z J = Z J=Z,多这个变量有什么必要吗

利用增广拉格朗日乘子法(ALM),优化目标转化为最小化以下拉格朗日函数:

L = ∣ ∣ J ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 2 , 1 + t r ( Y 1 T ( X − A Z − E ) ) + t r ( Y 2 T ( J − Z ) ) + μ 2 ( ∣ ∣ X − A Z − E ∣ ∣ F 2 + ∣ ∣ J − Z ∣ ∣ F 2 ) \mathcal{L} = ||J||_* + \lambda ||E||_{2,1} + tr(Y_1^T (X - AZ - E)) + \\ \qquad tr(Y_2^T ( J - Z)) + \frac{\mu}{2} ( || X - AZ - E ||_F^2 + || J - Z ||_F^2 ) L=∣∣J+λ∣∣E2,1+tr(Y1T(XAZE))+tr(Y2T(JZ))+2μ(∣∣XAZEF2+∣∣JZF2)

算法如下:

image.png

其中,求解第一步利用的是某篇引用的方法:Singular Value Thresholding (SVT) operator

求解第二步过程如下:

由$\mathcal{L} = ||J||* + \lambda ||E||{2,1} + tr(Y_1^T (X - AZ - E)) + \ \qquad tr(Y_2^T ( J - Z)) + \frac{\mu}{2} ( || X - AZ - E ||_F^2 + || J - Z ||_F^2 ) $

∂ L ∂ Z = − A T Y 1 + Y 2 + μ 2 ( − 2 A T ( X − A Z − E ) + 2 Z ) = 0 \frac{\partial \mathcal{L}}{\partial Z} = -A^T Y_1 + Y_2 + \frac{\mu}{2} (-2A^T( X -AZ - E) + 2Z) =0 ZL=ATY1+Y2+2μ(2AT(XAZE)+2Z)=0

得到

( A T A + I ) Z − A T ( X − E ) = 1 μ ( A T Y 1 − Y 2 ) (A^TA + I)Z - A^T(X - E) = \frac{1}{\mu} (A^T Y_1 - Y_2) (ATA+I)ZAT(XE)=μ1(ATY1Y2)

Z = ( A T A + I ) − 1 ( A T ( X − E ) + 1 μ ( A T Y 1 − Y 2 ) ) Z = (A^TA + I)^{-1} (A^T(X - E) + \frac{1}{\mu} (A^T Y_1 - Y_2)) Z=(ATA+I)1(AT(XE)+μ1(ATY1Y2))

求解第三步利用的是以下引理:

image.png

当固定其他变量,对 E E E进行迭代时,问题如下:

a r g m i n E λ μ ∣ ∣ E ∣ ∣ 2 , 1 + 1 2 ∣ ∣ E − ( X − A Z − Y 1 μ ) ∣ ∣ F 2 argmin_E \frac{\lambda}{\mu} ||E||_{2,1} + \frac{1}{2}||E - (X - AZ - \frac{Y_1}{\mu})||_F^2 argminEμλ∣∣E2,1+21∣∣E(XAZμY1)F2

三、子空间分割

X X X作为字典 A A A,即 A = X A = X A=X,上述优化目标可写作:

m i n Z , E ∣ ∣ Z ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 2 , 1 s . t . X = X Z + E min_{Z, E} \space ||Z||_* + \lambda ||E||_{2,1} \quad s.t. \quad X = XZ + E minZ,E ∣∣Z+λ∣∣E2,1s.t.X=XZ+E

由于当带有skinny SVD U 0 Σ 0 V 0 T U_0 \Sigma_0 V_0^T U0Σ0V0T X 0 X_0 X0是严格从多个子空间的并集中提取的数据样本的集合,子空间的隶属度由行空间决定,并且子空间相互独立时,有以下结论:

V 0 V 0 T V_0 V_0^T V0V0T是块对角矩阵,且当且仅当第i个样本和第j个样本来自同一子空间时, V 0 V 0 T V_0 V_0^T V0V0T ( i , j ) (i, j) (i,j)位置的元素非零

故可以利用 V 0 V 0 T V_0 V_0^T V0V0T做子空间分割

我们先获得对上述优化目标的解 ( Z ∗ , E ∗ ) (Z^*, E^*) (Z,E),令 Z ∗ = U ∗ Σ ∗ ( V ∗ ) T Z^* = U^* \Sigma^* (V^*)^T Z=UΣ(V)T

相对地,我们使用 U ∗ ( U ∗ ) T U^* (U^*)^T U(U)T从列空间入手做子空间分割,并定义亲和矩阵(affinity matrix)如下:

W i , j = ( [ U ~ ∗ ( U ~ ∗ ) T ] i , j ) 2 W_{i, j} = ([\tilde{U}^* (\tilde{U}^*)^T]_{i, j})^2 Wi,j=([U~(U~)T]i,j)2

其中, U ~ ∗ = U ∗ ( Σ ∗ ) 1 2 \tilde{U}^* = U^* (\Sigma^*)^{\frac{1}{2}} U~=U(Σ)21,原文说是为了对损坏数据有更好的性能,保证亲和矩阵的值都是正的(没理解)

最后再利用谱聚类算法比如NCut(Normalized Cuts)对 W W W做切图聚类

NCut的定义见前言中的参考文章

整体的算法流程如下:

04bb2c566869ead8cb66b40e9f6b304.png

由于执行NCut算法要先确定子空间数 k k k,可以通过计算 W W W的拉普拉斯矩阵 L L L,由 L L L的零奇异值个数得到 k k k

但是实际情况下亲和矩阵只是接近于块对角矩阵,因此论文中还提出了软阈值的方法确定 k k k

3bb312440e21f631df928b0fb3fca79.png

6d36a3d7c6784efd3dd0c71fb4d736b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python使用pymysql操作数据库

大家好,当涉及到与数据库进行交互和操作时,Python的pymysql库是一个常用且功能强大的选择。pymysql提供了与MySQL数据库的连接、查询、插入、更新和删除等操作的方法,使得在Python中进行数据库操作变得简单而高效。 1、安装 pymysql 库 在开…

面部捕捉 学习笔记

目录 FaceShift Studio FaceRig Pro是一款功能强大的面部捕捉视频制作软件版 FaceShift Studio FaceShift人脸表情识别原理分析 - 知乎 FaceRig Pro是一款功能强大的面部捕捉视频制作软件版

Python3 笔记:部分专有名词解释

1、python 英 /ˈpaɪθən/ 这个词在英文中的意思是蟒蛇。但据说Python的创始人Guido van Rossum(吉多范罗苏姆)选择Python这个名字的原因与蟒蛇毫无关系,只是因为他是“蒙提派森飞行马戏团(Monty Python's Flying Ci…

【静态分析】在springboot使用太阿(Tai-e)01

参考:使用太阿(Tai-e)进行静态代码安全分析(spring-boot篇一) - 先知社区 ---------------------------------------------------------------------- 由于spring-boot实现了控制反转与面向切面编程的设计思想&#x…

OpenHarmony轻松玩转GIF数据渲染

OpenAtom OpenHarmony(以下简称“OpenHarmony”)提供了Image组件支持GIF动图的播放,但是缺乏扩展能力,不支持播放控制等。今天介绍一款三方库——ohos-gif-drawable三方组件,带大家一起玩转GIF的数据渲染,搞…

如何在JS中克隆对象

在JavaScript中,克隆对象并不是直接支持的操作,因为JavaScript中的对象是通过引用传递的,而不是通过值传递。但是,你可以使用几种不同的方法来"克隆"或"复制"一个对象。 1. 浅拷贝(Shallow Copy&…

二手车经营效率罗盘,用经营效率罗盘玩转二手车生意

课程下载:https://download.csdn.net/download/m0_66047725/89292198 更多资源下载:关注我。 带你了解不一样的二手车圈让二手车经营更高效 课程介绍 随着时代不断发展,二手车行业迎来了快速变革期。二手车有着一车一况、一车一价非标和价…

无人机+飞行服务:无人机飞防服务(打药+施肥+播种)技术详解

无人机飞防服务,结合了先进的无人机技术与农业实践,为现代农业提供了高效、精准的打药、施肥和播种解决方案。以下是对这些技术的详细解析: 一、无人机打药技术 无人机打药技术利用无人机搭载喷雾设备,对农田进行精准施药。通过…

【数仓系列】maxcompute、postgresql、sparksql等行转列数据处理实战总结(其他类型持续总结更新)

1.熟悉、梳理、总结项目研发实战中的SQL开发日常使用中的问题、经验总结,都是常用的开发技能,可以省去很多时间,时间长就忘记了 2.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 文章目录 1.maxcompu…

关于java.nio.file 包--用于文件和文件系统操作的核心包之一

java.nio.file 包是 Java 中用于文件和文件系统操作的核心包之一。这个包提供了许多类和接口,用于在 Java 虚拟机中访问文件、管理文件属性和操作文件系统。主要的功能包括: 1.访问文件和目录: java.nio.file.Files 类提供了许多静态方法,用于…

【Crypto】看我回旋踢

文章目录 一、看我回旋踢二、知识点什么是ROT13?工作原理分析字符串格式 解题感悟 一、看我回旋踢 关键词回旋,盲猜ROT13 因为以 synt{ 开头,并以 } 结束,基本可以判断是ROT13 小小flag,拿下! 二、知识点 …

抖音极速版:抖音轻量精简版本,新人享大福利

和快手一样,抖音也有自己的极速版,可视作抖音的轻量精简版,更专注于刷视频看广告赚钱,收益比抖音要高,可玩性更佳。 抖音极速版简介 抖音极速版是一个提供短视频创业和收益任务的平台,用户可以通过观看广…

leetcode-560 和为k的数组

一、题目描述 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 注意:nums中的元素可为负数 输入:nums [1,1,1], k 2 输出:2输入:num…

装饰乙级资质延期申请的注意事项

在申请装饰乙级资质延期时,企业需要注意以下几个重要事项: 提前了解政策和要求: 企业应提前了解并熟悉资质延期的相关政策和要求,包括所需材料、办理流程、时间限制等。这有助于企业做好充分准备,避免在申请过程中出现…

【机器学习聚类算法实战-5】机器学习聚类算法之DBSCAN聚类、K均值聚类算法、分层聚类和不同度量的聚集聚类实例分析

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

MYSQL课堂练习

学生表:studentsno,sname,ssex,sage,sdept)学号,姓名,性别,年龄,所在系 sno为主键课程表:Course(cno,cname,) 课程号,课程名 cno为主键 学生选课…

申报照明工程设计乙级资质关于财务审计报告的要求

申报照明工程设计乙级资质时,关于财务审计报告的要求通常包括以下几点: 审计报告类型:需要提供由具有法定资质的会计师事务所出具的财务审计报告。如果是企业已经运营满一个会计年度,应提交最近一个完整会计年度的年度审计报告。如…

Rust:struct 与字节序列的相互转换

在 Rust 中&#xff0c;将结构体&#xff08;struct&#xff09;与字节序列&#xff08;Vec<u8>&#xff09;相互转换的常见方法是使用序列化和反序列化库。Rust 有一个流行的序列化库叫做 serde&#xff0c;它支持多种数据格式。为了将结构体转换为字节序列&#xff0c;…

保障餐饮场所安全:定期送检可燃气体报警器

在餐饮行业&#xff0c;火灾隐患一直备受关注。餐厅、茶饮店等场所常常使用燃气设备&#xff0c;而这些设备带来了潜在的安全隐患。 为了及时发现并预防可燃气体泄漏&#xff0c;可燃气体报警器的定期送检显得尤为重要。那么&#xff0c;为什么可燃气体报警器需要定期送检呢&a…

【MySQL精通之路】系统变量-动态系统变量

许多服务器系统变量是动态的&#xff0c;可以在运行时进行设置。 参见“变量赋值的SET语法”。 有关设置系统变量的权限要求的描述&#xff0c;请参阅“系统变量权限” 【MySQL精通之路】系统变量-系统变量权限-CSDN博客 下表列出了所有适用于mysqld的动态系统变量。 该表列出…