22 谱聚类——Spectral Clustering

这篇具有很好参考价值的文章主要介绍了22 谱聚类——Spectral Clustering。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

22 谱聚类——Spectral Clustering

22.1 背景介绍

我们在一般的聚类过程中,普遍理性而言会有两种思想:

  1. 将聚集在一起的点进行聚类(离得近的为同一类数据),例如可以线性分类的一组数据。
  2. 将具有联通性的一堆点进行聚类,如环形等线性不可分的数据。(这种其实在一定情况下也可以通过Kernel+K-Mean实现——进行非线性转换)

所以我们可以将聚类方法分成两大类:

  1. compactness: K-means, GMM
  2. connectivity: Spectral Clustering

22.2 模型介绍

Spectral Clustering实际上可以表示为一个带权重的无向图。

先给这张图做一个定义:

  1. 基本数据表示为:
    G = { V , E } , V = { 1 , 2 , … , N } , W = [ w i j ] , 1 ≤ i , j ≤ N G = {\lbrace V, E \rbrace}, \quad V = {\lbrace 1, 2, \dots, N \rbrace}, \quad W = [w_{ij}], 1 \leq i, j \leq N G={V,E},V={1,2,,N},W=[wij],1i,jN

  2. 其中 W W W也被称为Simlarity Matrix或Affinity Matrix, w i j w_{ij} wij​表示为:
    w i j = { K ( x i , x j ) = exp ⁡ { − ∥ x i − x j ∥ 2 2 2 σ 2 } ( i , j ) ∈ E 0 o t h e r w i s e w_{ij} = \begin{cases} K(x_i, x_j) = \exp{\lbrace - \frac{{\lVert x_i - x_j \rVert}_2^2}{2 \sigma^2} \rbrace} & (i, j) \in E \\ 0 & otherwise \end{cases} wij={K(xi,xj)=exp{2σ2xixj22}0(i,j)Eotherwise
    代表了节点之间的相似度

  3. 再做一个定义,用于表示一个符号:若 A ⊂ V , B ⊂ V , A ∩ B = ∅ A \subset V, B \subset V, A \cap B = \empty AV,BV,AB=,则表示集合之间的相似度为
    W ( A , B ) = ∑ i ∈ A , j ∈ B w i j W(A, B) = \sum_{i \in A, j \in B} w_{ij} W(A,B)=iA,jBwij

22.3 模型导出

接下来具体导出该模型的公式:

  1. 我们可以认为每个节点用于表示一个数据,而边表示数据之间的关联,而现在的目标是将数据分成 K K K类,且每一组数据之间的相似度最低,所以我们自然要删除一些边,将图变成由 K K K个连通图组成。

  2. 为了数学化表示,我们定义一个函数 C u t ( V ) Cut(V) Cut(V)用于表示集合 V V V​删除边的权值之和:
    C u t ( V ) = C u t ( A 1 , A 2 , … , A K ) = ∑ k = 1 K W ( A k , A k ˉ ) Cut(V) = Cut(A_1, A_2, \dots, A_K) = \sum_{k=1}^K W(A_k, {\bar {A_k}}) Cut(V)=Cut(A1,A2,,AK)=k=1KW(Ak,Akˉ)

  3. 但如果通过 C u t ( V ) Cut(V) Cut(V)用于表示目标函数,未免有失偏颇。因为我们切开的每一类中的节点数都是不同的,对于他们的相似度,我们应该做一个加权平均。

  4. 一般来说我们会通过节点数求均值: ∑ k = 1 K W ( A k , A k ˉ ) ∣ A k ∣ \sum_{k=1}^K \frac{W(A_k, {\bar {A_k}})}{|A_k|} k=1KAkW(Ak,Akˉ)。但本模型是通过边表示相似度,所以我们应当用类中度数加权,将新的函数定义为 N c u t ( V ) Ncut(V) Ncut(V)
    { N c u t ( V ) = ∑ k = 1 K W ( A k , A k ˉ ) ∑ i ∈ A k d e g r e e ( i ) d e g r e e ( i ) = ∑ j = 1 N w i j \begin{cases} Ncut(V) = \sum_{k=1}^K \frac{W(A_k, {\bar {A_k}})}{\sum_{i \in A_k} degree(i)} \\ degree(i) = \sum_{j=1}^N w_{ij} \end{cases} {Ncut(V)=k=1KiAkdegree(i)W(Ak,Akˉ)degree(i)=j=1Nwij

  5. 所以我们最后的目标就是这样一个带优化问题:
    { A k ˉ } k = 1 K = a r g min ⁡ { A k ˉ } k = 1 K N c u t ( V ) {\lbrace {\bar{A_k}} \rbrace}_{k=1}^K = arg\min_{{\lbrace {\bar{A_k}} \rbrace}_{k=1}^K} Ncut(V) {Akˉ}k=1K=arg{Akˉ}k=1KminNcut(V)

由于这样的数学表示有些过于繁杂,我们自然会想通过矩阵将其表示,首先引入一个指示向量替代目标问题:

  1. 假定有指示向量(indicator vector),定义为:
    { Y = ( y 1   y 2   …   y N ) N × K T y i ∈ { 0 , 1 } K ∑ j = 1 K y i j = 1 \begin{cases} Y = {(y_1 \ y_2 \ \dots \ y_N)}_{N \times K}^T \\ y_i \in {\lbrace 0, 1 \rbrace}^K \\ \sum_{j=1}^K y_{ij} = 1 \end{cases} Y=(y1 y2  yN)N×KTyi{0,1}Kj=1Kyij=1
    所以大致可以表现为 y i = ( 0   …   1   …   0 ) T y_i = {(0 \ \dots \ 1 \ \dots \ 0)}^T yi=(0  1  0)T,用于表示第 i i i个样本属于第 j j j个类别

  2. 那么我们就可以将带优化问题表示为:
    Y ˉ = a r g min ⁡ Y N c u t ( V ) {\bar Y} = arg\min_{Y} Ncut(V) Yˉ=argYminNcut(V)

22.4 模型的矩阵形式

继目标问题之后,我们也要将优化问题化为矩阵形式:首先化简 N c u t ( V ) Ncut(V) Ncut(V)函数,下文中将 d e g r e e ( i ) degree(i) degree(i)简化为 d i d_i di

N c u t ( V ) = ∑ k = 1 K W ( A k , A k ˉ ) ∑ i ∈ A k d i = ( W ( A 1 , A 1 ˉ ) ∑ i ∈ A 1 d i … W ( A K , A K ˉ ) ∑ i ∈ A K d i ) = t r [ ( W ( A 1 , A 1 ˉ ) … W ( A K , A K ˉ ) ) ⏟ O K × K ( ∑ i ∈ A 1 d i … ∑ i ∈ A K d i ) − 1 ⏟ P K × K ] = t r ( O ⋅ P − 1 ) \begin{align} Ncut(V) &= \sum_{k=1}^K \frac{W(A_k, {\bar {A_k}})}{\sum_{i \in A_k} d_i} = \begin{pmatrix} \frac{W(A_1, {\bar {A_1}})}{\sum_{i \in A_1} d_i} & & \\ & \dots & \\ & & \frac{W(A_K, {\bar {A_K}})}{\sum_{i \in A_K} d_i} \end{pmatrix} \\ &= tr \left[ \underbrace{\begin{pmatrix} {W(A_1, {\bar {A_1}})} & & \\ & \dots & \\ & & {W(A_K, {\bar {A_K}})} \end{pmatrix}}_{O_{K \times K}} \underbrace{{\begin{pmatrix} {\sum_{i \in A_1} d_i} & & \\ & \dots & \\ & & {\sum_{i \in A_K} d_i} \end{pmatrix}}^{-1}}_{P_{K \times K}} \right] \\ &= tr(O \cdot P^{-1}) \end{align} Ncut(V)=k=1KiAkdiW(Ak,Akˉ)= iA1diW(A1,A1ˉ)iAKdiW(AK,AKˉ) =tr OK×K W(A1,A1ˉ)W(AK,AKˉ) PK×K iA1diiAKdi 1 =tr(OP1)

我们将 N c u t ( V ) Ncut(V) Ncut(V)函数拆分成了两部分,我们现在已知 W , Y W, Y W,Y,我们需要通过已知条件构造出 O , P O, P O,P。为了构造出 P P P

  1. 我们先来了解一下 Y Y Y​的性质:
    Y T Y = ( y 1   y 2   …   y N ) ( y 1 T y 2 T … y N T ) = ∑ i = 1 N y i y i T ⏟ = d i a g ( 0 , … , 1 , … , 0 ) = ( N 1 … N K ) ⏟ N = ∑ i = 1 K N i = ( ∑ i ∈ A 1 1 … ∑ i ∈ A K 1 ) \begin{align} Y^T Y &= (y_1 \ y_2 \ \dots \ y_N) \begin{pmatrix} y_1^T \\ y_2^T \\ \dots \\ y_N^T \end{pmatrix} = \sum_{i=1}^N \underbrace{y_i y_i^T}_{=diag(0, \dots, 1, \dots, 0)} \\ &= \underbrace{\begin{pmatrix} N_1 & & \\ & \dots & \\ & & N_K \end{pmatrix}}_{N = \sum_{i=1}^K N_i} = \begin{pmatrix} \sum_{i \in A_1} 1 & & \\ & \dots & \\ & & \sum_{i \in A_K} 1 \end{pmatrix} \end{align} YTY=(y1 y2  yN) y1Ty2TyNT =i=1N=diag(0,,1,,0) yiyiT=N=i=1KNi N1NK = iA11iAK1

  2. 我们发现,倘如能把矩阵中的 1 1 1换成 d i d_i di,结果就是 P P P了,所以:
    { P = ( ∑ i ∈ A 1 d i … ∑ i ∈ A K d i ) = Y T D Y D = ( d 1 … d N ) = d i a g ( W ⋅ 1 N ⏟ ( ∑ j = 1 N w 1 j   …   ∑ j = 1 N w N j ) T ) \begin{cases} P = \begin{pmatrix} {\sum_{i \in A_1} d_i} & & \\ & \dots & \\ & & {\sum_{i \in A_K} d_i} \end{pmatrix} = Y^T D Y \\ D = \begin{pmatrix} d_1 & & \\ & \dots & \\ & & d_N \end{pmatrix} = diag( \underbrace{W \cdot 1_N}_{{(\sum_{j=1}^N w_{1j} \ \dots \ \sum_{j=1}^N w_{Nj})}^T} ) \end{cases} P= iA1diiAKdi =YTDYD= d1dN =diag((j=1Nw1j  j=1NwNj)T W1N)

为了构造出 O O O

  1. 我们先对 O O O进行一些数学变换,根据 W ( A k , A k ˉ ) = W ( A k , V ) − W ( A k , A k ) W(A_k, {\bar {A_k}}) = W(A_k, V) - W(A_k, {A_k}) W(Ak,Akˉ)=W(Ak,V)W(Ak,Ak)可得:
    O = ( W ( A 1 , A 1 ˉ ) … W ( A K , A K ˉ ) ) = ( ∑ i ∈ A 1 d i … ∑ i ∈ A K d i ) − ( W ( A 1 , A 1 ) … W ( A K , A K ) ) \begin{align} O &= \begin{pmatrix} {W(A_1, {\bar {A_1}})} & & \\ & \dots & \\ & & {W(A_K, {\bar {A_K}})} \end{pmatrix} \\ &= \begin{pmatrix} {\sum_{i \in A_1} d_i} & & \\ & \dots & \\ & & {\sum_{i \in A_K} d_i} \end{pmatrix}- \begin{pmatrix} {W(A_1, {A_1})} & & \\ & \dots & \\ & & {W(A_K, {A_K})} \end{pmatrix} \end{align} O= W(A1,A1ˉ)W(AK,AKˉ) = iA1diiAKdi W(A1,A1)W(AK,AK)

  2. 为了表示 O O O,我们发现 l e f t = Y T D Y left=Y^TDY left=YTDY,这个已经求出来了。为了表示 r i g h t right right,我们模仿着看一下 Y T W Y Y^TWY YTWY是什么(我们知道 y i y j T y_i y_j^T yiyjT的矩阵只有在 ( i , j ) (i, j) (i,j)的位置上为 1 1 1,其他地方都是 0 0 0):
    Y T W Y = ∑ i = 1 N ∑ j = 1 N y i w i j y j T = ∑ i = 1 N ∑ j = 1 N y i y j T w i j = ( ∑ i ∈ A 1 ∑ j ∈ A 1 w i j … ∑ i ∈ A 1 ∑ j ∈ A K w i j … … ∑ i ∈ A K ∑ j ∈ A 1 w i j ∑ i ∈ A K ∑ j ∈ A K w i j ) \begin{align} Y^TWY &= \sum_{i=1}^N \sum_{j=1}^N y_i w_{ij} y_j^T = \sum_{i=1}^N \sum_{j=1}^N y_i y_j^T w_{ij} \\ &= \begin{pmatrix} \sum_{i \in A_1} \sum_{j \in A_1} w_{ij} & \dots & \sum_{i \in A_1} \sum_{j \in A_K} w_{ij} \\ \dots & \dots & \\ \sum_{i \in A_K} \sum_{j \in A_1} w_{ij} & & \sum_{i \in A_K} \sum_{j \in A_K} w_{ij} \end{pmatrix} \end{align} YTWY=i=1Nj=1NyiwijyjT=i=1Nj=1NyiyjTwij= iA1jA1wijiAKjA1wijiA1jAKwijiAKjAKwij

  3. 我们发现其实 Y T W Y ≠ r i g h t Y^TWY \neq right YTWY=right,但如果我们假设 O ′ = Y T D Y − Y T W Y O^{'} = Y^TDY - Y^TWY O=YTDYYTWY,我们会发现其实用 O ′ O^{'} O替代 O O O进行计算也没有问题,因为我们只需要求trace, O ′ O^{'} O的对角线与 O O O​相同即可。用数学语言表示为:
    t r ( O ⋅ P − 1 ) = t r ( O ′ ⋅ P − 1 ) tr(O \cdot P^{-1}) = tr(O^{'} \cdot P^{-1}) tr(OP1)=tr(OP1)

根据以上证明,我们可以将问题简化为:
Y ˉ = a r g min ⁡ Y t r ( Y T ( D − W ) Y ⋅ ( Y T D Y ) − 1 ) {\bar Y} = arg\min_{Y} tr\big( Y^T (D-W) Y \cdot {(Y^T D Y)}^{-1} \big) Yˉ=argYmintr(YT(DW)Y(YTDY)1)文章来源地址https://www.toymoban.com/news/detail-497770.html

到了这里,关于22 谱聚类——Spectral Clustering的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 聚类算法(Clustering)原理深入解析与应用

    聚类算法是无监督学习中常用的技术,用于将数据集中的对象分成不同的组或簇,使得组内的对象相似度较高,而组间的对象相似度较低。本文将详细解析聚类算法的原理,从距离度量到簇划分准则,全面理解聚类算法的工作原理和应用。 聚类算法是一种无监督学习算法,通

    2024年02月09日
    浏览(42)
  • (完全解决)如何输入一个图的邻接矩阵(每两个点的亲密度矩阵affinity),然后使用sklearn进行谱聚类

    背景 网上倒是有一些关于使用sklearn进行谱聚类的教程,但是这些教程的输入都是一些点的集合,然后根据谱聚类的原理,其会每两个点计算一次亲密度(可以认为两个点距离越大,亲密度越小),假设一共有N个点,那么就是 N*N 个亲密度要计算,这特别像什么?图里面的邻

    2024年02月07日
    浏览(44)
  • 【聚类算法】密度峰值聚类算法DPC(Density Peak Clustering Algorithm)

    every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?type=blog 密度峰值聚类算法(Density Peak Clustering Algorithm),能够自动发现数据中的密度峰值点,并根据峰值点将数据进行聚类,该算法由Alex Rodriguez和Alessandro Laio于2014年提出。发表science https://www.science.org

    2024年02月15日
    浏览(39)
  • 图论中的聚类系数(Clustering coefficient)简单介绍

    在GraphSage论文的理论分析部分,涉及到一个概念叫做“ Clustering coefficient” ,直译过来就是 聚类系数 ,解释为“节点的一跳邻域内封闭的三角形的比例”,本文对其做一个简单的介绍。本文参考了 Wiki百科-Clustering coefficient。 更:关于GraphSage论文详解,请参见博文《GraphSag

    2023年04月09日
    浏览(41)
  • 吴恩达机器学习笔记:第 8 周-13 聚类(Clustering)13.1-13.2

    在这个视频中,我将开始介绍聚类算法。这将是一个激动人心的时刻,因为这是我们学习的第一个非监督学习算法。我们将要让计算机学习无标签数据,而不是此前的标签数据。 那么,什么是非监督学习呢?在课程的一开始,我曾简单地介绍过非监督学习,然而,我们还是有

    2024年04月22日
    浏览(52)
  • 密度峰值聚类算法DPC(Density Peak Clustering)理论基础与python实现

    基于密度峰值的聚类算法全称为基于快速搜索和发现密度峰值的聚类算法(clustering by fast search and find of density peaks, DPC)。它是2014年在Science上提出的聚类算法,该算法能够自动地发现簇中心,实现任意形状数据的高效聚类。 密度峰值聚类算法是对K-Means算法的一种改进,回顾K

    2024年02月16日
    浏览(39)
  • 从聚类(Clustering)到异常检测(Anomaly Detection):常用无监督学习方法的优缺点

    无监督学习是机器学习的一种重要方法,与有监督学习不同,它使用未标记的数据进行训练和模式发现。无监督学习在数据分析中扮演着重要的角色,能够从数据中发现隐藏的模式、结构和关联关系,为问题解决和决策提供有益的信息。相比于有监督学习需要标记样本的限制

    2024年02月11日
    浏览(51)
  • 论文阅读1--A Survey on Incomplete Multi-view Clustering(不完全多视图聚类的调查)阅读笔记

    目录 写在前面(知识补充) 0.Abstract 1.Introduction 2. FUNDAMENTALS AND PRELIMINARY CONCEPTS 3. MATRIX FACTORIZATION BASED IMC(基于矩阵分解的IMC) 4. KERNEL LEARNING BASED IMC(基于内核学习的IMC) 5.GRAPH LEARNING BASED IMC(基于图学习的IMC) 6.DEEP LEARNING BASED IMC(基于深度学习的IMC) 7. EXPERIMENTS(实验部分)

    2024年02月05日
    浏览(60)
  • 【人工智能】— 无监督学习、K-means聚类(K-means clustering)、K-means损失函数,目标函数

    无监督学习是指在没有标签的数据上进行学习,即没有监督信号的指导下进行模型训练。在无监督学习中,我们主要关注从无标签数据中学习出数据的低维结构和隐藏的模式。 通过无标签数据,我们可以预测以下内容: 低维结构:通过无监督学习算法如主成分分析(PCA),

    2024年02月10日
    浏览(43)
  • DIP: Spectral Bias of DIP 频谱偏置解释DIP

    文章地址:https://arxiv.org/pdf/2107.01125.pdf 代码地址: https://github.com/shizenglin/Measure-and-Control-Spectral-Bias 参考博客: https://zhuanlan.zhihu.com/p/598650125 1.1 动机 动机 Deep Image Prior已经被广泛地应用于去噪、超分、图像恢复等 但是我们尚不清楚如何在网络架构的选择之外控制DIP DIP存在性能

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包