【研一小白论文速览1】

《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可扩展性非常好,适合做很多下有任务,但是也是有缺点的,和第一篇论文对比该模型就没有考虑离群值对数据的影响,导致该模型非常依赖数据的质量。总之这篇论文将对比学习使用的很多,就是没开源代码,对我而言更多也只是提供一个思路。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《小白的第一本Python》是一本针对初学者而设计的Python编程入门书籍。这本书以浅显易懂的语言和生动的例子引导读者迈出编程的第一步。 首先,这本书会从Python的基础知识开始讲解。它会解释Python的基本语法和常用数据类型,如整数、浮点数、字符串等。读者会学习到如何声明变量、使用运算符和控制流程语句来编写简单的程序。 此外,这本书还会介绍Python的常用模块和库。读者会学习到如何利用这些模块和库来进行文件操作、网络编程、数据处理、图形绘制等常见任务。例如,读者会学习到如何使用NumPy进行科学计算,使用Pandas进行数据分析,使用Matplotlib进行数据可视化。 除了基础知识和常用模块外,这本书还会教授一些编程的实践技巧。例如,如何编写函数和类来组织代码,如何进行调试和错误处理,如何与数据库进行交互等。通过这些实践技巧的学习,读者将能够写出更加规范和可维护的程序。 最后,这本书还会引导读者完成一些小项目和练习,以帮助巩固所学知识。通过实战的方式,读者将能够更好地理解和应用Python编程。同时,这些项目和练习还将提供一些启发,帮助读者发现编程的乐趣和潜力。 综上所述,《小白的第一本Python》是一本循序渐进、内容丰富的Python编程入门书籍。它通过简单易懂的讲解、丰富的实例以及实践项目,帮助读者掌握Python编程的基础知识和实践技巧。无论是对于初学者还是对于想要系统学习Python的人来说,这本书都是一本不容错过的好书。 ### 回答2: 小白的第一本Python是一本针对初学者编写的Python编程入门书籍。这本书以简单易懂的语言和实例,为初学者提供了全面且系统的学习Python的指南。 首先,这本书从Python的基础知识开始介绍,如数据类型、变量、运算符等。通过清晰的解释和实例演示,帮助读者理解这些概念,并通过实践练习巩固所学知识。 其次,这本书深入探讨了Python的核心特性和功能,如条件语句、循环结构、函数、文件操作等。每个主题都有详细的解释和相关的编程实例,读者可以通过实践掌握这些概念,并将其应用于实际项目中。 此外,这本书还介绍了面向对象编程(OOP)的基本概念和Python中的类和对象的使用。小白可以通过学习面向对象编程来构建更加复杂和可扩展的应用程序。 最后,这本书还提供了一些实际应用案例,如网页爬虫、数据分析和简单的游戏开发等。通过这些案例,小白可以将所学知识应用于实际场景中,加深对Python的理解和掌握。 总之,小白的第一本Python是一本循序渐进、易于理解和实践的Python编程入门书籍。通过系统学习这本书,小白可以打下坚实的Python基础,为进一步深入学习和应用Python编程奠定基础。 ### 回答3: 《小白的第一本Python》是一本专门为初学者设计的Python编程入门书籍。本书通过简明易懂的语言和生动的例子,帮助读者快速上手Python编程。 首先,本书对Python的基础知识进行了系统化的介绍。读者可以了解Python的发展历程、特点以及安装和配置等基本操作。通过对变量、数据类型、运算符、流程控制语句等的详细讲解,读者可以掌握Python基础知识,并能够编写简单的程序。 其次,本书注重实践操作和编程实例的讲解。每个章节都包含大量的实例代码,通过实际案例的演示,读者可以更深入地理解Python的应用场景和编程技巧。同时,书中还包含了一些项目实战,如简单的数据分析、Web爬虫等,读者可以通过实践提高编程能力。 此外,本书还介绍了Python的常用库和框架,如NumPy、Pandas、Django等。这些工具可以帮助读者更高效地开发程序,提高编程效率。同时,本书还对Python的调试技巧和代码优化进行了讲解,帮助读者提高程序的质量和性能。 总而言之,《小白的第一本Python》是一本适合初学者的Python编程入门书籍。无论是对于零基础的读者,还是对于已有其他编程语言基础的读者,本书都能够提供一种简单易懂、系统全面的学习方式,帮助读者快速入门Python编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值