论文阅读笔记(8):Structured Sparse Subspace Clustering: A Joint Affinity Learning and Subspace Clustering Framework,结构化稀疏子空间聚类:一种联合affinity和子空间聚类框架

  • 介绍
  • 提议的方法
    • 聚类问题
    • S3^33C
    • 用ADMM求解S3^33C
      • 第一步:子空间稀疏表示
      • 第二步:谱聚类
    • 算法总结

介绍

在本文中,我们试图将这两个独立的阶段整合到一个统一的优化框架中。一个重要的观察结果是:最佳的子空间聚类通常从次优的affinity矩阵得到。换句话说,谱聚类步骤可以纠正affinity矩阵中的错误,并可以看作是通过去噪得到额外信息的过程。因此,如果我们适当反馈信息增益,它可能有助于自我表达模型产生更好的affinity矩阵。

在本文中,我们提出了一种新的子空间聚类方法,称为结构化稀疏子空间聚类(SSSC或S3C),它集成了计算稀疏表示矩阵和将谱聚类应用到统一优化框架中的两个独立阶段。该方法基于最小化一个新的、用ℓ1\ell_1ℓ1​范数结构化的子空间,它使用segment依赖项来augmentℓ1\ell_1ℓ1​范数。产生的优化问题在交替最小化框架中解决,其中谱聚类的输出用于定义子空间segment矩阵,然后在下一次迭代中用于对表达矩阵的重新加权。

我们获得了S3C框架的两种不同实现:

  • Hard S3C: 在这种情况下,谱聚类产生的分割(即,在k-均值步骤之后)用于构造二进制分割矩阵,以便在下一次迭代中重新加权表示矩阵。

  • Soft S3C: 在这种情况下,嵌入谱聚类产生的数据用于构造连续实值分割矩阵,以便在下一次迭代中重新加权表示矩阵。这种扩展不仅带来了更具原则性的优化框架,而且还具有更好的经验性能,因为它从以前的迭代中捕获了更多的信息。

此外,我们将S3C框架扩展为约束S3C(CS3C)框架,这使我们能够借助部分pairwise的边信息(例如,关于哪些点属于同一组,哪些点不属于同一组的先验知识)形成子空间聚类。

提议的方法

子空间聚类需要解决的问题在之前已经多次叙述,因此不再赘述。

这个问题的结果是希望得到一个N×nN\times nN×n的分割矩阵QQQ,即NNN个数据点作为行,聚类出来的nnn个子空间作为列,那么第iii行第jjj列的元素(一般是0或1的二进制)即表示第iii个数据点(也就是数据矩阵XXX的第iii列)是否属于第jjj个子空间,如果是就为1,否则为0。

显然,每个数据点应当只能被指派到某一个数据点,就算用浮点表示概率的时候也应当概率和为1,故有:
Q1=1Q{\bf 1}={\bf 1}Q1=1
又知道所有nnn个子空间都应该被指派有至少一个数据点,于是每个列上都有至少一个非零元素,那么:rank(Q)=nrank(Q)=nrank(Q)=n
最后有效分割矩阵的集合组成的空间:

聚类问题

关于自表达模型和采用的不同正则化在此也不再赘述。在得到了自表达系数矩阵CCC后,计算:
A=12(∣C∣+∣C⊤∣)A=\frac{1}{2}(|C|+|C^\top|)A=21​(∣C∣+∣C⊤∣)
这是因为,数据完整性矩阵A 表示了成对数据点的相似性,也可解释为成本矩阵,其中每个元素AiA_iAi​是点xix_ixi​和xjx_jxj​划分到两个不同类的成本。给定affinity矩阵AAA,对其的聚类是通过找到一个分割矩阵Q来实现的,该分割矩阵Q应当最小化如下成本和:

其中q(i)\textbf q^{(i)}q(i)和q(j)\textbf q^{(j)}q(j)是矩阵QQQ的不同列。通常Q∈QQ\in \mathcal QQ∈Q可被relax到QQ⊤=IQQ^\top=IQQ⊤=I。最后在QQQ上执行kkk-means得到二进制的分割矩阵。

以前的方法采用的子空间聚类的通用框架将过程分为两个独立的步骤:
a)计算表示矩阵C,依此得到A
b)将谱聚类应用于affinity矩阵A。
不幸的是,它未能利用这两个步骤之间的相关性。

