出处: AAAI-2021
摘要:本文提出了一种称为对比聚类(CC)的单阶段在线聚类方法,该方法采用实例级和聚类级的对比学习。具体来说,对于给定的数据集,正实例对和负实例对是通过数据扩充构建然后投影到特征空间中。其中,实例级和聚类级对比学习分别在行和列空间中进行,通过最大化正对的相似性,最小化负对的相似性进行对比聚类。得出的结论为,特征矩阵的行可以被视为实例的软标签,相应地,列可以被视为聚类表示。通过同时优化实例和聚类级对比损失,该模型以端到端的方式联合学习表示和聚类分配。
对比思想: 同时从积极的信息(学习)和消极的信息(区分)中获取知识
过程: 尽可能拉近正样本与正样本之间的距离,同时尽可能的与负样本进行区分
距离度量: 欧几里得距离,余弦相似度,马氏距离
目标: 给定锚点,通过空间变换,使得锚点与正样本间距离尽可能小,与负样本距离尽可能大
神经网络结构: 多层全连接网络、卷积神经网络、深度信念网络、自编码器、生成对抗网络
损失定义: 目前深度聚类模型的损失函数普遍采用聚类损失(聚类方法评价指标)与网络辅助损失组合的方式
网络辅助损失: 由于聚类问题没有监督信息作为指导,单独使用聚类损失作为目标函数很容易导致模型退化. 网络辅助损失则可以理解为模型的正则项,虽然优化该损失函数不能直接获得聚类结果,但是通过对模型参数进行相应的约束,可以帮助模型稳定地训练,提升特征学习的有效性,避免出现退化解。一类是由于网络模型的结构特点自带的损失项,另一类则是基于对网络模型的约束期望而设计
构造输入样本和聚类标签的特征矩阵,矩阵的每一行代表样本属于每个类的概率,每一列代表每个样本属于当前类的概率。即行表示当前样本的标签,列表示分布在数据集上的聚类表示。因此,可以同时在矩阵的行空间和列空间中进行实例级和聚类级的对比学习。
模型分为三个模块样本对构建模块(PCB)、实例级对比模块(ICH)、聚类级对比模块(CCH)
使用数据扩充方式构建数据对,给定一个数据实例 x i x_i xi和两种数据增强方式 T a , T b T_a,T_b Ta,Tb,得到两个相关样本(正样本) x i a , x i b x_i^a,x_i^b xia,xib,使用了五种类型的数据增强方法,包括调整作物、色抖动、灰度、水平翻转和高斯模糊,以一定的概率独立地应用每个增强量。利用一个共享的深度神经网络 f ( ⋅ ) f(\cdot) f(⋅),通过 h i a = f ( x i a ) h^a_i=f(x^a_i) hia=f(xia)和 h i b = f ( x i b ) h^b_i=f(x^b_i) hib=f(xib)从增强的样本中提取特征。本文中采用ResNet34进行数据特征提取。
给定一个大小为 N N N的batch,每个样本 x i x_i xi通过两种数据扩充方式得到 2 N 2N 2N个样本对 x 1 a , x 2 a , x N a , … , x 1 b , x 2 b , x N b x_1^a,x_2^a,x_N^a,\dots,x_1^b,x_2^b,x_N^b x1a,x2a,xNa,…,x1b,x2b,xNb,其中的正样本选择为 x i a , x i b x_i^a,x_i^b xia,xib,其余样本为负样本,这样每个输入样本有一个正样本对,和 2 N − 2 2N-2 2N−2个负样本。为了减轻对比损失引起的信息损失,不直接对特征矩阵进行对比学习。堆叠了一个两层非线性MLP g I ( ⋅ ) g_I(\cdot) gI(⋅),通过 z i a = g I ( h i a ) z_i^a=g_I(h^a_i) zia=gI(hia)将特征矩阵映射到一个子空间。样本对的相似性是用余弦距离来衡量的,即:
为了优化成对相似性,在不丧失一般性的情况下,给定样本 x i a x^a_i xia的损失形式为:
其中, τ I \tau _I τI为实例级对比中超参数(control the softness),由于我们希望识别数据集上的所有正对,因此在每个增强样本上计算实例级的对比损失,即:
按照“标签为表示”的思想,当将数据样本投影到一个维数等于簇数的空间时,其特征的第i个元素可以解释为其属于第i个簇的概率,特征向量相应地表示其软标签。
类簇级的对比抽取批量数据的表示矩阵,表示矩阵的行编码为one-hot形式,列为每个样本属于这一类的概率。与实例级对比类似,非线性MLP g C ( ⋅ ) g_C(\cdot) gC(⋅),通过 z i a = g C ( h i a ) z_i^a=g_C(h^a_i) zia=gC(hia)将特征矩阵映射到一个子空间,其中 y i a y_i^a yia为$ x_ia$的软标签,数据$xa_i 通 过 数 据 增 强 转 换 为 通过数据增强转换为 通过数据增强转换为x_ia,x_ib , 这 样 就 可 以 得 到 一 个 正 例 的 软 标 签 组 ,这样就可以得到一个正例的软标签组 ,这样就可以得到一个正例的软标签组y_ia,y_ib$,和 2 N − 2 2N-2 2N−2个负例的软标签组。使用余弦距离来衡量聚类对之间的相似性,即:
采用以下损失函数来区分集群 y ^ i a \hat y_i^a y^ia与除 y ^ i b \hat y_i^b y^ib之外的所有其他集群,即:
其中, τ C \tau _C τC为实例级对比中超参数(control the softness),通过遍历所有的簇,最终计算出簇级的对比损失:
其中 H ( Y ) H(Y) H(Y)为分配概率的熵,有助于避免大多数实例被分配给同一个类簇。
ICH和CCH的优化是一个单阶段和端到端的过程。同时优化两个头,整体目标函数由实例级和簇级对比损失组成,即:
实践中,发现简单地添加两个损失已经很有效,并不需要取设置两个损失的权重。
评价指标:标准互信息(NMI),对比聚类精确度(ACC),调整兰德指数(ARI)
参考:
对比聚类简介
从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)
深度聚类算法浅谈
对比学习(Contrastive Learning)综述