基于神经网络的具体算法DEC


一、简介

  • 聚类特别依赖特征空间的选择;
  • 先前很少有研究来解决用于聚类的特征空间学习问题;
  • 本文提出了一种称为神经网络堆叠 神经网络聚类算法_神经网络的聚类方法,该方法通过迭代方式来同时学习特征空间(向量表示)并完成聚类;

二、聚类算法DEC

神经网络堆叠 神经网络聚类算法_算法_02个点神经网络堆叠 神经网络聚类算法_神经网络堆叠_03聚类至神经网络堆叠 神经网络聚类算法_算法_04个簇,每个簇均有一个质心神经网络堆叠 神经网络聚类算法_聚类_05。本文不直接在数据空间神经网络堆叠 神经网络聚类算法_聚类_06上聚类,而是通过非线性映射神经网络堆叠 神经网络聚类算法_神经网络堆叠_07,将数据空间神经网络堆叠 神经网络聚类算法_聚类_06映射至特征空间神经网络堆叠 神经网络聚类算法_算法_09,其中神经网络堆叠 神经网络聚类算法_机器学习_10是可学习参数。为了避免维度灾难,神经网络堆叠 神经网络聚类算法_算法_09的维度远远小于神经网络堆叠 神经网络聚类算法_聚类_06。至于非线性映射神经网络堆叠 神经网络聚类算法_聚类_13,很自然选择神经网络来进行近似。

算法神经网络堆叠 神经网络聚类算法_神经网络_14的两个目标:

  • 在特征空间神经网络堆叠 神经网络聚类算法_神经网络堆叠_15中学习神经网络堆叠 神经网络聚类算法_聚类_16个簇心神经网络堆叠 神经网络聚类算法_聚类_17(聚类);
  • 学习将数据映射至特征空间神经网络堆叠 神经网络聚类算法_神经网络堆叠_15的网络参数神经网络堆叠 神经网络聚类算法_算法_19

1. 基于KL散度的聚类

给定一个初始化的非线性映射神经网络堆叠 神经网络聚类算法_聚类_13和初始化簇中心神经网络堆叠 神经网络聚类算法_神经网络堆叠_21。(如何初始化会在下一小节介绍)

神经网络堆叠 神经网络聚类算法_神经网络_14使用无监督交替两阶段方法来改善聚类效果,

  • 第一阶段:计算嵌入节点和簇中心的软分配;
  • 第二阶段:更新映射神经网络堆叠 神经网络聚类算法_神经网络堆叠_23,并使用辅助目标分布从当前高置信度分配中细化簇中心;
1.1 计算软分配

这里使用学习神经网络堆叠 神经网络聚类算法_算法_24分布作为衡量嵌入节点与簇中心的相似度
神经网络堆叠 神经网络聚类算法_聚类_25
其中,神经网络堆叠 神经网络聚类算法_机器学习_26神经网络堆叠 神经网络聚类算法_聚类_27嵌入后的向量;神经网络堆叠 神经网络聚类算法_聚类_28是学生神经网络堆叠 神经网络聚类算法_算法_24分布的自由度(论文设神经网络堆叠 神经网络聚类算法_神经网络_30);神经网络堆叠 神经网络聚类算法_算法_31被认为是分配样本神经网络堆叠 神经网络聚类算法_聚类_32至簇神经网络堆叠 神经网络聚类算法_聚类_33的概率;

1.2 KL散度最小化

该阶段通过辅助分布来进一步使各个簇更加的内聚。具体来说,模型通过将上面得到的软分配与目标分布来训练模型。为了实现这个目标,这里定义了一个基于KL散度的损失函数来衡量软分配神经网络堆叠 神经网络聚类算法_机器学习_34与辅助分布神经网络堆叠 神经网络聚类算法_机器学习_35间的差距
神经网络堆叠 神经网络聚类算法_机器学习_36
其中,神经网络堆叠 神经网络聚类算法_算法_31就是上面得到的软分配,神经网络堆叠 神经网络聚类算法_神经网络堆叠_38则是一个目标分布。

下面会介绍这个目标分布怎么来的。

对于本文的聚类算法,目标分布神经网络堆叠 神经网络聚类算法_算法_39的选择非常重要。具体来说,目标分布应该具有如下性质:

  • 能够改善聚类中簇的内聚程度;
  • 能够更加重视高置信度分布的数据点;
  • 每个簇中心对于损失的贡献是标准化的,防止大的簇扭曲了特征空间;

论文选择将软分配概率神经网络堆叠 神经网络聚类算法_机器学习_34进行平方,从而实现目标分布,即
神经网络堆叠 神经网络聚类算法_神经网络_41
其中,神经网络堆叠 神经网络聚类算法_算法_42是软类频率。

1.3 优化

论文使用带有momentum的神经网络堆叠 神经网络聚类算法_聚类_43来联合优化簇中心神经网络堆叠 神经网络聚类算法_神经网络堆叠_44和神经网络参数神经网络堆叠 神经网络聚类算法_机器学习_10。损失函数神经网络堆叠 神经网络聚类算法_算法_46关于每个数据点特征空间嵌入向量神经网络堆叠 神经网络聚类算法_神经网络堆叠_47的梯度和每个簇中心神经网络堆叠 神经网络聚类算法_神经网络堆叠_48的梯度为
神经网络堆叠 神经网络聚类算法_神经网络堆叠_49
当相邻两次迭代的变化小于神经网络堆叠 神经网络聚类算法_神经网络堆叠_50时停止优化。

2. 参数初始化

前面小节假设簇中心和神经网络参数均被初始化。本小节则是具体介绍如何进行初始化。

2.1 神经网络神经网络堆叠 神经网络聚类算法_聚类_13的初始化

论文使用堆叠自编码器来无监督学习数据在特征空间中的表示。堆叠自编码器采用逐层训练的方式,每一层的降噪自编码器都会重构前一层随机加入噪音的输出。降噪自编码器是一个两层的神经网络:
神经网络堆叠 神经网络聚类算法_神经网络堆叠_52
其中,神经网络堆叠 神经网络聚类算法_聚类_53神经网络堆叠 神经网络聚类算法_聚类_54是编码和解码层的激活函数,并且神经网络堆叠 神经网络聚类算法_算法_55是模型参数。降噪自编码器的训练方式是最小化均方损失函数神经网络堆叠 神经网络聚类算法_聚类_56。在训练完一层后,使用它的输出神经网络堆叠 神经网络聚类算法_神经网络堆叠_57作为下一层训练的输入。

经过逐层的贪心训练后,将所有的编码器按顺序拼接起来形成一个深度自编码器,并通过最小化构造损失函数来微调。最终得到的是,一个由编码器拼接成的多层深度自编码器,该自编码器用来将数据映射至特征空间,从而完成初始化。

2.2 簇中心初始化

在获得初始化的特征空间向量表示后,使用标准的神经网络堆叠 神经网络聚类算法_机器学习_58聚类来获得神经网络堆叠 神经网络聚类算法_算法_04个初始化簇中心神经网络堆叠 神经网络聚类算法_神经网络堆叠_21

三、思考

  • 论文的主要思路:1. 先使用已有的方式得到一个初步的聚类效果;2. 迭代的方式逐步改进聚类效果;
  • 论文使用一个堆叠自编码器将数据映射至特征空间。这两年预训练模型有了长足的进步,这里可以使用预训练模型来提供自编码器;
  • 聚类是否能作为预训练任务来预训练模型呢?这种得到的预训练模型是否有意义?
  • 可否通过某种方式对聚类进行一定的控制?
  • 这种迭代的方式是否可以用于少样本的有监督问题上?