请注意,表示**表达矩阵CCC和分割矩阵QQQ**都试图捕获数据的分段。为了量化矩阵CCC和QQQ之间的相互作用,我们提出了C关于Q的范数概念,即

请注意,优化(4)中的目标是搜索一个矩阵Q,该矩阵Q以固定值最小化分割成本,并且a从表示矩阵C中定义,而表示矩阵C又通过搜索优化(1)中最小化正则化项的所有可能表示矩阵来获得。因此,我们可以将这两个优化程序结合起来,在联合优化框架中同时搜索Q和C。准确地说,我们推导了子空间聚类的联合优化框架,如下所示:


这个优化问题可以通过交替地计算(C,E)(C,E)(C,E)和QQQ解决。这是因为当给定QQQ时这是一个对于(C,E)(C,E)(C,E)的凸优化问题,这可以通过交替方向乘子算法(alternating direction method of multipliers, ADMM)求解;而对于给定(C,E)(C,E)(C,E),QQQ可以通过谱聚类近似求解。

S3^33C

对于使用ℓ1\ell_1ℓ1​范数的子空间聚类,

因此,根据分割矩阵Q,当点iii和jjj位于不同的子空间时,S3C的ℓ1\ell_1ℓ1​范数可被视为通过对CijC_ijCi​j的额外惩罚。通过这样做,Q中的分割信息被纳入保子空间解的搜索中。我们选择使用ℓ1\ell_1ℓ1​正则化的原因有两个:

  • 这导致了加权l1范数形式的组合范数。稍后我们将看到,这有助于在解决优化问题时更新系数矩阵C。
  • SSC建立的许多理论结果已经表明当子空间独立或仿射,以及当数据被异常值破坏、被噪声污染并使用降维进行预处理]时,SSC能够找到保持子空间的解。

对于∣∣C∣∣1,Q||C||_{1,Q}∣∣C∣∣1,Q​这样的联合范数,我们可以将(7)中用于子空间聚类的统一优化框架重新表述如下:

用ADMM求解S3^33C

在计算子空间稀疏表示和应用谱聚类之间进行交替,即:

  1. Find C and E given Q by solving a subspace structured sparse representation problem.
  2. Find Q given C and E by spectral clustering.

具体而言,在谱聚类中,放松约束Q∈QQ\in \mathcal QQ∈Q以便从图拉普拉斯矩阵的奇异值分解计算最优的Q,然后再应用kkk-means算法将Q量化到有效分割集Q\mathcal QQ中。我们把这个过程称为hard-S3^33C。

在hard-S3^33C中,二进制分割矩阵QQQ用于在下一次迭代中重新加权CCC的更新。虽然使用二进制分割矩阵Q在概念上很简单,但它可能无法捕获聚类结果中的详细信息。

请注意,有些数据点更容易分割,因此它们的聚类结果更可靠,而有些数据点更难分割,因此它们的聚类结果不太可靠。当将聚类结果量化为二进制分割矩阵Q时,此类详细的置信度或不确定性信息将被忽略。

因此,我们建议使用实值矩阵Q,而不是使用k-均值对Q再进行重新加权C的更新。我们把这个过程称为soft-S3^33C。连续实值Q携带了先前聚类结果的更详细信息,从而平滑地重新加权表示矩阵C的更新。这有利于产生更好的聚类结果。

第一步:子空间稀疏表示

如前所示,对于给定的分割阵Q,更新C和E就是优化(8)和(9),它可以等价写为:

其中AAA可以看做一种对CCC的放松,C不一定对角元素为零,但它接近对角为零的AAA,当diag(CCC)=0=0=0时C=AC=AC=A

于是,这种新的优化形式可以使用的ADMM算法解决,对应的增广拉格朗日函数(augmented lagrangian)形式为:

增广拉格朗日方法在拉格朗日方法的基础上添加了二次惩罚项,如公式的最后一行所示

其中,YYY和ZZZ为拉格朗日乘子矩阵。为了找到该函数的鞍点(saddle point),我们在保持其它变量不变的情况下依次更新C,A,E,Y,ZC,A,E,Y,ZC,A,E,Y,Z,具体步骤如下

  1. 更新CCC:
    通过解决如下问题:

    其中

    在第t次迭代后CCC的闭式解可以如下求出:

    其中C~(t+1)\tilde C^{(t+1)}C~(t+1)的元素通过U(t)U^{(t)}U(t)的元素计算得到

    其中其中Sτ(⋅)\mathcal S_τ(·)Sτ​(⋅)是收缩阈值算子。也就是说,我们不是用一个常量值对矩阵U(t)U^{(t)}U(t)的所有元素进行统一软阈值化,而是用一个不同的值对每个元素进行阈值化,且该值取决于Θij\Theta_{ij}Θij​。

  2. 更新AAA:

