0 文章小节分类

  1. 相关线代启示录
  2. 对Laplancian Matrix的基础理解
  3. 对经典文章《Normalized Cuts and Image Segmentation》中的normalised cut algorithm部分做详细的个人理解与阐述

1. 相关线代启示录

1.1 特征值与特征向量部分:

https://blog.csdn.net/qq_38382642/article/details/103553825

1.2 二次型

通过矩阵来研究二次函数(方程),这就是线性代数中二次型的重点。所以我们可以通过二次函数来理解二次型。

1.2.1 二次函数的一个特点

给一元二次方程增加一次项,是不会改变二次函数的形状的:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

当然了增加常数项更不会改变二次函数的形状。

1.2.2 二次方程

下面是一个二元二次方程:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

给它增加一次项也不会改变形状,只是看上去有些伸缩:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

1.2.3 小结论

对于二次方程或二次函数,增加一次项或常数项,不会改变其形状。形状,意味着函数的变化规律。

1.3 通过矩阵来研究二次函数

通过上面的观察可以知道,二次函数或二次方程,最重要的是二次项。

1.3.1 二次型矩阵

实际上我们可以通过矩阵来表示二次型:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

更一般的情形:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

写成更线代的形式:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

所以可以总结得到如下对应关系:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

1.3.2 对上述矩阵分解观察

对于方阵,因为没有维度的改变,所以就没有投影这个运动了,只有旋转和拉伸

理解GCN(二)从拉普拉斯矩阵到Ncut问题

把这个矩阵进行特征值分解(特征值分解实际上就是把运动分解了)
理解GCN(二)从拉普拉斯矩阵到Ncut问题
(注意要正交) 对于二次型矩阵,都是对称矩阵,所以特征值分解总可以得到正交矩阵与对角矩阵。
理解GCN(二)从拉普拉斯矩阵到Ncut问题
所以只需要保留拉伸部分,就相当于把二次型矩阵 $A$扶正了,所以,用二次型矩阵进行**规范化**是非常轻松的事情。

1.4 对二次型的n维实向量x\rm x的讨论

1.4.1 这种二次型是一个实函数,要有"整体视角"

A=[aij]A=[a_{ij}] 为一个 n×nn\times n 阶实矩阵,x=[x1xn]\mathbf{x}=\begin{bmatrix} x_1\\ \vdots\\ x_n \end{bmatrix}nn 维实向量,具有以下形式的实函数称为二次型 (quadratic form):
f(x)=xTAxf(\mathbf{x})=\mathbf{x}^TA\mathbf{x}

请注意,二次型 xTAx\mathbf{x}^TA\mathbf{x} 是一个纯量。任意二次型 xTAx\mathbf{x}^TA\mathbf{x} 都可以转换为等价的 xTBx\mathbf{x}^TB\mathbf{x},其中 BB 是一个实对称矩阵。利用一点运算技巧改写矩阵乘法公式可得:

正定矩阵的概念建立于二次型之上。若 AA 是一个实对称矩阵且任一 x0\mathbf{x}\neq\mathbf{0} 满足 xTAx>0\mathbf{x}^TA\mathbf{x}>0我们称 AA是正定的,详见“正定矩阵”。因此讨论仅具对称性的二次型已足够应付一般的问题,这与我们习惯将对称性纳入正定的定义其道理是相同的。

1.4.2 分析二次型函数的最值问题

既然我们已经认为二次型是一个“自变量是n维实向量x\rm x”的函数,那么随着x\rm x的变化,二次型的值域也是不断变化。

对于矩阵而言,特征值和特征向量是线性代数分析矩阵结构与线性变换最重要的概念。二次型的最大化 (或最小化) 问题是特征值和特征向量的一个典型应用。设 A 是实对称矩阵,考虑此问题:

最大化 xTAxx\mathbf{x}^TA\mathbf{x},\mathbf{x} 满足 x2=xTx=1\Vert\mathbf{x}\Vert^2=\mathbf{x}^T\mathbf{x}=1

