【研一小白论文速览1】

news/2024/5/20 5:59:27 标签: 聚类, 机器学习, 深度学习

《CDIMC-net: Cognitive Deep Incomplete Multi-view Clustering Network》

认知的深度不完全多视图聚类网络,如题目所说,本篇论文主要是提出了一个新的网络架构。虽然不完全多视图聚类这个方向已经有很多工作再做了,而且也取得了不错的效果,但是有两个问题依旧没有解决:1)网络太浅难以获取决定性的特征表示。2)现有的方法对负样本中的噪声和离群值非常敏感。这篇论文针对以上两个问题,设计了一个深度的解码器来捕获不完全多视图的高维特征,并且采用了一种图嵌入策略,另一方面模型引入一种自学策略为模型训练选择样本,这种策略可以减少离群值对负样本的影响,最后也是通过了实验进行了证明。
论文一开始讲一些之前的工作有着一些缺点没有解决,之前大多数的网络模型太浅,只能获取一些通用表示但不能获取高级特征,虽然也有一些方法可以获取高级特征,但是又忽视了负样本的边际影响,因为边际样本一般都是很不合理的远离聚类中心,而以前的方法对所有样本基本都是一视同仁,非常不利于模型训练。自然而然就引出本文提出的两种方法,一是提出一种新颖的包含图嵌入的深度聚类网络,二是通过自学习使该网络能自适应地减少边际样本所带来的负面影响,因此对异常值更有鲁棒性。
紧接着再介绍了一些相关概念之后,就到了CDIMC-net的介绍了:
在这里插入图片描述
对于相同的不完全多视图数据,CDIMC-net分成了两组,上半部分使预训练,下半部分是微调。上半部分的作用就是基于自编码器初始化网络参数,下半部分做微调可以直接copy之前得到的权重参数。
上半部分的预训练网络中的自编码器由三个部分组成:1)最上面的灰色箭头表示数据会先编码再解码做重构,所以对应下面蓝色绿色黑色的自编码器的基本结构。2)加入了一个融合层Fusion Layer放在编码解码结构的中间,这个融合层可以减少缺失视图所带来的负面影响。3)视图样本会做一个图嵌入的操作,很像NLP中的词嵌入,这部操作可以获取样本中的高级特征,相同视图不同样本在embedding空间中的距离是比较近的,确实在现在全是对比学习的主流下使用图嵌入也挺新颖,最后将图嵌入得到的embedding向量和解码之后的结果一起传送到融合层中。最后为整个上部分预训练设计一个损失函数,预训练的操作就结束了。
下半部分主要做微调和聚类,如图所示,经过融合层会得到一个通用表示,这个表示对聚类其实并不友好,因为现在的聚类网络对异常值不敏感,所以还要加以一个自学习的聚类层来增加聚类网络对边际样本的敏感性。最后为聚类层和微调分别设计损失函数。后为网络选择合适的优化器,再通过一系列实验调参。
收获:
1.融合层:本质上是对不同视图的representation做加权求和的过程。
2.聚类层:对聚类算法的重新设计,这种方法可以原本的聚类算法自适应的调整每次的步长。
熟悉了先预训练再微调这样的无监督的学习方式,还有一个是加深自编码器的网络结构,最后一个就是聚类层。至于图嵌入的方式在这个全是对比学习的时代,作者也没有做这两者之间哪个效果更好的实验,我感觉对比学习已经发展地很成熟了,所以把图嵌入换成对比学习的话,但是应该也能提升网络性能。

《Adversarial Incomplete Multi-view Clustering》

对抗的不完全多视图聚类,从题目中能猜到这篇论文使用到了GAN。和上一篇论文一样,作者一开始便说之前的模型要不太浅学不到不同视图之间的差异或者依赖,要不忽视了缺失数据的隐含信息,要不只能用与两种视图的情况多了就不行了,总之有很多限制。为了消除这些限制,作者提出了AIMC这个方法。AIMC通过在不同视图公有的隐空间之中执行数据推理,并将数据的重构和GAN做了结合,用这种方法推理出缺失数据。此外在聚类过程中,又设计了对齐的聚类消耗结构。
一开始先介绍了一下这个方向的大背景,又在数学层面上说不完全多视图聚类本质上是一种非负矩阵的分解,而这种分解本质上基于在完整实例上学习隐空间、在不完整实例上学习隐表示。之前也有过人用Cycle GAN生成缺失数据,但是只能适用于两个种视图的情况,因为Cycle GAN本身也只有两个生成器,多了就不行了。为了消除这种限制,作者设计了AIMC如下图所示:
在这里插入图片描述
网络也很简单,不同视图先通过一个编码器学习到自己的隐空间,这个隐空间实际上是一种分布。然后将不同视图所对应的隐空间通过一个平均池化做下采样得到一个通用的隐空间z。每种视图会将通用的隐空间和自己本身的隐空间传入对应解码器当中,解码器会通过重构损失来捕获高维特征从而推理缺失数据。除此之外后面还有额外的解码器,这个额外的解码器充当判别器的作用,区分x属于哪种视图。网络设计到三种损失函数,后面两种解码器对应的重构损失和判别损失比较好理解,因为中间的解码器g的作用就是生成假数据,在这之前,会加入一个KL对齐的聚类损失,这个损失只会加在完整的视图上,不会加载缺失的视图上,目的就是找出看看哪个视图的分布能使所有视图的分布更加一致且紧凑。
最后作者也是介绍了一些相关概念,推导了损失函数,做了一些实验。这篇论文的网络结构巧妙地将多个视图的情况下把重构损失和GAN结合在一起,但是没有源代码,对于现在的我复现起来也非常困难,具体细节怎么做到的也不得而知。

