知识就是力量

当前位置:首页 > 技巧


聚类集成方法 【论文阅读】Improved Deep Embedded Clustering

2022-11-04

简介:因C语言接触编程,后转入计算机专业。我获得了国家奖学金。我有幸在比赛中获得了一些国家级和省级奖项。

学习心得:扎实的基础+多做笔记+多打字+多思考+学好英语!

唯一的努力

【每日阅读】每天阅读一篇论文,了解专业前沿知识,培养阅读习惯(阅读记录仅供参考)

论文简介

原文链接:

会议:IJCAI国际人工智能联合会议组织(CCF A类)

年份:2027(发布日期)

抽象的

深度聚类使用神经网络来学习有利于聚类任务的深度特征表示。一些开创性的工作建议通过明确定义面向聚类的损失来同时学习嵌入式特征和执行聚类。

尽管已经在各种应用中证明了有希望的性能,但我们观察到这些工作忽略了一个重要因素,即定义的聚类损失可能会破坏特征空间,导致非代表性和无意义的特征反过来损害聚类性能。

为了解决这个问题,在本文中,我们提出了一种改进的深度嵌入式聚类(IDEC)算法来处理数据结构的保存。具体来说聚类集成方法,我们使用聚类损失作为指导来操纵特征空间以分散数据点。

为了约束操作并保留数据生成分布的局部结构,应用了不完全自动编码器。通过整合自编码器的聚类损失和重建损失,IDEC 可以联合优化聚类标签分配,学习适合聚类的特征并保留局部结构。由此产生的优化问题可以通过小批量随机梯度下降和反向传播有效地解决。图像和文本数据集的实验经验验证了局部结构保存的重要性和我们算法的有效性。

1 简介

无监督聚类是数据科学和机器学习中的一个重要研究课题。传统的聚类算法,如 k-means [MacQueen, 1967]、高斯混合模型 [Bishop, 2006] 和谱聚类 [Von Luxburg, 2007] 根据内在特征或相似性对手工特征的数据进行分组。然而,当输入特征空间(数据空间)的维度非常高时,由于不可靠的相似性度量,聚类变得无效。将数据从高维特征空间转换到执行聚类的低维空间是一种直观的解决方案,并且已被广泛研究。这可以通过应用诸如主成分分析(PCA)之类的降维技术来完成,但是这些浅层模型的表示能力是有限的。由于深度学习的发展,这种特征转换可以通过使用深度神经网络(DNN)来实现。我们将这种聚类称为深度聚类。

最近有人提出了深度聚类,但许多问题仍未解决。例如,什么类型的神经网络适合?如何提供指导聚类集成方法,即定义一个面向聚类的损失函数?转换过程中应保留哪些数据属性?深度聚类的原始工作侧重于通过将先验知识添加到主观性来学习保留数据某些属性的特征 [Tian et al., 2014; 彭等人,2016]。它们是两阶段算法:特征转换和聚类。后来出现了联合完成特征变换和聚类的算法[Yang et al., 2016; 谢等人,2016]。Deep Embedded Clustering (DEC) [Xie et al., 2016] 算法以自学习的方式定义了一个有效的目标。定义的聚类损失用于同时更新变换网络和聚类中心的参数。集群分配隐式集成到软标签中。然而,聚类损失不能保证局部结构的保留。因此,特征转换可能会被误导,导致嵌入空间的损坏。

为了解决这个问题,在本文中,我们假设面向集群的损失引导和局部结构保存机制对于深度聚类都是必不可少的。受 [Peng et al., 2016] 的启发,我们使用不完全自动编码器来学习嵌入特征并保留数据生成分布的局部结构。我们建议将自动编码器合并到 DEC 框架中。通过这种方式,所提出的框架可以联合执行聚类并学习具有局部结构保留的代表性特征。我们将我们的算法称为改进的深度嵌入式聚类 (IDEC)。IDEC 的优化可以直接进行小批量随机梯度下降和反向传播。最后,一些实验经过精心设计和执行。结果验证了我们的假设和我们的 IDEC 的有效性。

这项工作的贡献总结如下:

2 相关工作 2.1 深度聚类

现有的深度聚类算法大致可以分为两类:

前一类算法直接利用现有的无监督深度学习框架和技术。例如,[Tian et al., 2014] 使用自动编码器学习原始图的低维特征,然后运行 ​​k-means 算法得到聚类结果。[Chen, 2015] 逐层训练深度信念网络 (DBN),然后将非参数最大边距聚类应用于学习的中间表示。[Peng et al., 2016] 在学习非线性潜在空间中的表示之前使用具有稀疏性的自动编码器,该潜在空间同时容纳局部和全局子空间结构,然后使用传统的聚类算法来获得标签分配。

另一类算法试图明确定义聚类损失,模拟监督深度学习中的分类错误。[Yang et al., 2016] 提出了一个深度表示和图像聚类的循环框架,它将两个过程集成到一个具有均匀加权三元组损失的单一模型中,并对其进行端到端优化。DEC [Xie et al., 2016] 使用深度神经网络学习从观察空间到低维潜在空间的映射,可以获得特征表示和聚类分配。

所提出的算法本质上是 DEC 的修改版本,它结合了不完整的自动编码器来保留局部结构。它在简单性方面优于 [Yang et al., 2016],没有可重复性,并且在聚类准确性和特征表示方面优于 DEC。由于 IDEC 主要依赖自编码器和 DEC,我们将在接下来的章节中更详细地介绍它们。

2.2 自动编码器

自编码器是一种经过训练以尝试将其输入复制到其输出的神经网络。在内部,它有一个隐藏层 z 来描述用于表示输入的代码。该网络由两部分组成:编码器函数 z = fW (x) 和解码器 x′ = gW ′ (z),产生重构。有两种广泛使用的自动编码器类型。

不完整的自动编码器。它控制潜在代码 z 的维度低于输入数据 x。学习这种不完整的表示会迫使自动编码器捕获数据最显着的特征。

去噪自动编码器。去噪自编码器不是重建 x givenx,而是最小化以下目标:

其中 ̃x 是被某种形式的噪声破坏的 x 的副本。因此,去噪自编码器必须从这种损坏中恢复 x,而不是简单地复制它们的输入。这样,去噪自编码器可以强制编码器 fW 和解码器 gW' 隐式捕获数据生成分布的结构。

在我们的算法中,使用去噪自编码器进行预训练,并在初始化后将欠完备自编码器添加到 DEC 框架中。

2.3 深度嵌入聚类

深度嵌入式聚类 (DEC) [Xie et al., 2016] 从预训练的自动编码器开始,然后移除解码器。其余编码器通过优化以下目标进行微调:

其中 qij 是嵌入点 zi 和聚类中心 μj 之间的相似度,由学生 t 分布测量 [Maaten and Hinton, 2008]:

在这里插入图片描述

并且 (2) 中的 pij 是定义为的目标分布

正如我们所见,目标分布 P 由 Q 定义,因此最小化 L 是一种自我训练的形式 [Nigam and Ghani, 2000]。

设 fW 为编码器映射,即 zi = fW (xi) 其中 xi 是数据集 X 的输入示例。预训练后,可以使用 fW 提取所有嵌入点 {zi}。然后在 {zi} 上使用 k-means 得到初始聚类中心 {μj}。之后,可以根据(2)、(3)和(4)计算L。样本 xi 的预测标签是 arg maxj qij 。

在反向传播期间,可以很容易地计算出∂L/∂zi 和∂L/∂μj。然后将∂L/∂zi传递给更新fW,并使用∂L/∂μj更新聚类中心μj:

DEC的最大贡献是聚类损失(或目标分布P,具体而言)。它的工作原理是使用高度机密的样本作为监督,然后使每个集群中的样本分布更密集。但是,不能保证靠近边缘的样本会被拉向正确的集群。我们通过显式保留数据的局部结构来处理这个问题。在这种情况下,高度机密样本的监督信息可以帮助边缘样本进入正确的簇。

3 改进的深度嵌入聚类

考虑一个具有 n 个样本的数据集 X,每个 xi ∈ Rd,其中 d 是维度。聚类个数 K 是先验知识,第 j 个聚类中心用 μj ∈ Rd 表示。设 si ∈ {1, 2, . . . , K} 表示分配给样本 xi 的聚类指数。定义非线性映射 fW : xi → zi 和 gW ' : zi → x'i 其中 zi 是 xi 在低维特征空间中的嵌入点, x'i 是 xi 的重建样本。

我们的目标是找到一个好的 fW 使得嵌入点 {zi}ni=1 更适合聚类任务。为此,两个组件是必不可少的:自动编码器和聚类损失。自动编码器用于以无监督的方式学习表示,学习的特征可以保留数据中固有的局部结构。从 [Xie et al., 2016] 借用的聚类损失负责操纵嵌入空间以分散嵌入点。整个网络结构如图1所示。目标定义为

