读《Selective Pseudo-Label Clustering》

69 篇文章 0 订阅
2 篇文章 0 订阅

摘要

DNN可以提取到更适合聚类的特征表示,但是聚类又是无监督的,没有训练标签,怎么训练DNN特征提取器就很有问题
现有的一些方法将DNN的训练与聚类目标结合起来,使聚类过程中的信息可以用来更新DNN,以产生更好的聚类特征。这种方法的一个问题是,由聚类算法产生的这些“伪标签”是有噪声的,它们所包含的任何错误都会损害DNN的训练。
本文提出了选择性的伪标签聚类,它只使用最自信的伪标签来训练DNN。

1.引言

聚类不需要先验知识,不需要监督学习的显式标签,也不需要在自监督学习中利用的期望对称性和不变性的知识。

数据维度越高,意味着许多经典算法表现会很差[2],如k-means[29]或期望最大化[10]。欧氏距离是欧式空间中相似性概念的基础,但在高维中变得较弱[51]。(所以说像tsne,pca这些降维的操作不仅是为了二维画图,还有这方面的考虑吗?之前还以为这样盲目降维,就取最后奇异值最大的这两维做相似度会损失巨量信息来着?)

于是为了解决这个问题本文考虑所谓的深度聚类。

深度聚类就是通过编码器将高维数据编码为低维特征空间,然后在该特征空间中执行聚类。一个主要的挑战是对编码器的训练。
dnn作为图像特征提取器(包括[24,46])的大部分成功都是有监督,但既然都有了标签,那还做个屁的聚类。
训练编码器有两种常见的方法。首先是与解码器做重构损失,完整的自编码器[47]。二是设计一个聚类损失,只做上游编码和聚类共同优化。

选择性伪标签聚类(SPC)结合了重构损失和聚类损失,使用一个集成来为不同的数据点选择不同的损失函数。
集成学习是一个函数近似,训练多个近似模型,然后将结果组合起来。在整个集合中需要有一些差异,如果所有单独的近似器都是相同的,那么合并它们就没有任何好处(好像和meta learning元学习或者多任务学习有点像?分不太清)
对于由dnn组成的集合,方差是通过训练动态的权重和随机初始化来保证的。在最简单的情况下,集成的输出是每个单独输出的平均值(回归的平均值和分类模式的平均值)[36]。
当将集成应用于聚类问题时(称为共识聚类[3]),集群标签集必须跨集成对齐。这可以使用匈牙利算法有效地执行。如果SPC认为一个集群数据点在集合的每个成员中收到了相同的集群标签(对齐后),那么它就会有信心。直觉是,由于随机初始化和随机训练,有一些非零程度的独立性不同的集群标签,所以所有集群标签是不正确的特定点的概率小于单个集群标签的概率是不正确的。(?)

2 相关

最早的深度图像聚类模型之一是[19],用重构损失训练自编码器,然后在嵌入空间中聚类。
在[44]中,编码器的训练与聚类相集成。第二个损失函数定义为每个编码到其指定质心的距离。然后,它在更新编码器和通过k-均值更新编码器的聚类之间交替进行。
在[43]中,基于软聚类分配,提出了一种不同的可微损失。该方法对AE的重构损失进行预训练,然后,像[44]一样,在分配集群和训练编码器的集群损失之间进行交替。在后来的工作中做了两个轻微的修改:在[16]的预训练后使用rloss和正则化,以在[14]中鼓励相同大小的集群。
这种交替优化在[13]中被聚类损失所取代,允许聚类质心直接通过梯度下降进行优化。伪标签训练由[6]引入。聚类分配被解释为伪标签,然后用于训练编码DNN之上的多层感知器,训练在聚类编码之间交替进行,并将这些聚类作为标签来训练编码器。

3 方法

伪标签训练是一种有效的深度聚类方法,但仅对部分准确的伪标签进行训练才不会损害编码器提取相关特征的能力。本文的选择性伪标签聚类(SPC)通过只选择最自信的伪标签来进行训练
在这里插入图片描述

  1. 并行训练K个自编码器
  2. 在每个嵌入空间中,得到K组伪标签(编码器的个数决定分簇数?)
  3. 选择伪标签训练,这些点是那些在使用匈牙利算法对齐标签后,在所有K个伪标签中收到相同标签的点。(?)
  4. 对选定的伪标签进行训练。回到(2)。

——————————————————
代码
先安装hdbscan fastai umap kornia这几个包
!!!!!kornia这个包把我原本的torch卸了重装了最新版本的cpu版?!这下和cuda不适配了吧,给爷整麻了😁

还是多进程的问题,得把ARGS.single改成True

然后要调用的MNISTfull/checkpoints/pretrained0.pt也没有,说是数据集是自动代码下载的,那这个预训练的玩意呢?麻了,换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值