求解这个约束最佳化 (constrained optimization) 问题的传统方法是引入 Lagrangian 函数 (见“Lagrange 乘数法”):
L(x,λ)xTAxλ(xTx1)L(\mathbf{x},\lambda)\equiv\mathbf{x}^TA\mathbf{x}-\lambda(\mathbf{x}^T\mathbf{x}-1)产生极值的必要条件是 L 对 x\mathbf{x} 的各元的一次偏导数都等于零,亦即 x\mathbf{x}LL 的一个驻点 (参见“最佳化理论与正定矩阵”)。因为 AT=AA^T=A,易得:
0=xL=2(Axλx)\mathbf{0}=\nabla_{\mathbf{x}}L=2(A\mathbf{x}-\lambda\mathbf{x})

单位向量 (unit vector) x\mathbf{x} 要使xTAx\mathbf{x}^TA\mathbf{x} 最大化的必要条件是满足特征方程式 Ax=λxA\mathbf{x}=\lambda\mathbf{x},所以对二次型中的AxA\mathbf{x},正好有一个A,代入特征方程式可得

xTAx=xT(λx)=λx2=λ\mathbf{x}^TA\mathbf{x}=\mathbf{x}^T(\lambda\mathbf{x})=\lambda\Vert\mathbf{x}\Vert^2=\lambda

实对称矩阵的特征值必为实数,因此使二次型最大化的向量 x\mathbf{x} 正是对应最大特征值的特征向量。

另一方面,我们也可以直接利用实对称矩阵是正交可对角化此性质来分解二次型。
A=QΛQTA=Q\Lambda Q^{T},其中 QQ是正交特征向量矩阵,QT=Q1Q^T=Q^{-1}Λ=diag(λ1,,λn)\Lambda=diag(\lambda_1,\ldots,\lambda_n)是主对角特征值矩阵。令 y=QTx\mathbf{y}=Q^{T}\mathbf{x},二次型可用主对角分解化简为:
xTAx=xTQλQTx=yTΛy=λ1y12+λ2y22++λnyn2\mathbf{x}^TA\mathbf{x}=\mathbf{x}^TQ\lambda Q^{T}\mathbf{x}=\mathbf{y}^T\Lambda\mathbf{y}=\lambda_1y_1^2+\lambda_2y_2^2+\cdots+\lambda_ny_n^2。因为 QQ 是正交矩阵,y=QTx=x=1\Vert\mathbf{y}\Vert=\Vert Q^T\mathbf{x}\Vert=\Vert\mathbf{x}\Vert=1 (见“特殊矩阵 (3):么正矩阵(酉矩阵)”),故可推论 yTΛy\mathbf{y}^T\Lambda\mathbf{y} 的最大值即为 A 的最大特征值。

2. 对Laplancian Matrix的基础理解

2.1 Laplancian Matrix的定义

拉普拉斯矩阵的定义为:L=DWL=D-W其中,DD是图的度矩阵,WW是图的邻接矩阵。所以研究拉普拉斯矩阵实际表示的物理意义之前,需要先验一下图相关矩阵

2.1.1 简单介绍三种矩阵

我们先回顾图论的一些基本词。图 G=(V,E)G=(V, E) 包含二类组成元件:顶点 (vertex) 集合 V={v1,v2,,vn}V=\{v_1,v_2,\ldots,v_n\} 与边 (edge) 集合 EEV\vert V\vertE\vert E\vert 分别表示顶点数与边的总数。边集合 EE 中每个边由一对相异的顶点所定义,表示为 e={x,y}e=\{x,y\},我们称顶点 xx 和顶点 yy 邻接 (adjacent),并称顶点 xxyy 与边 ee 有关联 (incident)。如果两个顶点存在不对称关系——例如,公司 x 是公司 y 的买主,连接 x 和 y 的边 {x,y}\{x,y\} 具有方向性,称为有向边 (directed edge),包含有向边的图称为有向图 (directed graph)。为了与无向边区别,我们将有向边记为 e=(x,y)e=(x,y)(或者e={x,y}e=\{x,y\}),其中 x 是有向边 ee 的初始顶点,y 是终止顶点。本文仅考虑简单图,也就是说顶点与其自身不存在连接边,且二邻接顶点仅有一边。