其中 Lr 和 Lc 分别是重建损失和聚类损失,γ > 0 是控制嵌入空间失真程度的系数。当 γ = 1 且 Lr ≡ 0 时,(6) 简化为 DEC 的目标 [Xie et al., 2016]。

3.1 聚类损失和初始化

[Xie et al., 2016] 提出了聚类损失。定义为分布P和Q之间的KL散度,其中Q是Student's tdistribution测量的软标签分布,P是从Q导出的目标分布。也就是说,聚类损失定义为

其中 KL 是 Kullback Leibler 散度,衡量两个概率分布之间的不对称差异,P 和 Q 由 (4) 和 (3) 定义。详细信息可以在第 2.3 节和 [Xie et al., 2016] 中找到。

正如 [Xie et al., 2016] 中所建议的,我们还在执行聚类之前预训练了一个堆叠去噪自编码器。经过预训练,嵌入点是输入样本的有效特征表示。然后可以通过在 {zi = fW (xi)}ni=1 上使用 k-means 来初始化聚类中心 {μj }K j=1

3.2 局部结构保存

在第 3.1 节中获得的嵌入点不一定适用于聚类任务。为此,DEC [Xie et al., 2016] 放弃了解码器并使用聚类损失 Lc 对编码器进行微调。然而,我们认为这种微调扭曲了嵌入空间并削弱了嵌入特征的代表性,从而损害了聚类性能。因此,我们建议保持解码器不变,并将聚类损失直接附加到嵌入空间。

为了保证聚类损失的有效性,预训练中使用的堆叠去噪自编码器不再适用。因为应该对干净数据的特征执行聚类,而不是在去噪自动编码器中使用的噪声数据。所以我们直接去除噪音。然后堆叠的去噪自编码器退化为不完整的自编码器(参见第 2.2 节)。重建损失通过均方误差 (MSE) 来衡量:

其中 zi = fW(xi) 和 fW 和 gW' 分别是编码器和解码器映射。如 [Peng et al., 2016] 和 [Goodfellow et al., 2016] 所示,自动编码器可以保留数据生成分布的局部结构。在这种情况下,使用聚类损失来稍微操纵嵌入空间不会导致损坏。因此系数 γ 最好小于 1,这将在 4.3 节中得到经验证明。

3.3 优化

我们使用小批量随机梯度下降 (SGD) 和反向传播优化 (6)。具体来说,需要优化或更新的参数有3种:自编码器的权重、聚类中心和目标分布P

更新自动编码器的权重和聚类中心。固定目标分布 P,Lc 相对于嵌入点 zi 和聚类中心 μj 的梯度可以计算为

请注意,上述推导来自 [Xie et al., 2016]。然后给定一个包含 m 个样本的 mini batch,学习率 λ,μj 更新为

解码器的权重更新为

编码器权重更新为

更新目标分布。目标分布作为“groundtruth”软标签,但也取决于预测的软标签。因此,为避免不稳定性,不应在每次迭代时仅使用一批数据更新 P(使用小批量样本更新自动编码器的权重称为一次迭代)。在实践中,我们每 T 次迭代使用所有嵌入点更新目标分布。更新规则见(3)和(4)。更新目标分布时,分配给 xi 的标签由下式获得

其中 qij 由 (3) 计算得出。如果目标分布的两次连续更新之间的标签分配变化(百分比)小于阈值 δ,我们将停止训练。

整个算法总结在算法 1 中。

不难看出,IDEC算法的时间复杂度为O(nD2 + ndK),其中D、d、K是隐藏层最大神经元个数,嵌入层的维数,个数的集群,分别。一般来说,K≤d≤D成立,所以时间复杂度为O(nD2)。

4个实验

5 结论

本文提出了一种改进的深度嵌入聚类 (IDEC) 算法,该算法联合执行聚类并学习适合聚类的嵌入特征,并保留数据生成分布的局部结构。IDEC 通过优化基于 KL 散度的聚类损失来操纵特征空间以分散数据。它通过合并自动编码器来维护局部结构。经验实验表明,结构保持对于深度聚类算法至关重要,可以提高聚类性能。未来的工作包括向 IDEC 框架添加更多先验知识(例如稀疏性),并为图像数据集合并卷积层。

结语

文章仅记录为个人学习笔记,记录一个从0到1的过程

希望对大家有一点帮助,如有错误请指正