Do K, Tran T, Venkatesh S. Clustering by maximizing mutual information across views[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 9928-9938.
摘要导读
本文提出了一个新的图像聚类框架用于联合优化表示学习和聚类。该框架由两个共享的主干网络头组成,分别为“表示学习”和“聚类”。“表示学习”头在样本级别捕获对象的细粒度模式,作为“聚类”头的线索,提取粗粒度信息,将对象划分到对应的类簇中。整个模型以端到端的方式进行训练,通过最小化两个头部输出的两个对比损失的加权和。为了保证“聚类”头对应的对比损失是最优的,作者引入了一个新的评价函数,称为“点积对数(log-of-dot-product)”。
知识准备
-
通过最大化不同视图之间的互信息进行表示学习
由于难以直接计算互信息,通常使用最大化互信息的变分下界,本文采用了常用的下界InfoNCE:
由于 -
在实现中,由缩放余弦相似度来计算:
聚类模块的对比损失
- 通过最大化不同视图之间的互信息进行聚类
使用聚类模块可以得到关于类簇的软分配表示,是类簇的个数。用于聚类的损失可表示为: - 关于相似性评判的函数选择
本文指出,因为应用于类别概率向量而不是连续的特征向量。因此,这里选用内积可能会造成次优解。理论上来说,最优的评判函数应该与log成比例:
除此之外,为了避免在最小化过程中由于类簇分配概率接近于one-hot而导致的梯度饱和现象,我们将概率向量进行了如下的平滑:
- 对比概率损失的实现
在实现中作者也是采用了两种不用的方式(SimCLR Framework and MemoryBank Framework)对进行了实现。
对于SimCLR Framework,和由带参分类器直接计算。、对于MemoryBank framework,则需要保持一个无参数的memory bank ,该矩阵是一个包含所有样本的类簇分配概率,其中的每一行的更新由如下方式计算:
聚类模块和表示学习模块的结合(CRLC)
为了避免特征的表示学习模块导致的次优解。本文提出将对比聚类和表示学习统一到一个框架中称为CRLC。
semi-CLRC(variant of CRLC)
前面给出的模型CLRC是用于无监督聚类的,可以简单的将其拓展到半监督学习中。有标签数据可以有很多种方式应用在模型学习的过程中。这里,作者采用可最简单的方式进行拓展,即将有标签数据的交叉熵损失添加到原始的对比学习框架中。整体损失可以进行如下的表示:作者通过实验说明了当只有少数标记样本可用时,CRLC-semi优于许多最先进的SSL方法。反正就是很优秀了。
实质上来讲,C-head和RL-head的区别在于一个将中间表示映射为类簇的概率分配,而另一个则是所谓的连续特征表示。从构造上来讲,只是输出层的维数不一样,以及是否需要使用softmax进行激活(貌似稍微有点类似???但毕竟学习的参数不一样)。比起doubleClustering而言,相似性的评价函数在C-head中进行了改进,设置没有考虑纵向类簇在所有数据上的分布情况的对比,可能在实验中各有千秋吧。