此时CCC已更新完并得到C(t+1)C^{(t+1)}C(t+1),此时它的对角元素已经为零


它的解为:

在这里我给出自己的推导过程


3. 更新EEE:
可以看到,E的出现位置和C几乎一致,故求解的形式也和C一致

其中:

如果我们对E也是用ℓ1\ell_1ℓ1​范数,那么解的形式就和C一样了:

4. 更新拉格朗日乘子:

把其他变量当常数挨个求导就完了,由于拉格朗日乘子不出现于2次项,所以好求的,简单的gradient ascent即可


以上步骤总结为算法1:

第二步:谱聚类

给定了C和E后,∣∣C∣∣1||C||_1∣∣C∣∣1​和∣∣E∣∣ϵ||E||_\epsilon∣∣E∣∣ϵ​也确定了,因此,公式9的联合优化问题就退化为:

利用子空间范数的定义,上述问题是如下的谱聚类问题:

其中,C可以得到affinity矩阵A,然后L‾\overline LL是A的图拉普拉斯矩阵,即:

其中D (degree matrix) 是 diagonal matrix,其对角元素D‾jj=∑iA‾ij\overline D_{jj}=\sum_i\overline A_{ij}Djj​=∑i​Aij​,并将Q∈QQ\in \mathcal QQ∈Q的约束放松到Q⊤D‾Q=IQ^\top \overline DQ=IQ⊤DQ=I从而得到:

具体来说,通过进行Q~=D‾12Q\tilde Q=\overline D^{\frac{1}{2}}QQ~​=D21​Q的拆分,可以得到约束形如Q~⊤Q=I\tilde Q^\top Q=IQ~​⊤Q=I的优化,中间的图拉普拉斯矩阵变成了D−12L‾D−12D^{-\frac{1}{2}}\overline L D^{-\frac{1}{2}}D−21​LD−21​

在这里,Q~\tilde QQ~​的解由D−12L‾D−12D^{-\frac{1}{2}}\overline L D^{-\frac{1}{2}}D−21​LD−21​的最小的nnn个特征向量给出。

到此hard和soft S3^33C之间出现分歧:hard-S3^33C会对Q~\tilde QQ~​用kkk-means使其元素为0或1,然后用变换后的Q~\tilde QQ~​构建二进制子空间结构矩阵:
Θij=12∣∣q(i)−q(j)∣∣22∈{0,1}\Theta_{ij}=\frac{1}{2}||\textbf q^{(i)}-\textbf q^{(j)}||_2^2\in\{0,1\}Θij​=21​∣∣q(i)−q(j)∣∣22​∈{0,1}
若使用soft-S3^33C,则只对Q~\tilde QQ~​进行单位ℓ2\ell_2ℓ2​标准化(即ℓ2\ell_2ℓ2​单位球面),然后:
Θij=12∣∣q(i)−q(j)∣∣22∈[0,2]\Theta_{ij}=\frac{1}{2}||\textbf q^{(i)}-\textbf q^{(j)}||_2^2\in{[0,2]}Θij​=21​∣∣q(i)−q(j)∣∣22​∈[0,2]

算法总结

S3^33C算法在使用算法1求解稀疏系数矩阵和误差矩阵(C,E)(C,E)(C,E)和使用谱聚类求解Q之间交替进行。为清楚起见,我们总结了算法2来描述解决联合优化问题的过程。由于affinity矩阵是稀疏的,算法2的主要计算负担是解决优化(13)。具体而言,计算成本为O(T1T2(N3+DN2))O(T_1T_2(N^3+DN^2))O(T1​T2​(N3+DN2)),这是由于在更新A时使用(17)进行矩阵求逆和矩阵乘法,其中T1T_1T1​是使用ADMM求解的迭代次数,T2T_2T2​是算法2中的外部迭代次数。