W 邻接矩阵

aija_{ij}表示顶点viv_i与顶点vjv_j之间的边数,可能取值为0,1,2,…,称所得矩阵A=A(G)=(aij)n×nA=A(G)=(a_{ij})_{n×n}为图GG的邻接矩阵
*类似地,有向图DD的邻接矩阵$A(D)=(a_{ij})_{n×n}, aija_{ij}表示从始点viv_i到终点vjv_j的有向边的条数,其中viv_ivjv_jDD的顶点

理解GCN(二)从拉普拉斯矩阵到Ncut问题

举例:家庭成员5人,即V=5|V|=5

理解GCN(二)从拉普拉斯矩阵到Ncut问题

邻接矩阵就是A=[0110000001010100100010100]A=\begin{bmatrix} 0&1&1&0&0\\ 0&0&0&0&1\\ 0&1&0&1&0\\ 0&1&0&0&0\\ 1&0&1&0&0 \end{bmatrix}

D 度矩阵

将邻接矩阵各行元素相加求和,对应值作为对角线元素,所得到的矩阵成为度矩阵DD,度矩阵中的第ii个对角线元素did_i就代表与节点ii的连接的点的边数(对于有向图,为权值之和,此时di:=jωijd_i:=\sum_j\omega_{ij}

度矩阵表示成D,是一个对角矩阵,对角线的元素则是每个节点所带的连接边的权重和(dij=kωikd_{ij}=\sum_k\omega_{ik}

C 关联矩阵

弄清邻接矩阵和关联矩阵对接下来的LM理解是十分重要的:我个人的理解是前者无向图而后者为有向图:
G=(V,E)G=(V,E) 为一个有向图,其中 V={v1,,vn}V=\{v_1,\ldots,v_n\} 是顶点集合,E={e1,,em}E=\{e_1,\ldots,e_m\} 是有向边集合。我们以 V\vert V\vertE\vert E\vert 分别表示顶点和边的总数,即 V=n\vert V\vert=nE=m\vert E\vert=m。有序对 ei=(vj,vk)e_i=(v_j,v_k) 表示边 eie_i的起始顶点是 vjv_j,终止顶点是 vkv_k,即 vj ei vkv_j\xrightarrow[]{~e_i~}v_k。我们定义关联矩阵 A=[aij]m×nA=[a_{ij}] 为一 m\times n 阶矩阵,其中 aij=1a_{ij}=-1aik=+1a_{ik}=+1ei=(vj,vk)e_i=(v_j,v_k),其余元为零。

举例:家庭成员5人,即V=5|V|=5

理解GCN(二)从拉普拉斯矩阵到Ncut问题
对应关联矩阵 >
理解GCN(二)从拉普拉斯矩阵到Ncut问题

注:关联矩阵的应用其中有基尔霍夫定理

2.1.2 一些图论相关基础知识

A 特征空间:

{λ1,...,λi,...,λr}\{ \lambda_1,...,\lambda_i,...,\lambda_r\}代表互不相同的特征值,那么特征空间SiS_i是由上述特征向量撑起:Si={xRnAx=λix}S_i=\{x\in \R^n | \rm A x=\lambda_i x\}如果λi!=λj\lambda_i !=\lambda_jSiS_iSjS_j正交。

B 图上的实值函数

考虑一个图上节点集合定义的实值函数f:VR\rm f: V\rightarrow\R,这个 方程ff分配具体的实值给图上每个节点

ff是由图上节点索引的向量,所以fRn\rm f\in \R^n
我们记f\rm{f} =(f(v1),...f(vn))=(f(1),...f(n))=(f(v_1),...f(v_n))=(f(1),...f(n))

理解GCN(二)从拉普拉斯矩阵到Ncut问题

其中上面的特征向量是邻接矩阵的特征向量。

C 邻接矩阵A作为运算算符和二次型形式时

注意这里用A表示邻接矩阵而不是W,因为这也是描述的比较混混的…

A作为运算符时g=Af\rm g=Af g(i)=ijf(j)g(i)=\sum_{i \rightarrow j }f(j)
使用A的二次型描述A的邻点权值:fTAf=eijf(i)f(j)\rm f^TAf = \sum_{e_ij}f(i)f(j)其中eije_{ij}是边集合中的第i到第j元素,没有忘吧。

D 图的关联矩阵:
理解GCN(二)从拉普拉斯矩阵到Ncut问题

2.1.3 拉普拉斯矩阵

首先考虑图的关联矩阵(incidence matrix),C=C(G)C=C(G)。其中每一列表示的是图的节点,每一行表示的图的一条边。

理解GCN(二)从拉普拉斯矩阵到Ncut问题

然后我们将这个关联矩阵可以写成:C=[e0Te1Tem1T]C=\begin{bmatrix}e_0^T\\ e_1^T\\ \vdots\\ e_{m-1}^T\end{bmatrix}其中,eke_k是一个边向量,表达了从节点i到节点j的一条边:[,1i,,1j,][\cdots, \underbrace{1}_i, \cdots, \underbrace{-1}_j, \cdots]这条边是从i到j,而且是直接通过,中间没有穿过任何节点(看上图),当我们描述“从节点i到节点j”时,就说其余位置都为0。所以:CTC=k=0m1ekekTC^TC=\sum_{k=0}^{m-1}e_k \cdot e_k^T即:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

考虑上方这个矩阵,我们会发现它的对角线上,iiii这个位置和jjjj这个位置,会都为1,其实表达了在该图中,节点iijj位置的度数为1。而其余两个位置ijijjiji则表达了该位置存在一条边。此时,该矩阵损失了方向信息。

所以对上面一系列ekekTe_ke^T_k矩阵求和,我们就得到了图的拉普拉斯矩阵,对角线表达了节点的度数,而非对角线部分则是边的信息。
那么,拉普拉斯矩阵就可以定义成:L=DW(DA)L=D-W(有些写成D-A)

当然,在有权图中,上面的关联矩阵,就不应该表示成1和-1,而应该是边的权重的平方根,那么对于平方根的处理,就需要用到刚刚的二次型思想。但这一过程并不是一蹴而就的,我们需要先更多地去描述一个有向图:

既然是有向图,就要用关联矩阵而不是邻接矩阵来描述LM。根据上面补充的知识,我们记ff\rm f \rightarrow \nabla f是图的共同边界映射(co-boundary)。(关联矩阵的转置代表着共同边界映射(coboundary map))则(f)\rm (\nabla f) (eij)=f(vj)f(vi)(e_{ij})=f(v_j)-f(v_i)
反映在这个例子上:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

就是:

理解GCN(二)从拉普拉斯矩阵到Ncut问题

那么,既然要用权重的平方根,(又涉及到权重又涉及到平方根,你想到了什么?)
————我们用有权重的关联矩阵和描述平方根的二次型来描述有向图的拉普拉斯矩阵:L=TL=\nabla ^T\nabla
T\nabla^T是关联矩阵的转置,那么关联矩阵与他的转置之积是什么?

对于无向图,邻接矩阵与其转置之积对应两种情况:

  • AAT\rm AA^T对角线上的表示 顶点viv_i的出度
  • ATA\rm A^TA对角线上的表示 顶点viv_i的入度

所以这里\nabla能表示顶点ii对其所有邻点jj的关联矩阵
那么T\nabla^T是不是反过来表示顶点jj对其所有邻点ii的关联矩阵呢?

所以(Lf)\rm (Lf) (vi)(v_i) =(T)(vi)=(\nabla ^T\nabla)(v_i)=vjvi(f(vi)f(vj))\sum_{v_j\rightarrow v_i}(f(v_i)-f(v_j))

结合度矩阵和邻接矩阵,仍然可以:L=DWL=D-W但是这里的D是有向图的D

另外,对于有向图的LM我们有了,那么对于有权重的无向图(undirected weighted graph),我们先考虑每条边eije_{ij}的权重wij>0w_{ij}>0
同样写出L作为operator和二次型的两种表示的形式

理解GCN(二)从拉普拉斯矩阵到Ncut问题

这个也很好理解,上面的无权值有向图的拉普拉斯矩阵中的节点viv_i值为所有向viv_i射过来的邻点vjv_j(所以求和符号下是右箭头,看到没,如果仅仅i射j就不计算他)的节点值求和,没有说权重就没有wijw_{ij}
而下面无向图有权重的,就求和符号两边都统计一波,然后顺便起一个wijw_{ij},一下秒懂,有什么好说的。

3. 对Ncut的理解

既然我们用拉氏矩阵描述节点viv_i,那这么做一定是有助于谱聚类的。我们来看一下:
既然我们要谱图聚类,那就一定有一个目标函数,在文章《Normalized Cuts and Image Segmentation》中,作者给出了详细的推导过程,针对其中几个式子谈谈个人的浅显看法。

3.1 Computing the Optimal Partition

3.1.1 N-cut函数

理解GCN(二)从拉普拉斯矩阵到Ncut问题

这里关注wijxixj-w_{ij}x_ix_j这项:

若i和j都在A割中,整体负号
若i和j都在B割中,整体负号
若i和j在不同的割图中,则整体正号

所以我们需要求出Ncut(A,B)Ncut(A,B)的最小值,代表着割最少的边,经过最小的权重和,就能将两块蛋糕越完美的分开。
注意,公式中的xi,xjx_i,x_j个人理解仅仅起到指示作用,就是说看这个点是上面三种情况中的哪一种,可以说是一种表示方式。

然后是文中的4Ncut(A,B):

理解GCN(二)从拉普拉斯矩阵到Ncut问题

我关注了式中的(DW)(D-W),寻思着这不就是L吗??我理解的这里的意思是,因为我们需要描述割图的目标函数,所以我们利用1+x2\frac{1+x}{2}等变换构造出了quadratic form的Laplacian Matrix矩阵形式,从而利用了拉普拉斯矩阵的二次型函数作为normalized割图的目标函数。也就是说我理解的是作者根据这里构造出的D-W从而导出了拉普拉斯矩阵?

因为度矩阵(他后面分了A割图的度矩阵和B割图的度矩阵)就是i的邻点边数,在对角线上。而W是只有0或1组成的邻接矩阵(这里考虑最简单的情况进行思考),所以D-W就可以描述图中所有节点的相互连接性。因为之前不是说了吗,节点i和j位置的度数为1。而其余两个位置ij和ji则表达了该位置存在一条边。此时,该矩阵损失了方向信息。虽然方向没了但是我现在只需要知道i和j有一条边就行了,D-W正好可以反映无论是i到j还是j到i都有一条边,而且用(1+x)处理D-W阵中+1的元素,(1-x)处理-1的元素,求和就可以得到我一共鸽了多少条边!

相关文章:

  • 2021-05-12
  • 2021-09-08
  • 2021-08-23
  • 2022-12-23
  • 2022-01-10
  • 2021-12-11
  • 2021-04-09
猜你喜欢
  • 2021-11-01
  • 2021-05-05
  • 2021-10-15
  • 2021-05-24
  • 2021-12-23
相关资源
相似解决方案