全宇宙最详细:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 文中所有的数学公式解析

零:类比 CNN

  • 可以先自己看论文,遇到公式推导的时候翻上来看这部分就可以

CNN 平移不变性

引文:卷积神经网络为什么具有平移不变性?

  • 不变性意味着即使目标的外观发生了某种变化,但是你依然可以把它识别出来
  • 下图只是一个为了说明这个问题的例子。输入图像的左下角有一个人脸,经过卷积,人脸的特征(眼睛,鼻子)也位于特征图的左下角。
    在这里插入图片描述
  • 假如人脸特征在图像的左上角,那么卷积后对应的特征也在特征图的左上角。
    在这里插入图片描述
  • 在神经网络中,卷积被定义为不同位置的特征检测器,也就意味着,无论目标出现在图像中的哪个位置,它都会检测到同样的这些特征,输出同样的响应。比如人脸被移动到了图像左下角,卷积核直到移动到左下角的位置才会检测到它的特征。
  • CNN 处理的 img 是非常规整的二维矩阵,即所有点的邻域个数都是相等的(边缘的点也可以通过填补来变成相等的),但是对于拓扑图 graph 来说,不满足平移不变的特性。

Graph 的特征提取操作

因为不具有平移不变性,所以不能直接进行常规的类似于 Img 的 CNN 特征提取,所以主要通过 空域特征提取频域特征提取 两种

  • 通过空域进行特征提取 vertex domain(spatial domain),很直观,直接用相应顶点连接的 neighbors来提取特征。http://proceedings.mlr.press/v48/niepert16.pdf
    在这里插入图片描述

  • 频域方法(谱方法)spectral domain 提取特征的方式就是本博客中使用的方法,即:GSP(graph signal processing)。GSP(graph signal processing)图形信号处理的方法,即在图上进行信号处理的变换,如傅立叶变换或者拉普拉斯变换,进而进行图的卷积,从而提取图的特征,然后运用信号处理的方法去分析与处理Graph的特征。借助于图的拉普拉斯矩阵的特征值和特征向量来研究 Graph 的性质。

SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 公式分析:

一、图卷积公式解析

Graph 卷积的频域卷积方法

  • 将图 graph 和 卷积核 filter 都通过傅里叶变换转到频域
  • 将两个矩阵的频域数据进行相乘
  • 将相乘后的结果进行傅里叶反变换到时域就得到了图卷积的结果(时域卷积=频域相乘)

傅里叶变换的本质

考虑一下传统的傅里叶变换的形式:
在这里插入图片描述
傅里叶变换的本质,就是通过将一个函数后面乘以一个基 e − i w t e^{-iwt} eiwt,将其转化到以这个基定义的空间内,然后根据其离散或者连续的情况决定前面到底是积分 ∫ \int 还是求和符号 ∑ \sum ;其中每一个 f ( t ) e − i w t f(t)e^{-iwt} f(t)eiwt 项,这些相乘的过程完成的都是一个时域的分量转换到频域的过程;最后叠加起来的结果就是整个时域的分量全部转化到傅里叶域。

矩阵相乘的本质

两个不同的矩阵相乘,其本质是对矩阵的基底线性变换;这个概念不了解的可以去仔细思考一下矩阵乘法的根本含义。下面做简单解释~

下图(1)可以看到,对于一个矩阵进行乘运算,其实是作用在基底上,把基底变长了 2 倍,然后表现在整个被基底表示的向量 v ⃗ 3 \vec{v}_3 v 3 上,所以看起来是向量扩展了三倍;

如果一个矩阵被另外一个矩阵相乘,如图(2)所示,就会按照图中紫色矩阵的方式来对 v ⃗ 3 \vec{v}_3 v 3 的进行变换,本质是对 v ⃗ 3 \vec{v}_3 v 3 的两个基底 v ⃗ 1 \vec{v}_1 v 1 v ⃗ 2 \vec{v}_2 v 2的变换, v ⃗ 3 \vec{v}_3 v 3只不过是被映射后的基底重新构造的在新的空间中的向量。

在这里插入图片描述
图(1):通过常数对矩阵进行变换

在这里插入图片描述
图(2):通过矩阵对矩阵进行变换

结合前面提到的傅里叶变换的本质,我们发现,只要找到一个正交矩阵(矩阵中的每列都是正交的)那么也就可以通过把 “图矩阵” 与这个正交矩阵相乘来实现把图矩阵转换到另外一个

为什么对图 G(V, E) 的拉普拉斯矩阵做文章

