• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

深度聚类deep clustering的自监督self-supervised表示学习representation learning

武飞扬头像
小薇薇小勇士
帮助2

序言

两年之前开始学习深度聚类,首先是被其面对高维复杂海量数据时聚类效果的大幅度提升所吸引,两年之前那个“意气风发”的我读了几篇论文,以为自己已了解其主体,便动手写了那么几篇论文,结果是被现实摁在地上狠狠的摩擦。我开始重新审视这个方向。深度聚类中,深度模型的多样化,经典的有自动编码器AE,变分自动编码器 VAE,生成对抗网络GAN,高斯混合模型GMM以及近几年流形起来的图神经网络GCN等,聚类算法的多样性有经典的kmeans,凝聚聚类,谱聚类等。我把自己的目标定位在神经网络部分,而每类神经网络模型都是被损失函数特定化的,我用现有的网络模型,在目标函数中加入适当的约束来学习的特征,往往会被审稿人指正缺乏创新性,让我也是陷入了迷茫,深度聚类过于宽泛,它不是一个算法,也不是一个模型,可以有个点进行改进。老师建议我在宽泛的深度聚类中寻找一个点深入研究,不要面面俱到而不够深入,我深感赞同;师兄师姐的建议是用深度学习去解决聚类面对的问题,切入点是聚类,改变我以往的定位,因为对于我来说对神经网络模型的创新确实难度太大。综合个人多次失败经历以及老师和师兄师姐的指导建议,我再次重新审视我的方向(一边哭一边奔跑没错了)。总观深度聚类,一个点是特征学习,一个点是聚类;而神经网络的特征学习通常是有监督的训练,而聚类问题是无标签数据,我看过的论文一半都是KL散度使得特征逼近高置信度点的分布,最后加入聚类损失函数进行微调;并且我做过的几次实验都有因为没有标签(比如深度度量学习)而卡住的现象,所以又出现了半监督深度聚类,为了将聚类与深度学习更好的结合,我决定将适用于聚类的自监督表征学习作为研究切入点,一句简单的话,涵盖了自监督与表示学习,二者之间密不可分,而目的就是服务于聚类。而在阅读中发现一个逻辑问题,聚类是实现自监督的一种手段,可以说聚类包含于自监督,而我的目的是将自监督服务于聚类,所以再次迷茫了一天(哈哈哈哈),我将2022年顶会题目中自监督与聚类的论文作了清单整理,而有了下面的思路。从聚类切入,它需要的特征是相似样本尽可能在一起,不相似的样本远离,对于相似性的判断,学者们会有很多角度;为了提高精度,聚类也需要判别性的特征,使得簇之间尽可能的远离,区分开相似样本,比如数字数据集中4和9经常被聚类错误,对于判别性的引入,学者也有很多角度。从这些角度出发,定义目标函数引导神经网络训练就会获得Clustering-friendly representations;训练需要的标签,学者们就会通过多种角度定义伪标签。所以本篇博客想要分享的就是近几年顶会中自监督表示学习与聚类相结合的论文,为正在改进的一个论文作准备(保密,哈哈哈)。

Towards K-means friendly space: simultaneous deep learning and clustering(ICML 2017)

DCN是2017年ICML论文,可谓是神经网络学习k-means firendly space的鼻祖。研一读这篇文章时,只觉得目标函数由重构损失加kmeans损失,如今再次回顾,不得不惊叹作者的创新思路,这是一个从无到有的过程,包括函数的设计思路以及优化过程。我个人理解为是深度聚类中学习clusteirng-friendly space的开始,后续很多对目标函数的设计皆来源于此。本文提出的目的首先是将降维和聚类同时进行,使得数据降维后的空间适合聚类,这类工作在1994、2013年已有人进行,但他们是用线性方法。线性方法的局限性是假设observable data通过线性变换从clustering-friendly空间获得,而在很多情况下,线性方法生成过程复杂且不符合实际。作者思考通过非线性方法将降维与聚类联合优化,非线性方法采用神经网络的学习。因为神经网络DNN能够使用合理数量的参数来逼近任何continuous maaping。其中一个重要的问题是如何防止平凡解?作者采用重构损失进行约束。
学新通
在对目标函数进行优化的过程中,作者采用交替更新和随机梯度下降。需要更新的参数有编码和重构函数的(w,z),聚类中心M以及分配函数si。固定M和si,神经网络的(w,z)采用SGD优化,固定M和(w,z),Si的更新如下:
学新通
m的更新公式为:
学新通

SCAN: Learning to Classify Images without Labels (ECCV2020)