论文阅读笔记(8):Structured Sparse Subspace Clustering: A Joint Affinity Learning and Subspace Clustering相关推荐

  1. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  2. 论文阅读笔记(4):Local Convex Representation with Pruning for Manifold Clustering ,带剪枝的局部凸表达进行流形聚类

    论文阅读笔记(4):带剪枝的局部凸表达进行流形聚类 介绍 文章主要贡献 理论上:局部凸表达(Local Convex Representation, **LCR**) 剪枝方法:估计流形的内在维数以剪 ...

  3. 【论文阅读笔记】Real-Time Video Super-Resolution on Smartphones with Deep Learning, Mobile AI 2021 Challenge

    论文地址:https://arxiv.org/abs/2105.08826 论文小结   这比赛的目标是在移动手机上得到实时运行的视频超分算法,目标在480p(实际上是180∗30180*30180∗ ...

  4. 【图像修复】----论文阅读笔记《EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning》

    文章目录 论文链接 概述 方法 实验 结果 论文链接 github地址:https://github.com/knazeri/edge-connect 论文地址:https://arxiv.org/p ...

  5. 论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》

    小样本学习&元学习经典论文整理||持续更新 核心思想   本文提出一种基于图神经网络的小样本学习算法(DPGN).先前基于图神经网络的小样本算法通常将每个样本当作一个结点,然后通过结点之间的关 ...

  6. 【论文阅读笔记】High Quality Monocular Depth Estimation via Transfer Learning

    文章目录 High Quality Monocular Depth Estimation via Transfer Learning Abstract 1. Introduction 2. Relat ...

  7. 论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering,SENet,用于大规模子空间聚类的自表达网络

    论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering. SENet--用于大规模子空间聚类的自表达网络 前言 摘要 ...

  8. 论文阅读笔记(15):Deep Subspace Clustering with Data Augmentation,深度子空间聚类+数据增强

    论文阅读笔记(15):Deep Subspace Clustering with Data Augmentation,深度子空间聚类+数据增强 摘要 1 介绍 2 相关工作 带增强的聚类方法 具有一致 ...

  9. 论文阅读笔记(5):Oracle Based Active Set Algorithm for Scalable Elastic Net Subspace Clustering

    论文阅读笔记(5):Oracle Based Active Set Algorithm for Scalable Elastic Net Subspace Clustering,基于Oracle的可伸 ...

最新文章

  1. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像
  2. ICANN敦促业界使用DNSSEC,应对DNS劫持攻击
  3. 60分钟入门深度学习工具PyTorch
  4. 捷报!又一名HIV感染者被治愈,干细胞移植再次立功
  5. 【c++】11.重写、覆盖、using、typedef
  6. 更改git远程分支的方法
  7. 与时代并肩的数字创新者
  8. linux查看气质系统文件命令,Linux dumpe2fs命令:查看文件系统信息
  9. WPF触发器(Trigger)
  10. 第三百七十二天 how can I 坚持
  11. 搭建Open××× Server路由模式、证书认证
  12. GIS笔记_普通tif文件转成array数组 c#
  13. ARKit 和 ARCore剖析、结构、原理介绍
  14. oracle 有if语句吗,oracle的if语句
  15. OpenNESS NTS 的前世今生
  16. 【JAVASE项目】书店管系统
  17. iOS面试合集,面试看这一篇就够了。
  18. 详细分析《三合一收款码》后台程序识别原理
  19. 什么是锁?看完你就明白了
  20. LeetCode K站中转内最便宜的航班(回溯法、动态规划)

热门文章

  1. 重庆市药政云课堂学习方法
  2. 在oracle数据库、postgres数据库实现循环生成日历表
  3. 计算机专业自考参考文献,自考计算机专著类参考文献 自考计算机核心期刊参考文献有哪些...
  4. Word操作技巧大全3(转)
  5. win10玩cf不能全屏_80后经典游戏:红色警戒2(可支持win10系统)
  6. 网页布局的兼容性问题汇总
  7. linux系统中插件安装失败,Ubuntu 安装Rhythmbox多媒体插件时出现错误
  8. 计算机与打印机脱机后怎么共享,重启电脑系统后出现共享打印机脱机问题怎么解决...
  9. Primavera P6 EPPM R18.8.X Patch/Update(补丁/更新)
  10. 华硕笔记本电脑软件测试,我新买一台华硕笔记本电脑,發现是用过的,怎么能检查出来啊...