图 graph 是个逻辑概念,只能通过度矩阵和邻接矩阵联合来表示一个逻辑的图 G ( V , E ) G(V, E) G(V,E)

  • V V V 是图中的定点集合
  • E E E 是图中的边的集合
  • 因为对于无向图的拉普拉斯矩阵的特征矩阵就是一个正交矩阵,刚好其中的每个向量满足正交的条件,所以我们只要通过构造图的拉普拉斯矩阵,然后再求它的特征矩阵,就可以把图矩阵和这个特征矩阵相乘,实现把图矩阵转换到另外一个域上的任务。

自己做了一张图,帮助大家理解拉普拉斯矩阵的性质
在这里插入图片描述

拉普拉斯矩阵的定义和图 graph 矩阵的关系:
在这里插入图片描述

拉普拉斯矩阵和傅里叶变换的关系

前面提到了:传统的傅里叶变换的基就是拉普拉斯矩阵的一组特征向量
所以,求出拉普拉斯矩阵的特征向量 就可以对图矩阵进行傅里叶变换了。
拉普拉斯变换 L L L 和其特征矩阵 U U U 之间的推导关系如下:
在这里插入图片描述

  • 特征矩阵 U U U 包含了 n n n 个特征向量 [ u 1 ⃗ . . . . u n ⃗ ] [\vec{u_1}.... \vec{u_n}] [u1 ....un ]
  • U U U 也是正交矩阵,满足 U U T = E UU^T=E UUT=E 所以 U U U 矩阵满足作为傅里叶变换基的条件(傅里叶变换的基要求是正交的)
  • Λ \Lambda Λ L L L 的特征值组成的对角矩阵

此时我们又知道,拉普拉斯变换矩阵的特征矩阵 U U U 是傅里叶变换的基:

  • 我们现在得到了拉普拉斯矩阵的特征矩阵 U = [ u 1 , u 2 , ⋅ ⋅ ⋅ , u n ] U=[u_1,u_2,···,u_n] U=[u1,u2,,un] 包含 n n n 个特征向量。
  • 而全图 graph (用 x x x 来表示) 有 n n n 个顶点,每个顶点上的信号可以用 f ( 1 ) . . . f ( n ) f(1)...f(n) f(1)...f(n) 来表示: [ f ( 1 ) , . . . . , f ( n ) ] [f(1),....,f(n)] [f(1),....,f(n)]

对一个图 graph 通过矩阵相乘完成域转换

我们再用一张图来表示图中一个顶点实现域转换的过程
在这里插入图片描述

  • 那么每一个特征向量都可以作为一个基来将一个顶点的信号从时域搬到频域;即: f ( i ) ⋅ u l ( i ) f(i) · u_l(i) f(i)ul(i) 这里的 l l l 可以理解成特征矩阵中的第 l l l 行,即正交基底中的第 l l l 个频率分量
    在这里插入图片描述

  • graph上的 N N N 维向量为 f f f,每个顶点的信号为 f ( i ) f(i) f(i)

  • l l l 个特征向量的第 i i i 个分量为 u l ( i ) u_l(i) ul(i),这个既是傅立叶变换的基也是拉普拉斯矩阵的特征向量

  • 特征值频率为 λ l \lambda_l λl

  • 复数空间的内积采用了 u l ∗ ( i ) u_l^*(i) ul(i) ,也就是特征向量 u l u_l ul 的共轭

结合上面所有的内容应该不难得出结论:普通的傅里叶变换 ∫ f ( t ) e − i w t d t \int{f(t)e^{-iwt}dt} f(t)eiwtdt 应用到矩阵中,可以将特征矩阵 U U U 看成一个基与图矩阵 x x x 相乘,特征矩阵中的特征向量会 u l ∗ ( i ) u_l^*(i) ul(i) 会与图矩阵中的 f ( i ) f(i) f(i) 相乘并作求和运算,所以 U T x U^T x UTx 则可以代表 graph 实现域转换的过程;

对卷积核 g 通过矩阵相乘完成域转换

同样的,如果 filter 的矩阵是 g g g,那么其实现域转换之后的表示应该是 U T g U^T g UTg;具体解释可以看下图:
在这里插入图片描述

对转换到频域的卷积核 g 和 graph 进行相乘并反变换到时域

在这里插入图片描述

做个阶段性的小总结:

在这里插入图片描述

如何把 λ 和傅里叶变换的频率 ω \omega ω 联系起来(如何理解用 λ 来表示频域中图的分量)

在这里插入图片描述

二、切比雪夫多项式近似部分的公式推导

