图神经网络(一)图信号处理与图卷积神经网络(2)图信号与图的拉普拉斯矩阵

 给定图G=(V,E)G=(V,E)G=(V,E),V表示图中的节点集合,假设其长度为NNN,图信号是一种描述V→RV→RV→R的映射,表示成向量的形式:x=[x1,x2,…,xN]Tx=[x_1,x_2,…,x_N]^{\rm T}x=[x1​,x2​,…,xN​]T,其中xix_ixi​表示的是节点viv_ivi​上的信号强度,如图1-1所示,其中竖线长度表示节点上信号值的大小:

图1-1 图信号示例

 与离散时间信号不同,图信号是定义在节点上的信号,而节点之间有自己固有的关联结构。在研究图信号性质的时候,处理要考虑图信号的强度之外,还需要考虑图的拓扑结构,不同图上同一强度的信号,具有截然不同的性质。

拉普拉斯矩阵(Laplacian Matrix)是用来研究图的结构性质的核心对象,拉普拉斯矩阵的定义如下:L=D−AL=D-AL=D−A,DDD是一个对角矩阵,Dii=∑jAijD_{ii}=∑_jA_{ij}Dii​=∑j​Aij​表示的是节点viv_ivi​的度。拉普拉斯矩阵的元素级别定义如下:

