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:
由于 小于等于0,因此以log为上界。 -
在实现中,由缩放余弦相似度来计算:
和分别是和的单位规范表示向量;即 由此,(3)式中的对比损失可以被重写为 FC表示“feature contrastive”。
聚类模块的对比损失
- 通过最大化不同视图之间的互信息进行聚类
使用聚类模块可以得到关于类簇的软分配表示,是类簇的个数。用于聚类的损失可表示为: 和分别是与和相对应的概率向量。是边际簇分配概率的熵, 这里最大化是为了避免类簇分配的平凡解,即避免所有的样本都分配到同一个group中。 - 关于相似性评判的函数选择
本文指出,因为应用于类别概率向量而不是连续的特征向量。因此,这里选用内积可能会造成次优解。理论上来说,最优的评判函数应该与log成比例: 和是和对应的类簇标签。作者认为最适合的评价函数是 即为摘要中提到的“点积对数”。当和是同一one-hot向量时,该评价值达到最大值,当和是不同的单热向量时,该值达到最小值。
除此之外,为了避免在最小化过程中由于类簇分配概率接近于one-hot而导致的梯度饱和现象,我们将概率向量进行了如下的平滑:
其中是一个维均匀分布向量,是给定的平滑系数,在实验中作者将其设置为0.01。- 对比概率损失的实现
在实现中作者也是采用了两种不用的方式(SimCLR Framework and MemoryBank Framework)对进行了实现。
对于SimCLR Framework,和由带参分类器直接计算。、对于MemoryBank framework,则需要保持一个无参数的memory bank ,该矩阵是一个包含所有样本的类簇分配概率,其中的每一行的更新由如下方式计算: 是一个动量系数,这里设置为0.5。是训练样本在时刻对应的概率向量,对应于矩阵中的第n行。是当前新的概率向量。初始化为相同的概率。
聚类模块和表示学习模块的结合(CRLC)
为了避免特征的表示学习模块导致的次优解。本文提出将对比聚类和表示学习统一到一个框架中称为CRLC。
如上图所示,C-head和RL-head共享相同的backbone网络框架。该框架通常采用卷积神经网络将输入图片映射到隐含向量。被喂入C-head和RL-head产生聚类分配向量和连续的特征向量。整个网络采用聚类损失和特征对比损失同时优化的方式进行训练:semi-CLRC(variant of CRLC)
前面给出的模型CLRC是用于无监督聚类的,可以简单的将其拓展到半监督学习中。有标签数据可以有很多种方式应用在模型学习的过程中。这里,作者采用可最简单的方式进行拓展,即将有标签数据的交叉熵损失添加到原始的对比学习框架中。整体损失可以进行如下的表示:作者通过实验说明了当只有少数标记样本可用时,CRLC-semi优于许多最先进的SSL方法。反正就是很优秀了。
实质上来讲,C-head和RL-head的区别在于一个将中间表示映射为类簇的概率分配,而另一个则是所谓的连续特征表示。从构造上来讲,只是输出层的维数不一样,以及是否需要使用softmax进行激活(貌似稍微有点类似???但毕竟学习的参数不一样)。比起doubleClustering而言,相似性的评价函数在C-head中进行了改进,设置没有考虑纵向类簇在所有数据上的分布情况的对比,可能在实验中各有千秋吧。
网友评论