GNN笔记系列 4
本篇文章会专门介绍神经网络。
1.Review
2.Learning with a Graph Convolutional Filter
当输出不是图信号时,在滤波器的输出层添加一个readout层来匹配维数。
即引入一个m行n列的矩阵readout 矩阵A,并使用参数化:
3.Graph Neural Networks(GNNs)
3.1 Pointwise Nonlinearities
点态非线性:
当一个函数作用于一个向量x就是作用域于向量x的每一个分量时,称为点态。如果这个函数是非线性函数,那么就是非线性作用。可以用下图更好说明:
点态非线性是作用于向量x的最简单的非线性函数。点态非线性函数用于卷积和非卷积神经网络。
R
e
L
U
:
σ
(
x
)
=
m
a
x
(
0
,
x
)
ReLU:\sigma(x)=max(0,x)
ReLU:σ(x)=max(0,x)
t
a
n
h
:
σ
(
x
)
=
e
2
x
−
1
e
2
x
+
1
tanh: \sigma(x)=\frac{e^{2x}-1}{e^{2x}+1}
tanh:σ(x)=e2x+1e2x−1
绝对值
:
σ
(
x
)
=
∣
x
∣
绝对值: \sigma(x)=|x|
绝对值:σ(x)=∣x∣percepttron:感知器
为了定义一个GNN,引入几个图感知器,对其进行分层:
Layer 1:
输入信号x,感知器h1=[h
10
_{10}
10,…,h
1
,
K
−
1
_{1,K-1}
1,K−1],输出x
1
_{1}
1.
x
1
=
σ
[
z
1
]
=
σ
[
∑
k
=
0
K
−
1
h
1
k
S
k
x
]
x_1=\sigma[z_1]=\sigma[\sum_{k=0}^{K-1}h_{1k}S^kx]
x1=σ[z1]=σ[k=0∑K−1h1kSkx]Layer 2:
输入信号x
1
_{1}
1,感知器h2=[h
20
_{20}
20,…,h
2
,
K
−
1
_{2,K-1}
2,K−1],输出x
2
_{2}
2.
x
2
=
σ
[
z
2
]
=
σ
[
∑
k
=
0
K
−
1
h
2
k
S
k
x
1
]
x_2=\sigma[z_2]=\sigma[\sum_{k=0}^{K-1}h_{2k}S^kx_1]
x2=σ[z2]=σ[k=0∑K−1h2kSkx1]重复上述操作L次(L为GNNs的深度),最后一层的输出是
x
L
x_L
xL.
Layer
l
l
l:
x
l
=
σ
[
z
l
]
=
σ
[
∑
k
=
0
K
−
1
h
1
k
S
k
x
l
−
1
]
x_l=\sigma[z_l]=\sigma[\sum_{k=0}^{K-1}h_{1k}S^kx_{l-1}]
xl=σ[zl]=σ[k=0∑K−1h1kSkxl−1]
3.2 Observations about GNNs
GNN的组成部分:
带层数的GNNs定义为图感知器的L个递归组合。输入信号
x
x
x,即
x
0
x_0
x0,具有过滤系数
h
l
k
(
被参数化的过程
)
和图移位算子
S
h_{lk}(被参数化的过程)和图移位算子S
hlk(被参数化的过程)和图移位算子S。
用GNN学习的问题归结为寻找张量
H
∗
H^*
H∗的问题,该张量使训练集中的平均损失最小化。
移位算子
S
S
S被解释为提供给GNN的先验信息。GNN的输出是依赖于移位算子的,也可以将移位算子
S
S
S认为是输入的不可变参数。
GNN是图滤波器的变种。在GNN中,所有的混合都是通过线性变换实现的,更准确地说,它是通过图滤波器实现的。
其实CNNs和GNNs没有区别,左边其实就是移位算子
S
S
S具象邻接矩阵,与有向线图相乘得到的卷积。GNNs是CNNs的推广。
4.Fully Connected Neural Networks
CNNs是GNNs的特例。但是注意:GNNs其实是全连接神经网络的一个特例。
以下给出一个三层的FCNNs结构:
GNNs vs FCNNs
FCNNs利用的是任意线性变化,而GNNs则依赖于图滤波器。
区别:
5.Graph Filter Banks
图滤波器组在遇到多重特征时使用。图滤波器组时应用于输入信号的图滤波器的集合。
滤波器组的输出就像一本有几页的书。
引入滤波器的目的是引入多功能GNN。
6.Multiple Feature GNNs
用滤波器组来定义GNN,它在每一层处理多个特性。