图神经网络(一)图信号处理与图卷积神经网络(2)图信号与图的拉普拉斯矩阵
图神经网络(一)图信号处理与图卷积神经网络(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=∑jAij表示的是节点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)−10ifI=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)−10ifI=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)图信号与图的拉普拉斯矩阵相关推荐
- 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )
文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...
- 卷积神经网络学习路线(五)| 卷积神经网络参数设置,提高泛化能力?
前言 这是卷积神经网络学习路线的第五篇文章,主要为大家介绍一下卷积神经网络的参数设置,调参技巧以及被广泛应用在了哪些领域,希望可以帮助到大家. 卷积神经网络的参数设置 这个举个例子来说是最好的,因为直 ...
- 卷积神经网络基础:(6)卷积神经网络原理
目录 1.卷积网络与传统网络的区别 2.整体架构 3.卷积操作 4.卷积涉及的参数 5.卷积计算公式: 6.卷积参数中的重要特点 7.池化层作用 8.整体网络架构 9.特征图变化 10.感受野 1. ...
- 【数据挖掘】卷积神经网络 ( 视觉原理 | CNN 模仿视觉 | 卷积神经网络简介 | 卷积神经网络组成 | 整体工作流程 | 卷积计算图示 | 卷积计算简介 | 卷积计算示例 | 卷积计算参数 )
文章目录 I . 人类的视觉原理 II . 卷积神经网络 模仿 视觉原理 III . 卷积神经网络简介 IV . 卷积神经网络 组成 V . 卷积神经网络 工作流程 VI . 降低样本参数数量级 VI ...
- 卷积神经网络的结构_射击训练:卷积神经网络识别解剖结构标志位点
本文2100字,阅读大约需要7分钟 在医学图像分析中,我们需要识别解剖结构的标志位点,识别出的位点可用于临床分析以及解剖结构分割等用途.深度学习的发展,给这样的方法带来了一些新的可能,已有不少的研究. ...
- 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战
1 深层卷积神经网络概述 1.1 深层卷积神经网络模型结构图 1.1.1 深层卷积神经网络的正向结构构成剖析 输入层,将每个像素作为一个特征节点输入网络. 卷积层:由多个滤波器组合而成. 池化层:将卷 ...
- CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)
CNN 卷积网络 说明 卷积 Convolution 填充 Padding 步长 Stride RGB图像卷积 池化 Pooling 完整CNN 为什么人们喜欢用卷积神经网络? 实例分析 说明 关于C ...
- 卷积神经网络( CNN)与全卷积神经网络(FCN)
目录 卷积神经网络(CNN) 卷积层 卷积层尺寸的计算原理 标准卷积计算举例 1 x 1 卷积计算举例 全连接层计算举例 附:TensorFlow 中卷积层的简单实现 激励层 池化层 池化层的作用 输 ...
- bilinear 神经网络_基于多尺度双线性卷积神经网络的多角度下车型精细识别
[1] 许可.基于卷积神经网络的细粒度车型识别[D]. 哈尔滨:哈尔滨工程大学, 2015:1. (XU K. Fine grained vehicle identification based on ...
- 利用python卷积神经网络手写数字识别_卷积神经网络使用Python的手写数字识别
为了使机器更智能,开发人员正在研究机器学习和深度学习技术.人类通过反复练习和重复执行任务来学习执行任务,从而记住了如何执行任务.然后,他大脑中的神经元会自动触发,它们可以快速执行所学的任务.深度学习与 ...
最新文章
- UTRAN 的用户面和控制面
- [老贴]《asp.net高级编程》读书笔记(2)
- retinaface训练笔记
- 华为p30是不是鸿蒙芯片,鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史...
- mit risc-v 资料
- 数学建模——K-means聚类模型Python代码
- java的lookAndfeel_java-LookAndFeel行为之间的区别
- 【Java】Object基类
- jQuery html表格排序插件:tablesorter
- JAVA多线程-CountDownLatch计数器
- 程序员最想要十八般武艺俱全的“保姆型”项目经理!
- NYOJ --25--A Famous Music Composer
- JavaScript模块化编程之AMD
- PHP的压力测试工具ab.exe 和mpm介绍提高并发数
- HTML:如何创建表格
- 系统找不到指定路径,网络编程
- SpringBoot简单实现上传图片到七牛云
- 双纵坐标绘图-Plotyy
- 计算机屏幕自己动,ipad屏幕失灵自己乱跳怎么办【图文】
- java mysql 分区表_mysql 分区有实用价值吗?