用切比雪夫多项式 k 阶截断来近似 g θ g_θ gθ 结果(k=1)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从切比雪夫用于卷积核 g θ g_θ gθ 的近似迁移到对图卷积结果的整体近似

  • 即以下公式表示的过程
    在这里插入图片描述
    这个公式的推导过程如下:
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
所以我们最终得出结论:

  • 经过切比雪夫多项式近似后的卷积核变换结果是
    在这里插入图片描述

  • 经过切比雪夫多项式近似后的整个图卷积的结果是:
    在这里插入图片描述

三、卷积层公式推导

前人研究的方法,k = 1

在这里插入图片描述
不要忘记 k = 1 的时候,切比雪夫多项式的性质:
在这里插入图片描述

本文的研究方法

  • 沿用了 k = 1 的尝试
  • 开创了 λ m a x ≈ 2 \lambda_{max} \approx 2 λmax2 的尝试

在这里插入图片描述

在这里插入图片描述
所以,按照本文的方法,卷积公式通过切比雪夫多项式近似后的结果可以表示为:
在这里插入图片描述
在这里插入图片描述

对参数的进一步简化尝试

在这里插入图片描述
在这里插入图片描述

简化后的问题

在这里插入图片描述

解决方法:为了解决梯度爆炸引入图的自环

  • 目的是归一化,将特征值的范围重新限定在 [-1,1] 之间:
    在这里插入图片描述

通过以上所有的努力,我们终于可以得到最终稳定而又简洁的化简结果:
在这里插入图片描述

结果:单个卷积核的快速卷积公式

在这里插入图片描述
至此:我们得到了一次卷积的结果,即:单通道的卷积核对图的卷积操作。

通过特征映射把单个卷积核(滤波器)扩展到多个

如果我们把这个过程进行推广:
在这里插入图片描述

思路整理

