使用伪半监督学习的非监督聚类
— 2020发表于ICLR(CCF A)
目录
ABSTRACT
在本文中,我们提出了一个框架,利用伪半监督模型来提高无监督聚类性能。为了利用半监督模型,我们首先需要自动生成标签,称为伪标签。我们发现,以前生成伪标签的方法由于精确度低而影响了聚类性能。取而代之的是,我们使用深度网络的集合来构造一个相似图,从中我们提取高精度的伪标签。该方法利用集合寻找高质量的伪标签,训练半监督模型是迭代的,产生了持续的改进。我们的研究表明,对于多个图像和文本数据集,我们的方法比最新的聚类结果有更好的表现。例如,CIFAR10的准确率为54.6%,20news的准确率为43.9%,在绝对值上比最新技术高出8-12%。
INTRODUCTION
半监督方法利用大的未标记数据集和小的标记数据集,最近取得了成功,例如梯形网络在MNIST中仅使用100个标记样本就可以达到99%的准确率。这些方法利用未标记的数据帮助网络学习底层表示,而标记的数据则引导网络分离类。在本文中,我们提出了两个问题:是否有可能创建半监督方法所需的小标记数据集纯粹使用无监督技术?如果是这样的话,半监督方法是否可以利用这种自主生成的伪标记数据集来提供比最先进的无监督方法更高的性能?我们对这两个问题的回答都是肯定的。
![](https://i-blog.csdnimg.cn/blog_migrate/ff38e8d9e4d584be1ec7420ebde7dae9.png)
由于精确度低,表现不佳(第2节)。为了自主地创建一个高精度的伪标记数据集,我们使用深度网络集成和一个定制的图聚类算法(第4节)。我们首先以无监督的方式训练一组 深层网络。每个网络独立地对输入进行聚类。然后比较两个输入数据点。如果所有的网络都同意这两个数据点属于同一个簇,我们就可以合理地确定这些数据点属于同一类。通过这种方式,我们以完全无监督的方式高精度地识别属于同一类的所有输入数据对。
在下一步中,我们使用这些高质量的输入对来生成一个相似图,其中数据点作为节点和数据点之间的边,这些数据点被我们的集合认为是相似的。从这个图中,我们提取紧密的数据点簇,作为伪标签。请注意,在这一步中,我们不会对整个数据集进行聚类,而是只对一小部分数据集进行聚类,这样我们可以获得高精度的结果。从这个图中提取高质量的聚类,同时确保所提取的聚类对应于不同的类是一个挑战。我们将在第4.2.1节中讨论解决此问题的方法。通过这种方式,我们的方法提取属于每个类的无歧义样本,作为半监督学习的伪标签。
对于使用上述标签的半监督学习,可以使用梯形网络。但是,我们发现梯形网络不适合初始的无监督聚类步骤,因为它可以退化为在没有无监督损失的情况下为所有输入输出恒定值。为了实现无监督聚类,我们使用信息最大化来增强阶梯网络,以创建Ladder-IM,并使用点积损失来创建Ladder-Dot。我们在第5节中显示,Ladder-IM和Ladder-Dot本身也提供了对现有技术的改进。对于第一个无监督学习步骤以及后续的伪半监督迭代,我们使用相同的模型。
最后,使用集合来寻找高质量的聚类,并使用它们作为标签来训练新的半监督模型集合的方法是迭代的,得到了持续的改进。我们的方法的巨大收益主要来自于这种迭代方法,在某些情况下,与基本的无监督模型相比,这种方法可以获得高达17%的精度收益(见第5.4节)。我们将我们的伪半监督学习方法命名为Kingdra。Kingdra独立于数据集的类型;我们在第5节中展示了它在图像和文本数据集上的使用示例。这与以前使用CNN的一些方法不同,例如,CNN专门用于图像数据集。
我们使用Kingdra对一些标准图像(MNIST,CIFAR10,STL)和文本(reuters,20news)数据集进行无监督分类。在所有这些数据集上,Kingdra能够获得比当前最先进的深度无监督聚类技术更高的聚类精度。例如,在CIFAR10和20news数据集上,Kingdra能够分别达到54.6%和43.9%的分类准确率,比最先进的结果提供8-12%的绝对收益
PRIOR WORK ON GENERATING PSEUDO-LABELS
文献中提出了几种生成伪标签的技术。在Lee(2013)中,具有最高Softmax值(Argmax)的输出类被认为是伪标签。在Caron等人中。(2018),作者对特征向量进行K-均值聚类,并使用K-均值聚类作为伪标签。最后,在Chen(2018)中,作者将Softmax输出视为置信度,并且只对置信度值高于高阈值的项进行标记。注意,这些用于识别伪标签的技术都没有在我们的上下文中应用,即,用于使用半监督模型的非监督聚类。
在本节中,我们评估由这些先有技术创建的伪标签是否可以被半监督模型利用以提高聚类准确性。我们从基于Ladder网络的半监督模型开始,该模型称为Ladder-IM(有关模型的详细信息,请参见第4.1节),并仅在MNIST和CIFAR10数据集上使用其非监督损失项进行训练。我们在训练后的模型上使用上述三种伪标签方法中的每一种,以向数据集提供初始的伪标签集(例如Caron等人2018年,在模型的特征向量上使用K-means聚类)。
我们称这些伪标签的精度为初始伪标签精度。然后,我们使用这些生成的伪标签和数据集再次训练模型,现在使用一个有监督的损失项(基于伪标签)和早期的无监督损失项。我们再次在新训练的模型上运行伪标签方法,以得到一组更新的伪标签。我们迭代这个训练和伪标记的过程,直到伪标记精度稳定。我们称之为最终聚类精度。三种方法的初始伪标记精度和最终聚类精度结果如表1所示。首先,考虑MNIST。Ladder-IM的无监督聚类准确率为95.4%。Argmax只是根据模型的输出分配伪标签,由于这不会为后续迭代添加任何新信息,因此最终的准确率保持在95.4%。另一方面,K-means方法和阈值方法识别的伪标签导致初始标签准确率较低(75.4%和88.6%)。当使用这种低精度伪标记作为监督进一步训练模型时,最终的聚类准确率分别为60.9%和91.6%。CIFAR10的结果相似。梯形IM聚类准确率为49%,在Argmax下与以前相同。使用K-means方法的伪标记准确率较差,导致最终准确率下降到44.8%。有趣的是,阈值导致60.5%的初始精度略高,但即使这样也不足以提高CIFAR10的最终聚类精度。根据这些结果,我们得出以下两个结论。首先,如果初始的伪标签精度不高,使用伪标签作为监督会导致最终的聚类精度下降。因此,初始伪标记的高精度是提高聚类精度的关键。第二,目前识别伪标签的方法不能提供高精度,因此无法帮助提高总体聚类精度。
RELATED WORK
无监督聚类:近年来提出了多种无监督聚类方法。Ng等人(2002)使用基于谱聚类的方法,而Elhamifar&Vidal(2009)使用稀疏子空间方法进行无监督学习。近年来,一些基于深度神经网络的方法被提出,这些方法可以很好地扩展到大数据集。深层神经网络学习更高层次表示的能力使其成为无监督学习的良好选择。Coates&Ng(2012)和Caron等人(2018)使用convnets和k-means进行聚类。例如,Caron et al.(2018)对从convnet获得的特征进行迭代聚类,并使用这些聚类作为伪标签来训练分类器。作者没有报道聚类性能,我们观察到这种方法很容易退化。Chang et al.(2017)使用基于成对点积的相似度来识别紧密的输入对,这提供了一个监督信号。然而,这些基于convnet的方法只适用于图像数据集。Xie et al.(2016)利用深度神经网络同时学习特征表示和聚类分配,并在图像和文本数据集上工作。Hu et al.(2017)将正则化与互信息丢失相结合用于无监督学习,取得了最新成果。作者在随机扰动训练和虚拟对抗训练两种环境下进行了实验。Hjelm et al.(2018)等利用互信息,最大化空间特征与非空间特征之间的互信息。Ji等人(2019)最大化了图像的预测标签和增强图像的预测标签之间的互信息。这种方法使用卷积网络,需要数据集的领域知识。
自我监督学习:另一种形式的无监督学习使用辅助学习任务,标签可以自我生成,从数据中生成有用的表示。许多方法利用图像块的空间信息生成自监督数据。例如,Pathak et al.(2016)使用周围的面片预测图像面片中的像素,而Doersch et al.(2015)预测图像面片的相对位置。Sermanet et al.(2018)将时间用作从不同视角拍摄的视频之间的自我监控信号。时间信号还用于通过预测未来帧从单个视频学习表示,例如Denton等人(2017)。我们的方法使用整个集合中输入点输出之间的相关性作为监督信号来生成自监督伪标签
半监督学习:半监督方法使用数据点的稀疏标记。Szummer&Jaakkola(2002)基于最近邻传播标签。Weston等人(2012)使用了标签传播的深层版本。Lee(2013)调整标签概率,从只信任真实标签开始,逐渐增加伪标签的权重。Rasmus等人(2015年)采用了去噪自动编码器架构,并显示出令人印象深刻的性能。Tarvainen&V alpola(2017)使用了之前迭代中的平均模型作为教师。除此之外,一些半监督学习方法,如Xie et al.(2019)和Berthelot et al.(2019)使用数据扩充,并假设数据集的一些领域知识,以及一些特定于图像数据集的数据扩充。Miyato et al.(2018)和Shinoda et al.(2017)使用虚拟对抗训练结合分类损失进行半监督分类。然而,我们发现,如果我们在无监督的情况下联合训练它们,这些方法就不能很好地工作。梯形网络不需要任何依赖于域的扩充,适用于图像和文本数据集,并且可以很容易地在有监督和无监督的情况下进行联合训练。因此,在我们的实验中,我们选择使用梯形网络,尽管我们的方法足够通用,可以使用任何半监督的方法,该方法可以适应无监督损失项的训练。
无监督集成学习:无监督集成学习主要局限于生成一组聚类并将它们组合成最终的聚类。黄等人。(2016)将演员群聚类转化为二元线性规划问题。Wang等人。(2009);Fred&Jain(2005)使用成对共现方法来构造共生矩阵,并用它来度量数据点之间的相似性。参见Vega-Pons&Ruiz-Shulcloper(2011)关于集成聚类算法的综述。请注意,据我们所知,没有一种集成聚类算法使用像我们这样的半监督步骤,或者使用深度网络。
PROPOSED FRAMEWORK
图1概述了Kingdra方法。给定一个未标记的数据集X = {x1,。 。 。 ,xn},我们从模型M = {M1,…,Mm}的集合的无监督训练开始。对于单个模型,可以使用任何非监督模型。但是,我们提出了一种新颖的Ladder- *模型,该模型建立在Rasmus等人的梯形网络上,并对其进行修改以支持聚类。接下来,我们使用一对数据点上的集成模型之间的一致性,度量数据点之间的相似性。该成对数据用于构建相似度图,从中我们提取出k个紧密的数据点簇,这些簇用作伪标记。请注意,在此步骤中,我们不会对整个数据集进行聚类,而只会聚类一个很小的子集,在该子集上我们可以获得较高的精度。如第2节所述,这对于提高我们的半监督训练的准确性非常重要。这些伪标签随后将用作Ladder- *模型新集合的半监督训练的训练数据。最后,我们对上述步骤进行了多次迭代,以进行持续改进。
BASE MODEL
我们方法的第一步是对模型集合进行无监督训练。我们的框架允许在此步骤中使用任何不受监督的方法,并且我们已经对现有方法(例如IMSA T)进行了实验。此基本模型的准确性直接影响最终模型的准确性,因此使用准确的基本模型显然会有所帮助。有鉴于此,我们还开发了一种新颖的无监督模型Ladder- *,该模型在大多数数据集中均优于其他无监督模型。
梯形网络在半监督环境中显示出巨大的成功。但是,据我们所知,梯形体系结构尚未用于无监督群集。可能的一个原因是,在没有监督损失项的情况下,梯形网络可以退化为所有输入输出恒定值。为了避免这种退化,我们在常规阶梯损失项中添加了无监督的损失,以便它指导网络为相似的输入提供相似的输出,但总体上使输出的多样性最大化,从而使相似的输入指向相似的输出。
我们通过合并以下两种损失之一来实现此目标-IM损失或点积损失。我们分别将这两种变体称为Ladder-IM和Ladder-Dot。
IM损失:IM损失或信息最大化损失只是分类器的输入X和输出Y之间的相互信息:
其中H(。)和H(。|。)分别是熵和条件熵。最大化边际熵项H(Y),鼓励网络为输入分配不同的类别,从而鼓励在输出类别上进行均匀分配。另一方面,最小化条件熵会鼓励给定输入的明确类分配。
点积损失: 点积损失定义为
这会迫使不同输入的网络输出尽可能正交。这具有与IM丢失相似的效果,鼓励网络为输入分配不同的类别。在Ladder-IM和Ladder-Dot中,我们发现Ladder-IM在大多数情况下的性能要优于Ladder-Dot。但是,我们确实发现,当数据集的每个类别的样本数量存在较大的不平衡时,Ladder-Dot对Kingdra迭代的性能会更好。原因是,点积损失与每个类别的样本数无关,而IM损失中的边际熵项将驱使网络朝样本数较少的类别过度拟合。
UNSUPERVISED ENSEMBLING
Kingdra利用Ladder- *模型的集成来进一步提高无监督学习的性能。请注意,在监督学习中,集成是微不足道的,因为我们可以简单地平均各个模型的输出或对其进行投票。另一方面,在无监督学习中,进行投票并非易事,因为在没有训练标签的情况下,没有针对不同模型的输出进行稳定的类分配,因此我们没有任何模型的类ID映射到另一个。为了解决这个问题,我们提出了一种简单的方法,在该方法中,我们查看数据点对,而不是单个样本。如果集合中的大多数(或全部)模型将两个数据点放在同一群集中,则两个数据点将以高置信度位于同一群集中。例如,给定一个输入对x,x0,如果对于足够多的模型,Mi(x)= Mi(x0),我们可以很有把握地说它们属于同一类。使用这种成对方法,我们提出了一种基于图的方法来查找小型但高精度的聚类。
GRAPH BASED MINI-CLUSTERING
我们用n个节点构造一个graphG = {X,Epos,Eneg},其中每个输入数据点被表示为一个节点。这里,Eposand Enegare是图中的两种类型的边:
**• 强正边:**当大量模型在其预测类别上达成一致时,两个数据点之间会添加强优势。 (x,x0)∈Epos⇐⇒n_agree(x,x0)≥tpos其中tposis是一个选定的阈值,n_agree(x,x0)= | {m:m∈M,m(x)= m(x0)} |。
**• 强负边:**当大量模型在其预测类上存在分歧时,在两个数据点之间会添加一个很强的负边缘。 (x,x0)∈Eneg⇐⇒n_disagree(x,x0)≥tneg,其中tnegis是选定的阈值,n_disagree(x,x0)= | {m:m∈M,m(x)6 = m(x0) } |。
两个数据点之间的强正边缘意味着大多数模型认为它们属于同一类,而两个数据点之间的强负边缘意味着大多数模型认为它们应该属于不同的类。
在建立图之后,每个具有强正边的团将成为一个簇,其中在一个团中,数据点属于同一类,具有很高的置信度。由于我们只在图中添加了高置信度边,因此团的数量可能比k大得多。因此,我们需要选择k个团,在这里我们希望最大化每个团的大小,但也要求团是多样的(为了不选择数据点属于同一类的两个团)。因此,在一个集团内,节点应该通过强正边连接,而在集团间,节点应该通过强负边连接。由于寻找团在多项式时间内是不可解的,我们使用了一种简单有效的贪婪近似算法,如算法1所示。我们贪婪地寻找具有最多强正边的节点(第4行),而不是寻找派系。直觉是,该节点的大多数邻居也将相互连接。在Cifar-10的情况下,我们发现当阈值为90%时,81%的节点彼此完全连接。如果阈值为100%,则集群中的所有节点都通过传递性相互连接。我们将具有最多强正边的节点,以及通过强正边连接到它的其他节点添加到一个簇中(第5行)。然后,我们移除所有对所选节点没有强负边的节点(第6-7行)。这里的直觉是,这些节点与所选集群的差异性不够(因为一些模型认为它们与当前所选节点属于同一类),因此不应该是下一组所选集群的一部分。通过重复这个过程k次,我们得到了k个不同的聚类,大致满足了我们的要求。
ITERATIVE ENSEMBLE TRAINING
一旦确定了高精度聚类,我们将这些聚类点(集合S中的点)视为伪标记,并使用半监督方法解决我们的无监督聚类问题。尽管可以使用任何半监督方法,但如第4.1节所述,我们使用建议的Ladder- *方法,在实验中我们发现它优于梯形网络。我们不是训练单个半监督模型,而是训练一组模型,然后再次使用它们来找到高质量的聚类。可以迭代此方法,从而获得持续的改进。我们称这种方法为Kingdra。算法2描述了完整的Kingdra算法。首先,仅使用无监督的Ladder- *损失(第1-4行)来训练各个模型。然后,对于每个迭代,我们获得高精度聚类(第6行),从它们中获取伪标签(第8行),然后训练具有无监督损失和有监督损失的模型(第9-10行)。我们使用迷你簇计算伪标签,如下所示。对于模型Mj∈M和聚类S,我们需要找到聚类到模型输出类的适当映射。特别是,对于集群S0∈S,我们为S0中的所有数据点分配以下标签:
也就是说,我们将集群映射到集群中大多数数据点映射到的输出类。这些伪标签然后用于计算梯形图-*的监督损失。这种迭代方法导致聚类质量的不断提高。我们观察到,算法1返回的簇的大小在每次迭代后都会增加,直到它们几乎覆盖了整个输入集。模型的聚类性能通常也会随着每次迭代而提高,直到达到饱和,如第5节所示。我们还注意到,随着后续的迭代,集群分配变得更加稳定,这也会导致多个运行之间的方差减小。也就是说,如果我们运行Kingdra进行更多的迭代,多个运行之间的差异就会减小。