《TPIT-C:Two-stage Partial Image-Text Clustering》

这篇论文是师兄的第一篇论文,最近要投了,虽然不是顶会,但是看看也挺有必要。从题目中也能清楚看出,这篇论文主要解决的问题就是两阶段式的不完全图片与文本的聚类。与上面两篇论文的区别在于多模态中的多视图,上面两篇论文针对的是同一种数据不同视图的多模态,而这篇论文的多模态从图片和文本本身就是异质的了。图片要想生成和文本一样的语义信息,就一定要生成能概括图片全局概念的特征,然后在循环的隐空间之中完成聚类任务。
论文一开始现在理论上说明,文本和图像虽然是异构的,但是是存在互补性或者一致性,本篇论文提出的TPIT-C有两个阶段,先用自下而上的注意力机制提取图片特征来表示图片的全局语义,再通过CycleGAN来连接两种模态,一下为该模型的结构图:
在这里插入图片描述
这张图其实还是我画的,第一阶段先抽取图片特征,能提取图片特征的网络有很多,卷积、残差等等。本文为了将提取的特征更好地表示全局语义,先通过自下而上的注意力机制像目标检测一样会产生36个目标框,然后创建一个图结构,将不同的目标框作为图结构中的节点,节点之间的边就代表不同目标框之间的关联度,最后通过GRU做最后的提取。再提出文本和图像的特征之后,第二阶段就要进入循环了,在这个循环过程中,包含损失重构,以及利用Cycle GAN来生成缺失数据。再完成了这两个阶段就可以对数据直接用K-means聚类了。然后介绍了每个部分的损失函数以及伪代码,最后介绍了一些聚类的评估指标和数据集,以及网络模型的参数选择。

《Distilling Audio-Visual Knowledge by Compositional Contrastive Learning》

一段视频通过包含两种不同的模态,一帧帧图片和音频。而在之前的方法中,视频的表示通常是将图片和语音这两种模态直接对齐得到的。而这篇论文会通过对比学习和知识蒸馏结合的方式使模型能学习到一种组合的嵌入表示,这种嵌入表示与直接对齐不同模态的表示是不同的。在这里插入图片描述
直接看图比较好理解,目标是得到一个具有很强视频学习能力的学生模型。首先先需要两个很大很丰富的教师模型,一个教师用于提取图片特征,另一个教师用于提取音频特征。将一段视频的图片部分传入上面的教师模型,音频部分传入下面的教师模型,将整个视频传入到学生模型,这个过程中间会通过蒸馏的方式,图中没有画,大概就是通过将教师模型得到的输出通过蒸馏转化为暗知识,再集合学生模型的输出做损失和梯度回传,这样就能快速得到一个很好的视频学习器学生模型了。于此同时,将学生网络v、图片教师网络i和音频片教师网络a的三组输出,图片教师输出和学生输出做一个组合iv,音频教师输出和学生输出做一个组合av,共五组,这五组之间还可以构造正负样本做对比学习。正样本包括同一条视频产出来的v,a,av和v,i,iv。负样本通过学生输出v和不同视频产出的i,iv和a,av。
这篇论文的工作量很大,通过对比学习来提升蒸馏效果的想法还是值得借鉴的。

《Contrastive Multi-Modal Clustering》