梳理一下上面整个过程的思路:
在这里插入图片描述

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
FIR线性相位滤波器设计程序 FIR Linear Phase Filter Design Program ============================================= 编译命令: gfortran *.for (i1mach.for中定义了4个标准输入输出设备号:1输入:键盘;2输出:显示;3打印;4信息:显示) 编译输出: a.out/a.exe : 编译过程中会报告“警告”信息,可不理会 运行文件: a.out/a.exe < input.txt 输入采用归一化滤波器参数来设计滤波器。 编译环境: 在Windows中,程序使用MinGW环境编译。 在ubuntu linux中,程序使用build-essential环境编译,需要下载gfortran。 f2c是一个开源的fortran到c的转换软件,如果不想混合编程的话,可以用它。 ============================================= 这是1976年IEEE组织编辑出版的《IEEE电气工程师 数字信号处理 FORTRAN程序库》的FORTRAN源码之一。整个程序库总计33个源码文件,将陆续上传。 在上传之前,我对程序的执行结果做了初步校对。感兴趣的朋友可以参照程序库的影印版进行全面校对,并欢迎反馈结果。 该程序库的影印版参见http://download.csdn.net/download/wuyijun2010/2718795。 一些程序跟程序库的打印稿略有出入,主要是使用了一些小的函数,如i1mach.for等,并不对程序的完整性产生影响。 Fortran语言已经比较古老了。许多人不屑于使用它,认为不如C/C++好用。 其实,Fortran语言非常经典。使用Fortran编程,你大可不必关心诸如“指针、内存分配、数组越界”等等易错的问题。 学好Fortran编程,并不比学好C花更多时间,甚至更短。 最主要的,它是科学计算的主要程序语言。你不会拿一个算法的C程序去发表吧。 ============================================= 该书出版后的三十五年后的今天,这些算法仍然占据着数字信号处理领域的重要位置。即使今天的处理器速度已经今非昔比,这些精炼高效的程序仍然非常有效,因为算法的实现方式直接关系到系统成本。 同期还出版了由奥本海姆和谢弗合著的《数字信号处理》一书。今天这仍是一本关于数字信号处理方法的经典著作。作者在绪论中提到的应用几乎包括了现代信息处理的各个领域。一些领域的信号处理依靠传统模拟设备是不可能实现的。由于器件速度限制,当时的数字信号处理大多还不能实时实现。尽管如此,抱着数字化系统终将付诸现实的信念,人们积极地开始了对各种数字系统的研究工作。 今天,越来越多的数字信号处理系统不仅能够实时实现,而且已经成为了各种设备的核心。很多设备,只有在输入输出端口,才进行数字到模拟之间的转换,内部则完全是数字处理系统。 因此,掌握数字信号处理知识和方法,应该是每个电子工程师必备的。 ============================================= 摘录前言 <1976年出版> 在过去的十五年里,数字信号处理已极其活跃。 数字信号处理进展的重要方面是算法和这些算法程序的具体化。 本程序分为八章,每章部有专门的提要。 第一章中重点叙述了离散付里叶变换(DFT)并且给出了各种快速付里叶变换(FFT)及其有关的算法。 第二章中包括了功率谱估计的周期图和相关法算法以及相关谱估计和互谱估计的算法。 第三章中是以快速FFT为基础的卷积程序。 第四章中给出了有关线性预测信号处理技术的几种算法,包括自相关法,协方差法和格点法。 第五章中主要阐述了有限冲激响应(FIR)数字滤波器的设计与综合。 第六章中给出了有关无限冲激响应(IIR)数字滤波器设计程序的综合资料。 第七章里叙述了倒谱和同态算法,侧重于同态系统相位计算的难点。 第八章里给出了有关内插和抽取的几个程序。 本书是在1976年初,由IEEE声学、语言学以及信号处理学会所组成的数字信号处理委员会,着手进行的一项计划的结晶。 本书所有程序符合下列要求: (1)必须包括全部用户文件。 (2)程序必须用FORTRAN语言,并且符合ANSI FORTRAN标准。 (3)编码应全部注释并已经排除错误,尽可能地清晰,明撩。 (4)编码应能传送,并且与机器无关。 (5)应提供有关输入,输出综合调试实例。 程序的可移植性在这项计划里是很重要的目的。 特别注意了保证精度,明撩以及材料的一致性。 所有程序编码的列表,直接从中央收集计算机可读源材料中打印出。 作者的文件手稿打入计算机系统之后,迸行最后的编辑和校正。 书中全部打印材料由计算机带动的照相排版机得到。 =============================================
ex020100 信号合成 ex020200 信号合成 ex020300 复数序列的信号合成 ex020400 奇偶合成 ex020500 卷积计算 ex020600 卷积的图解 ex020700 卷积计算 ex02070b 卷积计算 ex020800 互相关计算 ex020700 卷积计算 ex020900 解差分方程 ex021000 解差分方程 例3.1~例3.2 求离散付利叶变换 ex030300 例3.1中x(n)=(0.9)n 的频谱曲线绘制 ex030400 用矩阵-向量乘法求有限长序列的DTFT ex030500 x(n)=(exp(jπ/3))n 的频谱及其周期性 ex030600 x(n)=2n 的离散付利叶变换及其共轭对称性 ex030700 DFDT 线性性(3.5)的验证 ex030800 DFDT 时域移位性(3.6)的验证 ex030900 DFDT 频域移位性(3.7)的验证 ex031000 DFDT 共轭性(3.8)的验证 ex031100 DFDT 折叠性(3.9)的验证 ex031200 DFDT 对称性(3.10)的验证 ex031300 脉冲函数为h(n)=(0.9)nu(n) 的系统的频谱曲线 ex031400 系统稳态输出的计算 ex031500 以差分方程表示的系统的频谱函数和稳态输出的计算 ex031600 以差分方程表示的滤波器的频谱函数的计算 ex031700 求付利叶变换及绘制曲线 ex031800 不同采样频率对频谱曲线的影响 ex031900 用例3.18a中的x(n)重构x(t) ex032000 用例3.18b中的x(n)重构x(t) ex032100 用ZOH和FOH把例3.18中的x(n)重构为x(t) ex032200 用spline函数把例3.18中的x1(n)和x2(n)重构为xa(t) 例4.1~例4.3 求z变换(须用MATLAB中的symbolic工具箱) 例4.4~例4.6 用其他方法求z变换 例4.7 求z反变换 ex040800 检验residuez函数 ex040900 求z反变换 ex041000 求不带复数的z反变换 ex04100a 求不带复数的z反变换 ex041100 由差分方程求零-极点及频率响应 例4.12 由离散传递函数求脉冲过度函数 ex041300 由差分方程求系统函数及脉冲响应 ex050200 宽度L周期N的周期性方波的离散付利叶曲线 ex050500 不同的离散付利叶采样密度对应的时域曲线 ex050600 离散付利叶变换计算 ex050700 例5.6取不同周期所得离散付利叶曲线 ex050800 高密度和高分辨频谱的差别 ex050900 循环折叠特性的检验 ex051000 循环奇偶分解特性(5.34)的检验 ex051100 循环移位特性的检验 ex051200 循环移位特性的检验 ex051300 循环卷积的计算 ex051400 循环卷积的计算 ex051500 周期N对循环卷积的影响 ex051600 循环卷积和线性卷积的比较 ex051700 周期N对循环卷积的影响 ex051800 用重叠保留法计算循环卷积 ex051900 用重叠保留法计算循环卷积 ex052000 四点FFT计算 ex052100 1<N<2048点FFT执行时间的比较 ex052200 1<L<150点快速卷积与FFT的执行时间比较 ex060100 级联形式转换 ex060200 并联形式转换 ex060300 混合形式转换 例6.4 线性相位系统的级联形式 例6.5 线性相位系统的无复数级联形式 ex060600 给定h(n),求其频率采样形式 ex060700 求频率采样形式并与线性相位形式相比较 例6.8 由差分方程求格型形式 例6.9 由全极点形式求格型形式 例6.10 由零-极点形式求梯形-格型形式 例7.1~例7.2 滤波器相对指标与绝对指标的转换 ex070300 振幅响应和幅度响应 ex070400 1-型线性相位FIR滤波器 ex070500 2-型线性相位FIR滤波器 ex070600 3-型线性相位FIR滤波器 ex070700 4-型线性相位FIR滤波器 ex070800 低通滤波器设计 - 哈明窗 ex070900 低通滤波器设计 - 凯泽窗 ex071000 带通滤波器设计 - 布莱克曼窗 ex071100 带阻滤波器设计 - 凯泽窗 ex071200 差分器设计 - 哈明窗
1.全主元高斯约当消去法2.LU分解法3.追赶法4.五对角线性方程组解法5.线性方程组解的迭代改善6.范德蒙方程组解法7.托伯利兹方程组解法8.奇异值分解9.线性方程组的共轭梯度法10.对称方程组的乔列斯基分解法11.矩阵的QR分解12.松弛迭代法第2章插值1.拉格朗日插值2.有理函数插值3.三次样条插值4.有序表的检索法5.插值多项式6.二元拉格朗日插值7.双三次样条插值第3章数值积分1.梯形求积法2.辛普森求积法3.龙贝格求积法4.反常积分5.高斯求积法6.三重积分第4章特殊函数1.г函数、贝塔函数、阶乘及二项式系数2.不完全г函数、误差函数3.不完全贝塔函数4.零阶、一阶和任意整数阶的第一、二类贝赛函数5.零阶、一阶和任意整数阶的第一、二类变形贝赛函数6.分数阶第一类贝赛尔函数和变形贝赛尔函数7.指数积分和定指数积分8.连带勒让德函数第5章函数逼近1.级数求和2.多项式和有理函数3.切比雪夫逼近4.积分和导数的切比雪夫逼近5.有切比雪夫逼近函数的多项式逼近第6章特征值问题1.对称矩阵的雅可比变换2.变实对称矩阵为三对角对称矩阵3.三对角矩阵的特征值和特征向量4.变一般矩阵为赫申伯格矩阵5.实赫申伯格矩阵的QR算法第7章数据拟合1.直线拟合2.线性最小二乘法3.非线性最小二乘法4.绝对值偏差最小的直线拟合第8章方程求根和非线性方程组的解法1.图解法2.逐步扫描法和二分法3.割线法和试位法4.布伦特方法5.牛顿拉斐森法6.求复系数多项式根的拉盖尔方法7.求实系数多项式根的贝尔斯托方法8.非线性方程组的牛顿拉斐斯方法第9章函数的极值和最优化1.黄金分割搜索法2.不用导数的布伦特法3.用导数的布伦特法4.多元函数的下山单纯形法5.多元函数的包维尔法6.多元函数的共轭梯度法7.多元函数的变尺度法8.线性规划的单纯形法第10章傅里叶变换谱方法1.复数据快速傅里叶变换算法2.实数据快速傅里叶变换算法一3.实数据快速傅里叶变换算法二4.快速正弦变换和余弦变换5.卷积和逆卷积的快速算法6.离散相关和自相关的快速算法7.多维快速傅里叶变换算法第11章数据的统计描述1.分布的矩——均值、平均差、标准差、方差、斜差和峰态2.中位数的搜索3.均值与方差的显著性检验4.分布拟合的X平方检验5.分布拟合的K-S检验法第12章解常微分方程组1.定步长四阶龙格库塔法2.自适应变步长的龙格库塔法3.改进的中点法4.外推法第13章偏微分方程的解法1.解边值问题的松驰法2.交替方向隐式方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值