MULTIMODAL GENERALIZED CATEGORY DISCOVERY
2026/9/4 18:01:12 网站建设 项目流程

1、摘要

提出多模态GCD任务,理论分析认为核心在于模态对齐,所以在特征层和输出空间用对比学习和蒸馏技术进行对齐

  • 特征空间用对比学习对齐
  • 输出空间用蒸馏技术对齐

实验上取得好结果

2、引言

介绍新类发现任务,一部分数据类别已知,新输入的数据包含旧类别和新类别,不仅要能识别旧的类,还要能识别新类,在开放世界场景中有重要价值。

之前的很多任务只利用单模态数据,本文扩展到多模态场景。但也带来了新的挑战,即如何利用这些异构的数据,如果多模态之间的数据没有很好对齐,模型会受到影响。因此提出MM-GCD,直接解决GCD中的对齐问题。

划分为两个阶段,一个是特征空间构建,在这里引入对比学习来进行对齐,另一个是对特征空间进行类别划分,引入蒸馏技术,具体而言,一个模态产生的预测可以作为另一个模态的学习目标,并结合熵最小化来进一步增强不同模态预测之间的一致性。

对比学习区分谁应该近谁应该远,蒸馏是让两个分支互相模仿

——主要读一下用的什么基线,怎么对齐和执行后续步骤的,感觉做的不是很难。

3、相关方法

多模态学习:拼接等聚合方法,对比学习作为对齐方法(通常在大规模数据集上进行过预训练)

新类发现任务:旨在从无标签数据中识别并划分此前从未见过的新类别,无标签里全是新类,把他们聚合起来

广义类别发现:无标签数据里有旧类也有新类

4、理论分析

最开始直接拼接用CLIP提取的两个模态的特征,比单模态效果还要差

认为是模态的信息没有对齐导致的干扰拉低性能,所以从数据分布角度进行理论推到,分析模态对齐对任务的影响。

对于一个多模态数据集 (X,Y),这里 X 和 Y 分别表示来自两个不同模态的特征随机变量。Xk​,Yk​分别表示第 k 个类别在两个模态中的特征随机变量。

假设每个类别的特征数据服从高斯分布,Xk​∼N(μXk​​,SXk​​) Yk​∼N(μYk​​,SYk​​) 拼接之后的分布是Fk​∼N(μFk​​,SFk​​) 所以,μFk是μXk​​和μYk​​拼接的向量(因为这里是一个簇的样本的特征,所以均值是向量,融合后的均值是拼接后的向量),协方差矩阵为:

SXk​Yk​​是交叉协方差,可以理解为,第 k类中,图像特征变化的时候,文本特征是不是也以某种对应方式发生变化?如果毫无关系,会比较弱,相当于把模态对齐转化为了跨模态相关性

定义:SXk​Yk​​=SXk​1/2 ​ Rk​ SYk​1/2​. Rk是一个对角矩阵,模态相关时,ρ趋于1

用协方差矩阵的行列式衡量类别是否紧凑,协方差越小,说明类别越紧凑,也就更容易被算法识别

那么对齐为什么会让联合分布更紧凑?其实后两项由数据分布的性质决定的,只有R越大,LF才越小,R越大就是ρ要越大。

对齐越好,拼接之后的协方差矩阵行列式更小,类别内部分布的紧凑度会更高,也就更容易区分

5、本文方法

基于理论分析,审视了单模态GCD场景中损失函数的设计,在原有单模态的基础上,加上跨模态对齐的学习目标。

5.1 发现一个新类别需要什么条件?
  • 第一步,需要一个能够区分不同类别的嵌入空间
  • 第二步,需要对这个空间进行有效划分,并且划分后要包含新类别

其实对应的是表征学习和参数化分类(这两个点倒是挺对的,严肃学习)

本文方法就是在这两个步骤里都加入跨模态对齐的信息,也就是前面说的,在表征学习里加入对比学习,在划分的输出空间里互相蒸馏。

5.2 表示空间构造

定义三种正样本对,hi是特征空间,zi是用于做对比学习的映射空间

第一种:同一个样本的两个视图(有一个增强样本),感觉这里说的有点奇怪,因为这里给的是无监督对比学习的损失函数,其实正负样本对都给出了

第二种:有监督对比学习,Ni表示和xi有相同真实标签的样本集合,可能因为有增强视图,所以这里的正样本也是同类其他样本的增强样本,j应该也属于Bl

——本来我质疑没写r不等于i,那就退化到第一类了,但是想了想,第一类是无监督,所有样本都做,第二类是有监督,只针对有标签的样本,其实是造成了一些不必要的

第三种:跨模态对比学习,认为同一个样本中不同模态的表示层是正样本对

可以理解为前两个损失是模态内的,样本级别一致性,学习类别结构,第三个才是做对齐。

三种对比损失结合在一起,形成嵌入表示层的约束。

5.3 划分嵌入空间

借鉴simGCD,使用参数化分类器,先构建所有类别的可学习类别中心,然后让每个样本计算属于每个类别中心的概率,分类部分也设计了三个层次的loss

第一类:所有样本的自蒸馏损失,用增强样本得到一个更尖锐的算标签qi,再用pi去你和qi

第二种:用有标签数据修正类别中心,这里上面应该是s吧,supervise,这里其实是p去拟合y

第三种:多模态原型蒸馏,这里其实互相蒸馏了,因为这个公式只是后者对齐前者,实际两个都要蒸馏

除此之外,不同模态对于未知类别的结果可能不一致,比如同一个新类别可能被分到不同的cluster,所以在计算损失之前,使用 Hungarian algorithm 做 label mapping,以寻找最优的类别对应关系

但没有ground truth,怎么知道cluster之间的对应关系是什么

因为一个mini batch有很多成对样本,看两个分支的预测结果,,会构造一个共现矩阵,意思是横向模态的的第一类样本落在另一个模态的第三类,第二类样本在另一个模态的第一个类别,这样匹配上。只是产生一个mapping,可是这个

如果在初始化阶段匹配错了呢?

——可能因为不是随机初始化的,而是用了预训练的大模型,而且只微调最后一个block

这个和聚类不太一样的就是,预训练的CLIP,image encoder和text encoder作为backbone,前面大部分层冻结,损失函数作用在最后一个transformer block来参与微调,同时 projection head、后面的 prototype classifier / fusion 等可训练部分也一起优化。总之参数会反向传播

6、实验

7、总结

8、我的思考

之前对于新类发现任务和多模态任务觉得很复杂,但是看完这个确实觉得就那么几步,最重要的就是映射到好划分的表示空间,再进行划分,只是多了一些无标签数据而已,只是要解决一些问题来提升性能而已。重点在于,为什么现有方法学出来的空间还不好聚?后面看GCD的论文就可以看他们主要是作用在哪个地方,或者是两者交叉的地方。

新类发现的时候不同模态对于新类别的标识可能不一致,所以要mapping

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询