Lij={deg⁡(vi)ifI=j−1ifeij∈E0otherwiseL_{ij}=\begin{cases} deg⁡(v_i) &\text{if}\quad I=j\\ -1 &\text{if}\quad e_{ij}\in E\\ 0 &\text{otherwise} \end{cases} Lij​=⎩⎪⎨⎪⎧​deg⁡(vi​)−10​ifI=jifeij​∈Eotherwise​

 拉普拉斯矩阵还有一种正则化的形式(symmetric normalized laplacian)Lsym=D−1/2LD−1/2L_{\text{sym}}=D^{-1/2} LD^{-1/2}Lsym​=D−1/2LD−1/2,元素级别定义如下:

Lsym={1ifI=j−1(deg⁡(vi)deg⁡(vj)ifeij∈E0otherwiseL_{\text{sym}}=\begin{cases} 1&\text{if}\quad I=j\\ \frac{-1}{\sqrt{(deg⁡(v_i )deg⁡(v_j )}}&\text{if}\quad e_{ij}\in E\\ 0 &\text{otherwise} \end{cases} Lsym​=⎩⎪⎪⎨⎪⎪⎧​1(deg⁡(vi​)deg⁡(vj​)​−1​0​ifI=jifeij​∈Eotherwise​

 拉普拉斯矩阵的定义来源于拉普拉斯算子,拉普拉斯算子是nnn维欧式空间中的一个二维微分算子:∆f=∑i=1n∂2f∂xi2∆f=∑_{i=1}^n\frac{∂^2f}{∂x_i^2}∆f=∑i=1n​∂xi2​∂2f​ 。如果将该算子的作用域退化到离散的二维图像空间,就成了我们非常熟悉的边缘检测算子,其作用原理如下:
∆f(x,y)=∂2f(x,y)∂x2+∂2f(x,y)∂y2=[(f(x+1,y)−f(x,y))−(f(x,y)−f(x−1,y))]+[(f(x,y+1)−f(x,y))−(f(x,y)−f(x,y−1))]=[(f(x+1,y)+f(x−1,y))+(f(x,y+1)−f(x,y−1))]−4f(x,y)\begin{aligned}∆f(x,y)&=\frac{∂^2 f(x,y)}{∂x^2} +\frac{∂^2f(x,y)}{∂y}^2\\ &=[(f(x+1,y)-f(x,y))-(f(x,y)-f(x-1,y))] +[(f(x,y+1)-f(x,y))-(f(x,y)-f(x,y-1))]\\ &=[(f(x+1,y)+f(x-1,y))+(f(x,y+1)-f(x,y-1))]-4f(x,y)\end{aligned}∆f(x,y)​=∂x2∂2f(x,y)​+∂y∂2f(x,y)​2=[(f(x+1,y)−f(x,y))−(f(x,y)−f(x−1,y))]+[(f(x,y+1)−f(x,y))−(f(x,y)−f(x,y−1))]=[(f(x+1,y)+f(x−1,y))+(f(x,y+1)−f(x,y−1))]−4f(x,y)​

 在处理图像的时候,上式中的算子会被表示成模板的形式:

 从模板中我们可以直观地看到,拉普拉斯算子也被用来描述中心节点与邻居节点之间的信号的差异。

 同理,在图信号中,拉普拉斯算子也被用来描述中心节点与邻居节点之间的信号差异,这从下式中可以看出:
Lx=(D−A)x=[⋯,∑vj∈N(vj),⋯]L\boldsymbol x=(D-A)\boldsymbol x=[\dotsb, \sum_{v_j\in N(v_j)}, \dotsb]Lx=(D−A)x=[⋯,vj​∈N(vj​)∑​,⋯]
 由此可知,拉普拉斯矩阵是一个反映图信号局部平滑度的算子。更进一步来说,拉普拉斯矩阵可以让我们定义一个非常重要的二次型:
xTLx=∑vi∑vj∈N(vi)xi(xi−xj)=∑eij∈E(xi−xj)2\boldsymbol x^\text{T}L\boldsymbol x=∑_{v_i}∑_{v_j∈N(v_i)}x_i(x_i-x_j )=∑_{e_{ij}∈E}(x_i-x_j )^2xTLx=vi​∑​vj​∈N(vi​)∑​xi​(xi​−xj​)=eij​∈E∑​(xi​−xj​)2
 令TV(x)=xTLx=∑eij∈E(xi−xj)2TV(\boldsymbol x)=\boldsymbol x^\text{T} L\boldsymbol x=∑_{e_{ij}∈E}(x_i-x_j)^2TV(x)=xTLx=∑eij​∈E​(xi​−xj​)2,我们称TV(x)TV(\boldsymbol x)TV(x)为图信号的总变差(Total Variation)。总变差是一个标量,它将各条边上信号的差值进行加和,刻画了图信号整体的平滑度。

参考文献
[1] 刘忠雨, 李彦霖, 周洋.《深入浅出图神经网络: GNN原理解析》.机械工业出版社.

图神经网络(一)图信号处理与图卷积神经网络(2)图信号与图的拉普拉斯矩阵相关推荐

  1. 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )

    文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...

  2. 卷积神经网络学习路线(五)| 卷积神经网络参数设置,提高泛化能力?

    前言 这是卷积神经网络学习路线的第五篇文章,主要为大家介绍一下卷积神经网络的参数设置,调参技巧以及被广泛应用在了哪些领域,希望可以帮助到大家. 卷积神经网络的参数设置 这个举个例子来说是最好的,因为直 ...

  3. 卷积神经网络基础:(6)卷积神经网络原理

    目录 1.卷积网络与传统网络的区别 2.整体架构 3.卷积操作​ 4.卷积涉及的参数 5.卷积计算公式: 6.卷积参数中的重要特点 7.池化层作用 8.整体网络架构 9.特征图变化 10.感受野 1. ...

  4. 【数据挖掘】卷积神经网络 ( 视觉原理 | CNN 模仿视觉 | 卷积神经网络简介 | 卷积神经网络组成 | 整体工作流程 | 卷积计算图示 | 卷积计算简介 | 卷积计算示例 | 卷积计算参数 )

    文章目录 I . 人类的视觉原理 II . 卷积神经网络 模仿 视觉原理 III . 卷积神经网络简介 IV . 卷积神经网络 组成 V . 卷积神经网络 工作流程 VI . 降低样本参数数量级 VI ...

  5. 卷积神经网络的结构_射击训练:卷积神经网络识别解剖结构标志位点

    本文2100字,阅读大约需要7分钟 在医学图像分析中,我们需要识别解剖结构的标志位点,识别出的位点可用于临床分析以及解剖结构分割等用途.深度学习的发展,给这样的方法带来了一些新的可能,已有不少的研究. ...

  6. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战

    1 深层卷积神经网络概述 1.1 深层卷积神经网络模型结构图 1.1.1 深层卷积神经网络的正向结构构成剖析 输入层,将每个像素作为一个特征节点输入网络. 卷积层:由多个滤波器组合而成. 池化层:将卷 ...

  7. CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)

    CNN 卷积网络 说明 卷积 Convolution 填充 Padding 步长 Stride RGB图像卷积 池化 Pooling 完整CNN 为什么人们喜欢用卷积神经网络? 实例分析 说明 关于C ...

  8. 卷积神经网络( CNN)与全卷积神经网络(FCN)

    目录 卷积神经网络(CNN) 卷积层 卷积层尺寸的计算原理 标准卷积计算举例 1 x 1 卷积计算举例 全连接层计算举例 附:TensorFlow 中卷积层的简单实现 激励层 池化层 池化层的作用 输 ...

  9. bilinear 神经网络_基于多尺度双线性卷积神经网络的多角度下车型精细识别

    [1] 许可.基于卷积神经网络的细粒度车型识别[D]. 哈尔滨:哈尔滨工程大学, 2015:1. (XU K. Fine grained vehicle identification based on ...

  10. 利用python卷积神经网络手写数字识别_卷积神经网络使用Python的手写数字识别

    为了使机器更智能,开发人员正在研究机器学习和深度学习技术.人类通过反复练习和重复执行任务来学习执行任务,从而记住了如何执行任务.然后,他大脑中的神经元会自动触发,它们可以快速执行所学的任务.深度学习与 ...

最新文章

  1. UTRAN 的用户面和控制面
  2. [老贴]《asp.net高级编程》读书笔记(2)
  3. retinaface训练笔记
  4. 华为p30是不是鸿蒙芯片,鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史...
  5. mit risc-v 资料
  6. 数学建模——K-means聚类模型Python代码
  7. java的lookAndfeel_java-LookAndFeel行为之间的区别
  8. 【Java】Object基类
  9. jQuery html表格排序插件:tablesorter
  10. JAVA多线程-CountDownLatch计数器
  11. 程序员最想要十八般武艺俱全的“保姆型”项目经理!
  12. NYOJ --25--A Famous Music Composer
  13. JavaScript模块化编程之AMD
  14. PHP的压力测试工具ab.exe 和mpm介绍提高并发数
  15. HTML:如何创建表格
  16. 系统找不到指定路径,网络编程
  17. SpringBoot简单实现上传图片到七牛云
  18. 双纵坐标绘图-Plotyy
  19. 计算机屏幕自己动,ipad屏幕失灵自己乱跳怎么办【图文】
  20. java mysql 分区表_mysql 分区有实用价值吗?

热门文章

  1. python 映射和反映射_python映射类型的相关介绍
  2. windows 10下载链接
  3. Android studio中git密码记住的问题
  4. Unable to create '.git/index.lock': File exists
  5. 从ipa文件中导出图片
  6. Android仿微信高效压缩图片(libjpeg)
  7. 福禄克中国区高管:高精度和应用性是未来测试主要发展方向
  8. 浅谈MVC设计模式和SSH框架的关系
  9. 国产海量存储系统的新突破
  10. 关于域名解析到服务器的问题