聚类论文详解:Deep Self-Evolution Clustering

716 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

上一篇我们说过对比聚类CC,那么本篇文章接着讲解 深度自进化聚类《Deep Self-Evolution Clustering》,论文地址:ieeexplore.ieee.org/document/85…

聚类算法

首先在讲解论文之前,我们先了解一下目前聚类算法的分类,如下图所示,

image.png

论文创新点

这篇深度自进化聚类(Deep Self-Evolution Clustering)以下简称 DSEC,主要思想如下:
将聚类问题转变为样本对是否相似的问题。首先用深度神经网络逐步遍历样本集通过余弦距离函数(cosine distance function)来计算样本之间的相似性,而样本标签则通过相似度和两个阈值u和l得到,最后通过学习优化模型的参数w和阈值u、l进行聚类。

方法模型

这一部分我们主要说一下论文中所用的方法,也就是DSEC模型的目标函数、损失函数以及自进化的相关知识。

(1)DSEC目标函数

image.png

其中,image.png是输出,代表样本之间的相似度。
image.png表示样本IiI_iIjI_j是相似的,也是属于同一簇。使用 g 来学习样本的相似度, w 是需要学习的参数。

(2)损失函数

image.png

在这里使用的是 L2L_2范数的平方项来表示损失函数。

(3)样本的指标特征

为了学习更多信息的聚类表示,DSEC模型引入了指标特征来表示聚类标签。
指标特征 image.png是一个 K维的向量(相当于有k个cluster,样本分到哪个cluster的一种指标)。同时引入了聚类约束:

image.png

使用DNN深度神经网络来学习样本的指标特征,这是由参数w唯一决定的DNN模型。

image.png

(4)样本相似度的计算

通过指标特征之间的点积来计算样本的相似度,点积计算公式如下。

image.png

因此,DSEC的目标函数可以变形为:

image.png

(5)自进化机制(self-evolution mechanism)

自进化机制允许 DSEC模型 逐步选择相似和不同的成对模式来训练DNN,那么我们先看下原文中对自进化机制训练的描写:

First, “easy” pairwise patterns with high likelihood are selected as training data to find rough clusters. Then, as the learning progresses, the trained DNNs can be utilized for measuring more accurate similarities and more pairwise patterns will be gradually selected to Find more refined clusters.

那么计算的公式呢,如下所示:

image.png

其中,S( , )代表余弦距离函数,用于计算样本特征之间的相似度。
这里就可以解释为什么 image.png,两向量会属于同一簇。因为当两向量的角度为 0 时,两向量重合,余弦值为1,即属于同一簇。

公式中的 u 和 l 是同一类和不同类的样本相似度的边界阈值,通过不断更新这两个阈值,就可以逐渐读取所有的样本对。当所有的样本对在训练过程中被标记后,阈值u = l。

DSEC模型伪代码

论文中给出了 DSEC模型的算法过程,如下图所示:

image.png

对于 DSEC论文 有兴趣的读者,可以根据本文给的链接去下载论文原文。