本文提出的CMMC通过对比学习的方式来挖掘高级的语义信息。具体来说有三个部分组成:1)多个自动编码器来保持模态的多样性。2)特征对比模块学习不同模态的通用特征。3)标签对比模块学习不同模态的一致性分配,由高级语义生成伪标签进行微调。传统的多模态聚类方法采用浅模型或线性嵌入实现,导致聚类性能较差,而CMMC是一种基于对比学习的模型,可以学到通用的高维敏感特征。
在这里插入图片描述
不同模态先经过编码器得到各自的表示z,每种模态的表示z会传入三个地方,一是传入解码器做重构损失,这个比较常见了,还会传入两个基于对比学习构建的模块,特征对比模块和标签对比模块,这两个模块我看了好久才稍微弄清楚一些。
首先先设置一些前提,如上图所示,共有M种模态,每种模态输入的x有N条实例,再经过编码器之后得到了低维表示z。同样z也是来源于M种模态,每种模态的z各自都有N条实例。
特征对比模块的作用是在保证不同模态多样性的前提下挖掘高层语义的一致性,所有的z通过这个模块会得到高级特征h,h和z一样也是包括M种模态,每种模态的h中都有N条实例。不同实例之间两两组合,因为所有h实例加起来共有NM条,随便对于某一种模态中的某一条h来说,所以一共有(NM-1)对组合,其中正样本有(M-1)组,负样本有M(N-1)组,再构造损失函数做反向传播训练就行。因为正样本选取的是h实例对应其他不同模态对应位置上的h,所以,正样本反而来自不同模态,就可以学习到高层语义h的一致性。
标签对比模块的作用是挖掘互补信息,这个模块和每种模态的输入实例数量N没有一点关系,和最终聚类中心的个数K有关。经过该模块会得到M个Q张量,这个张量是二维的,Q张量的列数代表聚类中心的个数。同样不同的Q张量中的列向量之间两两之间做组合。对于随便一个Q张量任意一个列向量,总共有(MK-1)对组合,同样来自同意模态的张量Q之间构造正样本(M-1)对,不同模态之间Q张量构造负样本对M(K-1)对。对应列号的列向量构造正样本,其余都为负样本,可以学习到聚类预测的互补性。
最后的损失函数也由重构损失、特征对比模块、标签对比模块三个损失相加得到最后的损失。
聚类的时候作者又用到了很巧妙的方法将之前的特征充分利用了起来,现有高维特征h,以及聚类的软标签Q张量,作者还会利用之前的这些表示来对聚类任务进行微调,先通过h和Q计算出对应实例的伪标签,并且修改了聚类公式为最大匹配公式。为了利用高级语义特征进行多模态聚类,我们解决了一个最大值匹配问题生成伪标签,进一步利用伪标签对模型进行微调。
感觉这篇论文对与对比学习的利用很好,尤其是几个对比学习模块的设计,正负样本的构造,而且在不同数据集的实验表明CMMC可扩展性非常好,适合做很多下有任务,但是也是有缺点的,和第一篇论文对比该模型就没有考虑离群值对数据的影响,导致该模型非常依赖数据的质量。总之这篇论文将对比学习使用的很多,就是没开源代码,对我而言更多也只是提供一个思路。


http://www.niftyadmin.cn/n/1492434.html

相关文章

【研一小白论文精读】Joint Generative and Contrastive Learning for Unsupervised Person Re-identification

Abstract 就是将GAN和对比学习模块结合起来,对比学习不是需要数据增强吗,就用GAN的视图生成器来做这个增强,还提出了一种对比学习的损失函数,实验也证明取得了SOTA。 Introduction ReID的目标是从不同视图中识别物体&#xff0…

【研一小白论文速览2】

Evolving Losses for Unsupervised Video Representation Learning 这篇论文把非监督学习定义成一个多模态,多任务的学习,希望结合不同非监督学习的学习方法来综合学习到一个好的特征。 Intuition 如何构造定义这个unsupervised learning这样一个问题…

【各位再见啦】

首先这不是技术文档, csdn是一个非常好的记录各种问题,找到解决问题的答案的一个社区,但是我决定以后不在这里发文章了,但我永远都是csdn的忠实用户,因为里面有很多博主花大量心血记录自己的学习过程,分享自…

【感谢大家的支持】

本来没几个粉丝,但是这寥寥无几的粉丝重新给了我信心。现在忙着写第二篇小论文,等忙完这一阵,我也会回到CSDN。或者考虑发一些视频,比如在CSDN或者b站之类。现在还有在写文章,在notion里写,等快开学的时候会…

Learning Opencv—开篇

第一次写作,砰砰砰…,深呼一口气冷静冷静。好啦,下面开始正题,首先,做个简单的介绍,我将来自西部某985的CS小硕(目前本科双非大四),误打误撞进入视觉领域,经过一年的探索性学习方式&…

Learning Opencv——环境篇

在这一章我还是稍微说的仔细点,刚入门的时候,装软件时常踩坑,我以前也感受过看作者疯狂跳步骤的教程,太难受了,估计是我太菜了,现在我就跟我一样“菜”的人描述一下如何在Ubuntu下装OpenCV,希望…

基础学习--NumPy

我又来啦,抱歉啊,最近有点事情,opencv就先搁一搁吧,以后有空再补上吧,最近在做一个目标检测的工作,在看源码的时候发现了numpy的使用挺频繁的,之前一直没有系统的接触过,看源码的时候…

如何利用 Git 与 GitHub 进行多人协作开发

Fork。第一步是Fork他人仓库,具体啥是Fork,自行百度,经过Fork以后就可以在自己的账号下得到对应的远程副本,可以自己的仓库找到如下图所示, clone。从Fork后的远程副本clone仓库到本地目录,接下来在自己的…