p i j = q i j 2 / f j ∑ j ′ q i j ′ 2 / f j ′ , f j = ∑ i q i j p_{ij}\ =\ \frac{q_{ij}^{2}/f_j}{\sum_{j'}{q_{ij'}^{2}/f_{j'}}}\ ,\ f_j=\sum_i{q_{ij}} pij?=∑j′?qij′2?/fj′?qij2?/fj??,fj?=i∑?qij?
我们的训练策略可以看作是一种自训练 。与自训练一样 , 我们采用一个初始分类器和一个未标记的数据集 , 然后用分类器对数据集进行标记 , 以便使用其自身的高置信预测进行训练 。事实上 , 在实验中 , 我们观察到DEC通过从高置信预测中学习来改进每次迭代的初始估计 , 这反过来又有助于改进低置信预测 。
3.1.3.
同时优化表示z i z_i zi? 与簇中心μ j μ_j μj?,z i z_i zi?再传到DNN中 , 优化θ θ θ 。
当在两个连续迭代之间改变簇分配的点少于tol%时 , 过程停止 。
3.2.
到目前为止 , 我们已经讨论了DEC如何运行 , 给出了DNN参数θ和聚类中心的初步估计 。现在我们讨论如何初始化参数和簇中心 。
我们使用堆叠自动编码器(SAE)来初始化DEC , 因为最近的研究表明 , 它们在真实数据集上一致地产生有语义意义且区分良好的表示 。因此 , SAE学习的非监督表示自然有助于使用DEC学习聚类表示 。
我们一层一层地初始化SAE网络 , 每一层都是经过训练的去噪自编码器 , 在随机破坏后重建前一层的输出 。去噪自编码器定义为两层神经网络 。
损失为 ∣ ∣ x ? y ∣ ∣ 2 2 ||x-y||_2^2 ∣∣x?y∣∣22? 。在对一层进行训练后 , 我们用它的输出h作为输入来训练下一层 。我们所有的编码器/解码器对中使用ReLUs , 除了第一对的g2(它需要重构可能有正负值的输入数据 , 如零均值图像)和最后一对的g1(这样最终的数据嵌入保留了完整的信息 。
在进行贪婪分层训练后 , 我们将所有编码器层依次连接 , 然后是所有解码器层 , 按照反向分层训练顺序 , 形成一个深度自动编码器 , 然后对其进行微调 , 使重构损失最小化 。最终的结果是一个多层的深度自动编码器 , 中间有一个瓶颈编码层 。然后我们丢弃解码器层 , 使用编码器层作为数据空间和特征空间之间的初始映射 , 如图1所示 。
为了初始化聚类中心 , 我们将数据通过初始化的DNN传递得到嵌入的数据点 , 然后在特征空间Z中进行标准的k-means聚类 , 得到k个初始中心 。
4.
4.1.
数据集:一个文本数据集和两个图像数据集:
文章插图
对比算法:k-means、LDGMI和SEC 。LDGMI和SEC是基于光谱聚类的算法 , 它们使用拉普拉斯矩阵和各种变换来提高聚类性能 。LDMGI和SEC在很大范围的数据集上都优于传统的谱聚类方法 。
5.
6.
本文提出了一种深度嵌入式聚类算法 , 即在联合优化的特征空间中对一组数据点进行聚类 。DEC的工作原理是迭代优化基于KL散度的聚类目标和自训练目标分布 。我们的方法可以看作是半监督自我训练的无监督扩展 。我们的框架提供了一种方法来学习专门用于聚类的表示 , 而不需要聚类成员标签 。
实证研究证明了我们提出的算法的有效性 。DEC提供了相对于超参数设置的改进性能和鲁棒性 , 这在无监督任务中特别重要 , 因为交叉验证是不可能的 。DEC在数据点数量上也具有线性复杂性的优点 , 这允许它扩展到大型数据集 。
- 【开源访谈】腾讯贺嘉:从小程序谈起,开发者该如何跟进新技术?
- 基于传染病模型中的再生数R0的讨论【基于matlab的动力学模型学习笔记_2】
- 【每日一练】39—七夕节背景轮播图效果的实现
- 和时间做朋友:你一定要学的高效时间管理术
- 【Vue前端开发学习】第2章,Vue项目目录结构
- 探秘关羽死后的封神之路:清朝最盛
- 007 【编程之路扫雷游戏】(C语言实现)
- 2 文献阅读记录— PointNet++论文学习
- 2 Transformer综述大全【A Survey of Visual Tr
- 【浏览器】Ajax 是什么? Ajax的基本流程?