[
f
1
(
t
)
⋆
f
2
(
t
)
]
=
F
1
(
ω
)
⋅
F
2
(
ω
)
(
3
)
\mathscr{F}[f_1(t)\star f_2(t)]=F_1(\omega)\cdot F_2(\omega) \qquad(3)
F[f1(t)⋆f2(t)]=F1(ω)⋅F2(ω)(3)
将
f
1
(
t
)
f_1(t)
f1(t) 定义为空间输入信号,
f
2
(
t
)
f_2(t)
f2(t) 定义为空间卷积核,将
F
1
(
ω
)
F_1(\omega)
F1(ω) 定义为频谱输入信号,
F
2
(
ω
)
F_2(\omega)
F2(ω) 定义为频谱卷积核。
公式(3) 展示了谱图卷积的实现,首先将空间信号转换到频谱域,得到频谱信号与频谱卷积核的乘积。然后可以对结果进行反图傅里叶变换,得到空间域的最终结果。
如上所述,空间域的卷积运算有序列顺序和固定维度的要求,这给处理图数据带来了困难。例如,给定一个卷积核尺寸3×3,定义核中心为中心元素,周围的邻域为感受野(receptive field)。在空间域,核尺寸是固定的。因此,对于输入数据的每个中心元素,3×3的核有八个邻域元素进行卷积运算,这表明感受野的大小必须是固定的。然而在图里,邻居的数量是不确定的,因此很难确定感受野的固定大小。此外,元素在图中的排列并不均匀。因此,很难给卷积核的步长指定一个单一的值。不过,谱域中可以利用每个频率的可调分量(adjustable component)来处理动态感受野。可调分量会随着感受野的变化而变化,因此可以建立一个适合频谱域动态情况的感受野。
3.3 典型谱域GNN Typical Spectral GNN
介绍典型的谱域GNN模型,回顾现有利用谱卷积策略的研究。
3.3.1 谱域CNN
Bruna等人[^38] 提出谱图卷积网络。使用自学习对角矩阵(self-learning diagonal matrix)代替谱域卷积核,文中修改了公式(3), 提出自学习参数集
g
θ
g_\theta
gθ。卷积核表示为:
X
⋆
G
g
θ
=
U
Λ
U
T
X
(
4
)
X\star_Gg_\theta=U\Lambda U^TX \qquad(4)
X⋆Ggθ=UΛUTX(4)
是各向异性卷积(anisotropic convolution)的离散化。
X
∈
R
N
X\in\mathbb{R}^N
X∈RN 为N维向量,
⋆
G
\star_G
⋆G表示图卷积,
U
U
U是包含特征向量的矩阵,
Λ
\Lambda
Λ是对角阵。文中利用自学习对角阵计算顶点的特征值。
谱域CNN有很多局限性。*首先是高时间复杂度,在图里,拉普拉斯矩阵的特征分解(feature decomposition)需要对所有元素进行,此外需要计算每次前向传播中
U
,
Λ
,
U
T
U,\Lambda,U^T
U,Λ,UT的乘积,特征向量矩阵
U
U
U的时间复杂度为
O
(
n
2
)
O(n^2)
O(n2),时间复杂度很高,尤其是对于一些大规模的图。另外,卷积核的参数数量取决于顶点数量*。因此这一方法不适合由大量顶点组成的图。
3.3.2 ChebNet
为了降低计算(或时间)复杂度,Defferrard等人[^39] 提出用切比雪夫多项式作为滤波器,利用多项式拟合来降低卷积核的时间复杂度。方案的关键在于定义切比雪夫多项式滤波器。公式(4) 的时间复杂度很高,要降低,Hammond等人[^40] 提出了自学习参数集
g
θ
g_\theta
gθ的多项式近似值,该值由截断的切比雪夫多项式展开得到:
g
θ
=
g
θ
(
Λ
)
=
∑
i
=
0
K
−
1
θ
i
T
k
(
Λ
~
)
(
5
)
g_\theta=g_\theta(\Lambda)=\sum_{i=0}^{K-1}\theta_iT_k(\tilde{\Lambda}) \qquad(5)
gθ=gθ(Λ)=∑i=0K−1θiTk(Λ~)(5)
Λ
~
\tilde{\Lambda}
Λ~为可调特征向量矩阵,对其进行调整以满足截断切比雪夫多项式的展开要求。
θ
i
\theta_i
θi是切比雪夫系数。
切比雪夫多项式服从递推关系:
T
k
(
x
)
=
2
x
T
k
−
1
(
x
)
−
T
k
−
2
(
x
)
T_k(x)=2xT_{k-1}(x)-T_{k-2}(x)
Tk(x)=2xTk−1(x)−Tk−2(x)
与谱域CNN相比,切比雪夫表达式是K-局部(K-localized)的,具有局部连通性,因为它是K次多项式。此外,切比雪夫表达式能识别卷积过程中最长的一步(与中心元素距离为K)。
T
k
(
Λ
~
)
T_k(\tilde{\Lambda})
Tk(Λ~)的时间复杂度为
O
(
∣
E
∣
)
O(|E|)
O(∣E∣),与边(edge)的数量E成正比。因此总的时间复杂度表示为
O
(
K
∣
E
∣
)
O(K|E|)
O(K∣E∣)。输入数据为稀疏图时,可以明显降低时间复杂度,比
O
(
n
2
)
O(n^2)
O(n2)小得多。
3.3.3 图卷积网络
基于谱卷积核切比雪夫模型,Kipf和Welling[^41] 提出图卷积网络(GCNs),也叫一阶ChebNet。GCN是GNN的基础模型,许多研究室基于GCNs来开发新的GNN模型。
[^41] 中有两个关键贡献:首先,与直接操作图结构数据的方案[^38-39] 相比,文中提出了一种基于一阶近似的简单近似层,简化了运算;其次,对图结构神经网络模型,验证其快速、可扩展地处理图相关数据的半监督分类。在一些现有公开数据集上,文中提出的方案的效率和准确性得到了验证。
图4展示了GCN的结构。
输入的是整个图。
在卷积层1(Convolution Layer 1)中,对每个节点的相邻节点进行卷积操作,并用卷积结果更新节点。
随后GCN对卷积结果采用激活函数(如ReLu)。
激活层的输出传递至另一卷积层和激活层,也就是第二个循环。
这一过程会重复,直到输出接近精度要求。
因此GCN可以增加卷积层的深度,从而使精度满足特定案例的需求。GCN有一个局部输出函数,用于将节点状态(包括隐藏状态和节点特特征)转换为任务相关的标签。
GCN一般有两种不同的任务:一种是节点级任务,例如社交媒体账户分类,主要是对不同的节点进行分类,每个社交媒体账户都是一个图中的节点;另一种是图层面的任务,例如化合物分类,主要是对不同的图进行分类,化合物可以形式化为图。
卷积操作侧重于更新单个节点的隐藏状态,从而提取节点特征[^42-44] 。为了聚合整张图的特征,GCN在卷积层之后采用了可微分池化[^45-46] ,这样,GCN就能提取节点特征,并利用软聚类(soft clustering)和节点特征来计算图的表示。基于图的表示,可以得到整个图的特征。
3.3.4 现有谱域卷积方案总结
基于谱域卷积策略的总结见原论文 表格2 ,比较了现有研究的任务、输入参数、输入数据、卷积层数、性能和时间复杂度。
四、空域卷积策略 Spatial Convolution Strategy
介绍空域卷积策略,首先是空域卷积的原理,然后回顾现有运用空域卷积的GNN模型,最后总结采用了空域卷积策略的现有研究。
4.1 空域图卷积 Spatial Graph Convolution
在使用谱图卷积策略时存在一些问题。
首先,谱图卷积策略不适合有向图(directed graphs)。尽管大多数现实世界的数据可以被形式化为无向图(undirected graphs),但有些交通数据或路由数据(routing data)能形式化为有向图,不允许使用图傅里叶变换,也不能将空间信息转换到频谱域。此外,由于拉普拉斯特征矩阵 U 的不变性(immutability),在训练过程中不能改变图的结构(如边的权重、节点的添加或删除)。然而,在包括社交网络数据在内的实际应用中,图是高度动态的。最后,谱 CNN 的计算密集且耗时,虽然 ChebNet 和 GCN 降低了时间复杂度,但它们只能处理少量参数,这是 ChebNet 和 GCN 的局限性。
因此,有一些研究侧重于空间卷积策略,倾向于将非欧几里得空间数据转换为欧几里得空间数据,以便直接进行卷积。
4.2 典型空域图神经网络 Typical Spatial Graph Neural Networks
介绍四种采用空域卷积的不同的神经网络。每种网络特征见原论文 表格3 。
4.2.1 图神经网络(GNN)
GNN将图转换为欧氏空间数据,并对数据进行一般卷积。在GNN中成功完成卷积分三步:
首先,确定每个节点的邻域。由于邻域节点在非欧几里得空间数据中是动态的,因此在定义卷积核之前必须先确定邻域。
其次,定义卷积核的场(field)。
最后,对场和卷积核中的相应元素进行内积,这与欧几里得空间中的卷积类似。
图5 给出了一个在欧几里得空间中采用3×3滤波器进行卷积,从原始图像中提取特征的例子。
图6 给出了一个使用GNN进行卷积的例子。
可以看出,在非欧几里得数据集的卷积过程中,滤波器没有固定的结构。滤波器的结构取决于邻域。
确定邻域是一个重要步骤。为此,Hechtlinger 等人[^93] 采用随机漫步(random walk) 的方法来确定图中的邻域。在他们的研究中,定义了以下参数:P 矩阵是随机行走过渡矩阵(即
P
i
j
P_{ij}
Pij 是节点 i 到节点 j 的过渡概率);S 矩阵是相似度矩阵,其元素表示图节点的相似程度;D 矩阵是度矩阵。给定图 G,P 可定义为
P
=
D
−
1
S
P=D^{-1}S
P=D−1S。此外,
p
k
p^k
pk 代表多步转换矩阵(multistep transition matrix),它的第
(
i
,
j
)
(i, j)
(i,j)个元素是随机漫步在 k 步内从节点 i 移动到节点 j 的概率。增加 k 的值会增大邻域的大小。
4.2.2 图采样和聚合(GraphSAGE)
Graph Sample and Aggregate (GraphSAGE)由Hamilton等人[^94] 提出,在该研究中,图卷积可以通过采样和聚合来实现。与 GNN 不同的是,聚合函数的输入顺序对 GraphSAGE 的结果没有影响,这意味着 GraphSAGE 可以处理无序的邻居节点。
GraphSAGE包括三个关键步骤:
- 通过采样获得固定数量的邻近节点;
- 利用聚合函数获得邻近节点的聚合信息,从而获得中心元素的特征;
- 利用邻近节点的聚合信息对中心元素的内容或标签进行分类或预测。
文中采用了均匀采样策略(uniform sampling strategy)来选择固定数量的邻居节点。在相连的一阶节点上重复均匀采样,即可获得包含固定数量节点的邻域。
此外,文中提出了三种聚合器:
第一个是均值聚合器(mean aggregator),由权重矩阵和非线性激活函数计算得出;第二个聚合器称为长短期记忆(long short-term memory,LSTM)聚合器,是均值聚合器的更新版本,在 LSTM 聚合器中,输入数据需要按顺序排列,也因此比均值聚合器显示出更强的表达能力;最后一个聚合器是池聚合器(pool aggregator),每个邻居的矢量都被完全输入到前向传播中,在前向传播之后,最大池聚合会聚合整个邻域的特征。
4.2.3 图注意力网络(GAT)
Veličković 等人[^95] 提出了一种图注意网络(Graph Attention Network,GAT),将注意力机制引入图卷积模型,并使用注意力机制来模拟节点之间的相关性。文中指出GNN和GraphSAGE的不足在于对所有节点采用相同的卷积核参数,这在某些情况下会影响最终结果,因为邻域内节点之间的关联度是不同的,有必要采用不同的卷积核参数来处理不同的节点。GAT的聚合过程表示为:
h
⃗
i
′
=
σ
(
1
K
∑
k
=
1
K
∑
j
∈
N
i
α
i
j
k
W
k
h
⃗
j
)
(
6
)
\vec{h}'_i=\sigma(\frac{1}{K}\sum_{k=1}{K}\sum_{j\in\mathscr{N}_i}\alpha_{ij}kW^k\vec{h}_j) \qquad(6)
h
i′=σ(K1∑k=1K∑j∈NiαijkWkh
j)(6)
α
i
j
k
W
k
h
⃗
j
\alpha_{ij}kWk\vec{h}_j
αijkWkh
j表示注意力机制。
W
W
W 为权重矩阵,
{
α
i
j
k
}
{\alpha_{ij}^k}
{αijk}为一组注意力机制系数,是一个单一的前向传播神经网络。此外,注意力机制还采用了 “LeakyReLU”非线性激活函数,该函数对负输入值具有较小的负线性斜率[^96]。
在定义了 GAT 的聚合过程后,Veličković 等人[^95] 利用 Cora、CiteSeer 和 PubMed 数据集评估了 GAT 的功效,实验结果证明了其分类能力。
4.2.4 分区图卷积(PGC)
在分区图卷积(Partition Graph Convolution,PGC)中,卷积过程被视为采样和权重函数。Yan等人[^97] 提出一种获得采样函数核权重函数的方案。采样函数在领域内选择采样节点,关键是要确定邻域,也就是采样区域。权重函数将邻域内的不同节点分为K组,同一组内共享卷积核参数,不跨组共享,这就减少了分享范围的大小,提高了最终准确率,文中定义了三种不同的分类方案:
第一种分类方案称为单标记(unilabeling),与GNN相同,将所有节点归为一组;第二种方案称为距离分类(distance classification),根据顺序对节点进行分类,中心元素为0阶,相邻元素为1阶,依此类推;最后一种方案为空间配置(spatial configuration),专门用于骨骼动作识别,方案定义了一个参考距离,根据的参考距离对不同的节点进行分类。
定义完两个函数,卷积函数可以表示为:
f
o
u
t
(
v
i
)
=
∑
v
j
∈
B
(
v
i
)
1
Z
i
(
v
j
)
f
i
n
(
v
j
)
⋅
W
(
l
i
(
v
j
)
)
f_{out}(v_i)=\sum_{v_j\in B(v_i)}\frac{1}{Z_i(v_j)}f_{in}(v_j)\cdot W(l_i(v_j))
fout(vi)=∑vj∈B(vi)Zi(vj)1fin(vj)⋅W(li(vj))
v
j
∈
B
(
v
i
)
v_j\in B(v_i)
vj∈B(vi)表示采样函数,以不同的顺序从节点
v
i
v_i
vi的距离-1邻居集
B
(
v
i
)
B(v_i)
B(vi)中进行采样。
Z
i
(
v
j
)
Z_i(v_j)
Zi(vj)是归一化系数,
W
(
⋅
)
W(\cdot)
W(⋅)是权重函数。与采用了均值采样的GraphSAGE相比,PGC因为定义了一个采样函数而对不同的情况更通用。
4.2.5 现有空域卷积方案总结
基于空域卷积策略的现有研究总结见原论文 表格4 ,比较了现有研究的任务、输入参数、输入数据、卷积层数、性能和时间复杂度。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!
v
j
∈
B
(
v
i
)
v_j\in B(v_i)
vj∈B(vi)表示采样函数,以不同的顺序从节点
v
i
v_i
vi的距离-1邻居集
B
(
v
i
)
B(v_i)
B(vi)中进行采样。
Z
i
(
v
j
)
Z_i(v_j)
Zi(vj)是归一化系数,
W
(
⋅
)
W(\cdot)
W(⋅)是权重函数。与采用了均值采样的GraphSAGE相比,PGC因为定义了一个采样函数而对不同的情况更通用。
4.2.5 现有空域卷积方案总结
基于空域卷积策略的现有研究总结见原论文 表格4 ,比较了现有研究的任务、输入参数、输入数据、卷积层数、性能和时间复杂度。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-pPhNwAMt-1712334851487)]
[外链图片转存中…(img-suzagbjy-1712334851488)]
[外链图片转存中…(img-L1JQCWev-1712334851489)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
[外链图片转存中…(img-buqSHDXE-1712334851490)]
[外链图片转存中…(img-OdEUa9xg-1712334851492)]
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!