读到这篇论文的题目叫图像的无标签分类,有一个好奇点就是无标签的分类与聚类是等同的吗?为什么作者不直接说聚类分类结果对每个簇知道是什么,而聚类只是根据相似性,将相似样本聚在一起,不相似样本远离,不知道标签怎么能得到分类结果呢?本文跟聚类到底有什么不同?
作者在摘要的第一句发问:Can we automatically group images into semantically meaningful
clusters when ground-truth annotations are absent? 解决了上述的很多疑问。因为本文得到的聚类结果含有语义意义,看到实例的聚类结果就知道每一簇是什么可以等同于分类的结果。本文的一个观点与DCN相反,是将表示学习和聚类两个过程分开。作者认为端到端的方法,会让聚类学习依赖低层特征。本文提出两阶段的方法,第一阶段时通过代理任务 pretext task 学习特征表示,基于特征的相似度来挖掘每张图像的最近邻。以前的方法中,在完成表示学习之后,需要使用kmeans进行聚类,这会导致cluster degeneracy。第二阶段我们将具有语义含义的邻居样本作为先验到学习过程中。通过损失函数将每个图像和他的邻居划分到同一个簇中。这个损失函数是在softmax之后最大化图像与邻居的内积,使得网络能够产生一致性(最大化内积)与判别性(one-hot)的预测。与端到端的方法不同,本文学习聚类更依赖于有意义的特征,而不是网络结构。并且作者提倡不变性是利用邻居样本而不是以往的augmentations,所以不需要对输入进行一些特定的变换。

本文第一阶段与以前方法最大的不同在于,以前方法在自监督学习到特征之后进行聚类并通过聚类损失函数微调网络,而本文自监督表示学习目的是挖掘图像的近邻并使其作为先验加入到聚类过程中。并且作者指出设计的代理任务需要满足不变性,经过实验发现,实例判别性(instance discrimination)满足这个要求。
第二阶段的聚类,加入第一阶段学习到的邻居样本,损失函数如下:
学新通
而为了获得很好的精度,作者通过self-labeling进行微调。因为每个样本都结合了多个邻居,必不可免的会导致将不属于同一个簇的样本划分到同一个簇。self-labeling的方法是基于高置信点,设置一个阈值,输出概率大于这个阈值就将其视为高置信点,对该样本的预测作为伪标签,为了防止过拟合问题,作者还对其增强样本进行交叉熵损失。所以将上述阶段总结算法的流程为:
学新通

Deep Comprehensive Correlation Mining for Image Clustering(ICCV 2019)

正如题目所说,该论文是针对图像聚类挖掘一些丰富的关系。作者将这些关系总结为图(a)的四个关系,样本之间的关系,特征的局部鲁棒性,特征的联系,以及内在关系。接下来就是理解作者是如何实现的。学新通
***Among different samples(red line):***通过加入一些合适的约束,使网络预测的特征接近one-hot,然后计算余弦距离构造相似图,在相似图和预测特征的基础上,设置一个阈值来获得高置信的伪图和伪标签,用此来监督网络训练。总结来说,通过一个pseudo-graph 和pseudo-label来实现此目的。
***Local robustness(yellow line):***一个理想的图像表示对于几何变换后的输入应该具有不变性,在此假设下,原输入图像的特征和几何变换后图像输入的特征距离应该尽量相近。
***Feature correspondence(blue line):***输入的深层特征应更具有判别力,所以最大化深层特征和浅层特征的互信息。作者对此提出了一个三元组互信息。
***inter-correlations(green line):***学习更具有判别力的特征。将上述三项组合并加入上述的图信息。

Unsupervised feature learning via nonparametric instance discrimination(CVPR 2018)

本篇论文其实与聚类没太有关系,主要是为下文论文作理论补充。
首先解释什么是non-parametric instance discrimination:是self-supervised learning中contracstive learning的范式,如moco。特点是将每个输入作为一个,即每个instance 都有一个标签,所以叫做discrimination。
学新通
作者通过有监督学习结果的观察发现,判别式学习可以自动发现语义类别之间的相似性,而不需要人为标注,比如在softmax 输出时美洲虎与美洲豹的相似性大于美洲虎与书柜的相似性。所以作者想到,如果把每一个实例当做一个类别,就可以将有监督的分类学习变为有监督的实例学习,而通过判别式学习就能学习到有意义的表征,获得实例之间的相似性。从整体流程图中可以发现,本文用到的无non-parametric softmax。在有参数的softamx中损失函数为
学新通
w为类别权重,从而阻碍了实例之间的之间的比较,所以本文修改如下:

学新通
要计算此公式就要计算所有图像的特征向量,所以作者采用了一个 memory bank 存储向量、在神经网络参数更新的过程中,更新memory bank 中的特征向量。
所以接下就会面临一个问题,类别数就会等于实例数,将softmax的输出扩展到与实例数一样是不可行的,所以作者采用噪声对比估计NCE(nose-contrastive estimation)来逼近softmax的分布。NCE方法是在2000年出现,后来广泛应用于NLP领域中,NCE是用来学习参数的,基本思想是通过其基本思想是将多类分类问题转化为一组二元分类问题,其中二元分类任务是区分数据样本和噪声样本,本文中的噪声分布为均匀分布。与传统分类不同的是,本文中每个类只有一个样本,所以在每个epoch训练中每个类只能访问一次,这就造成了训练过程中的震荡。为了使得训练过程平滑,本文加入了proximal optimization method和正则化项进行约束。
对神经网络训练结束之后,对于测试集通过神经网络获得它们的特征向量,并使用余弦距离衡量它们与memory bank中特征的相似度,再采用KNN选取前k个近邻,最后通过权重投票进行预测。

Clustering-friendly Representation Learning via Instance Discrimination and Feature Decorrelation(ICLR 2021)

本文是通过instance discrimination 和feature decorrelation 两种技术学习一个有利于聚类的表征。数据的表示/表征/特征对于聚类结果有至关重要的作用,作者利用上文提到的instance discrimination方法学习到样本之间的相似度,feature decorrelation剔除特征的冗余性。算法整体流程图如下:
学新通
第一个点instance discrimination 与上文一样,只是本文加入了对控制分布参数的讨论。
第二个点feature Decorrelation作者提出了软硬约束两种方法,主要思想是使得特征正交。特征去关联约束的目的是构造独立的特征,通常来说,特征独立更能确保冗余信息的减少,并且正交性是常用的技术。“硬正交”的公式为:
学新通
该公式足够严格来迫使特征正交,如果d比underlying structure 大,那么所有的特征被迫都正交,得到的特征可能不太适合。所以本文提出“软正交”:
学新通
学新通
最后通过谱聚类获得聚类结果。
作者在实验部分对ID(instance discrimination)LIDFD(软正交)LIDFO(硬正交)进行对比,在此仅列出CIFAR-10数据集的可视化:
学新通
从图中可以看出,IDFO一个类是一片,而IDFD同类样本之间更加紧凑,不同类样本之间边界更加明显。

Learning latent representations in neural network for clustering through pseudo supervision and graph-based activity regularization(ICLR 2018)

看到这个题目时,被"for clustering” “pseudo supervision”以及“graph-based activity regularization” 所吸引。就想知道如何为聚类任务学习latent representations 以及用什么样的伪监督对神经网络进行训练,基于图的正则化(graph-based activity regularization,GAR)又是什么含义?
这篇论文读下来本质是对softmax节点进行了改造,加入一定约束变为聚类,将分类任务转化为聚类任务。所以首先对softmax以及其如何应用在分类任务上有一点的了解。
softmax应用于多分类任务中,将多个神经元的输入映射到(0,1)之间,可以看成概率问题。因为称为soft,与其对应的是hard,hard取值非0即1。而max是取其中概率最大的。假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是
学新通
形象表示为:
学新通学新通

softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!
摘录自https://blog.csdn.net/lj6052317/article/details/88651583

这是一个softmax节点的实现过程,本文使用多个duplicated softmax 节点,作者称之为Auto-clustering output layer(ACOL).通过图结构可以发现,hidden layer是用来学习latent representations,ACOL是for clustering。
接下来就是设计,如何训练网络,如何输出聚类结果。

学新通
np为父类的个数,ks为重复节点的个数。ks重复节点的输出中属于同一个parent的会在接下来的Linear 池化层合并到一起。每个父节点的重复softmax节点在训练过程中通过GAR进行特殊化,通过下面的图进行形象化的解释:

学新通
用一个例子说明上述过程。对于手写数字识别,伪标签为数字大于5或小于5,数字大于5的父类标签下有6 7 8 9四个子类,上述图中class 1 代表大于5的类, cluster k代表数字 6 7 8 9中的一个。为了使每个节点被每个数字特殊化,即一个节点只能让一个数字激活,通过GAR进行约束。下面对GAR进行分析理解。
学新通
g(x)代表输入softmax中大于0的值,通过图可知Z:Activity,所以本文称之为graph-based activity regularization。
学新通
为了使每个节点只被一个函数激活,所以非对角线上的值应该尽可能的小,加入normalized 项之后变为:

学新通
在训练过程中,如果只有一个节点被激活,损失函数也会很小,即聚类结果只有一个簇时,损失函数也会最小化,为了防止所有数据都被分配到同一个簇。所以定义个向量v,为N中对角线的元素,学新通学新通
,最大化V中的非对角线元素可以达到这个目的,即使每两个节点都有平等激活的机会。

学新通
所以最终损失函数定义入下:
学新通

GATCluster: Self-Supervised Gaussian-Attention Network for Image Clustering

后续继续更新,欢迎交流学习~

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiababf
系列文章
更多 icon
同类精品
更多 icon
继续加载