深度聚类-袁志辉博士

2021-12-30

聚类是机器学习和计算机视觉领域最重要的研究方向之一,作为一种重要的数据分析工具,在数据挖掘、文档检索、图像分割和模式分类等任务中有着广泛的应用。聚类算法致力于在没有数据标签的情况下,将样本数据按照其相似性划分成不同的类别,使得同一个类别中的样本之间是相似的,不同类别的数据之间是不相似的,类别也被称为“簇”(cluster)。一般来说,聚类过程主要可以分为以下五个阶段:数据预处理、特征提取、相似度计算、聚类和结果分析。其中,特征提取实质上还包括特征选择或特征学习方法等,主要用于对样本数据进行特征预处理操作,以获得适合的特征信息;相似度计算主要是指在数据域定义一种相似度的度量标准并进行计算,以获得量化的相似度评价指标;聚类则是利用相关聚类算法根据相似性度量指标对数据进行分类,从而得到不同的簇;结果分析则是根据相关评价标准对聚类效果的质量进行评价。

聚类算法与分类算法是两种完全不一样的算法。在分类算法中,样本空间的类别信息是确定的,只需将符合条件的样本划分到某一类中去。而聚类算法则是一种无监督的算法,事先并不知道样本空间中的类别信息,而是根据样本之间的相似性将其划分为不同的簇,目标是使同一簇的样本之间相似度尽可能大,不同簇的样本之间相似度尽可能小。传统的聚类算法主要可以分为以下五类:

(1)基于模型的聚类

基于模型的聚类算法是给每个样本空间的类别设定一个类别参数模型,然后用样本对设定的参数模型去拟合,参数模型可以是样本的密度分布函数或者其他函数,通常假定样本空间中样本的分布是由密度概率函数决定的。

(2)基于网格的聚类

基于网格的聚类算法首先将样本空间根据某种属性划分成有限个单元的网格结构,每个样本都从属于一个网格单元中,然后对每个网格单元中的样本数据执行基本的聚类步骤。基于网格的聚类算法的优势是运行速度快,算法的运行速度与样本空间被划分的网格数目有关,与样本空间的原始数据的大小无关。常用的基于网格的聚类算法有CLIQUE算法、STING算法、Wave Cluster算法等。

(3)基于密度的聚类

基于密度的聚类算法通过样本空间中样本的分布密度来确定聚类结构,不使用样本之间的距离来度量。其主要思想是计算一个区域的样本密度,当其密度大于某个设定的阈值时,将这个簇并入与它相似的簇中。典型的基于密度的聚类算法有DBSCAN算法、DEBCLUE算法、OPTICS算法等。

(4)基于层次的聚类

基于层次的聚类算法的主旨思想是将原始的样本空间分成多个不同的层次,将样本空间的数据集划分成树状的结构,然后对层次中的不同的样本进行聚类。在聚类的过程中可以采用自上而下的拆分对策,也可以采用自下而上的聚合对策。常见的层次聚类算法有CURE聚类算法和BIRCH聚类算法。

(5)基于划分的聚类

基于划分的聚类又叫基于原型的聚类,在聚类过程中假设数据集结构能够通过一组原型模型来刻画,在日常的算法中非常常见。基于原型的聚类算法首先对原型进行初始化,然后通过迭代更新来求解聚类结果。常用的聚类算法有K-Means算法、CLARANS算法等。

近年来,随着深度神经网络的不断发展和其强大的特征表示能力,以及无监督学习和深度学习技术的成熟,很多基于深度特征学习的聚类算法实现了快速的发展,深度聚类正成为一个新的热门研究方向。传统的聚类任务首先需要通过特征工程的方式对输入数据进行特征提取,然后将特征应用于具体的聚类任务。但是特征工程算法依赖人工先验知识,只能提取不连续的手工特征以适应于特定的聚类任务,导致其扩展性较差。而深度神经网络的迅速发展这在一定程度上打破了传统浅层和线性的特征学习方法的局限。在深度聚类任务中,深度特征学习可以利用非线性的网络结构和逐层无监督的训练方式促进特征由浅到深逐步抽象化的学习过程,因而能够在聚类任务中获得更好的性能。传统聚类与深度聚类的主要区别如图1所示。

图片100.png 

图1 传统聚类与深度聚类的区别

从网络体系结构的角度来看可以将深度聚类分为如下两类:

(1)通过使用自动编码器(AE)来获得良好的特征表示空间。自动编码器由编码器和解码器两个部分组成。编码器部分主要功能是将数据映射到更好提取特征的低维的空间中。解码器部分则是将映射后低维数据重新映射回原始高维空间,该过程称为重构。保证重构数据与原始数据误差足够小,则编码其部分就可以作为数据特征提取的工具了。例如:Yang等人在2016年提出的Deep Clustering Network (DCN)将自动编码器与K-means算法相结合;Huang等人在2014年提出一种叫Deep Embedding Network(DEN)的深度嵌入网络来提取聚类的有效表示;Ji等人在2017年提出的Deep Subspace Clustering Networks (DSCN)引入了一种新颖的自动编码器架构,用于学习对子空间聚类友好的显式非线性映射;Chen等人提出了Deep Multi-Manifold Clustering (DMC),一种基于深度学习的多流形聚类框架。

(2)只使用聚类损失来训练提取特征的神经网络。相比于AE通过编码与解码的误差进行网络训练,这种方法只使用聚类结果的损失来训练神经网络。该类别网络架构可能非常深。例如:Xie等人在2016年提出的Deep Embedded Clustering (DEC)使用自动编码器作为网络体系结构,并使用集群分配硬损失作为正则化。Chen等人在2017年提出的Deep Nonparametric Clustering (DNC)利用DBN的无监督特征学习进行聚类分析;Fengfu L等人在2018年提出的Discriminatively Boosted Clustering (DBC)使用卷积自动编码器改进DEC。由于使用了卷积网络,它在图像数据集上优于DEC。Chang等人在2017年提出的Deep Adaptive Image Clustering (DAC),一种将优化目标是变成二元成对分类问题的深度聚类方法。

总的来说,深度聚类算法之所以取得成功有两个重要的因素,首先是深度神经网络强大的特征表示能力以及计算能力,其次是不同的算法在特征学习过程中对特征施加的约束,使得深度神经网络模型在训练过程中能够学习到更适应于聚类任务的深度特征。由此可见,未来深度聚类将是聚类分析算法的必然发展方向。