fix: 4.7 图网络 latex

This commit is contained in:
camera-2018
2023-04-25 20:47:23 +08:00
parent b953a935f2
commit ef68381bd2

View File

@@ -1,6 +1,6 @@
# 图网络略述intro&GCN # 图网络略述intro&GCN
author:廖总 > author廖总
其实开始冲图神经网络也已经有一段时间了从半年前阅览《Relational inductive biases, deep learning, and graph networks》一文对图网络有了一定的了解到现在已经过去半年了。然而这半年中我一直在摸鱼就算偶尔复习图神经网络的方法也一直在复习相同的工作。如今有幸受实验室隔座的兄弟邀请参与一个科研项目。比较尴尬的是我除了自诩知晓图网络以外对实际的操作与应用一无所知。我遂写下这篇文章来昭示自己正式开始图网络的学习并且尝试记录和融汇已知的知识点不在浪费时间于重复的工作上。 其实开始冲图神经网络也已经有一段时间了从半年前阅览《Relational inductive biases, deep learning, and graph networks》一文对图网络有了一定的了解到现在已经过去半年了。然而这半年中我一直在摸鱼就算偶尔复习图神经网络的方法也一直在复习相同的工作。如今有幸受实验室隔座的兄弟邀请参与一个科研项目。比较尴尬的是我除了自诩知晓图网络以外对实际的操作与应用一无所知。我遂写下这篇文章来昭示自己正式开始图网络的学习并且尝试记录和融汇已知的知识点不在浪费时间于重复的工作上。
@@ -14,22 +14,15 @@ author:廖总
## 消息传递 ## 消息传递
那么,消息是什么呢?在大多数时候,我们将消息理解为节点(但其实在特定场合,边或者全局信息都是可以或者需要考虑的),即“实体”包含的,要传递的信息。对于一个结构相对复杂的节点而言,假设其拥有 n 个属性,我们便用一个 n 维的向量(或是其他什么) 那么,消息是什么呢?在大多数时候,我们将消息理解为节点(但其实在特定场合,边或者全局信息都是可以或者需要考虑的),即“实体”包含的,要传递的信息。对于一个结构相对复杂的节点而言,假设其拥有 n 个属性,我们便用一个 n 维的向量(或是其他什么)$\mathbf{x}$表示节点中储存的信息。然后,节点上的信息要怎么传递呢?
$\mathbf{x}$
表示节点中储存的信息。然后,节点上的信息要怎么传递呢?
答案必然是通过节点之间的连接。 答案必然是通过节点之间的连接。
在离散数学中,我们使用邻接矩阵来刻画图上所有节点之间的联系,即 Adjacency Matrix记作 在离散数学中,我们使用邻接矩阵来刻画图上所有节点之间的联系,即 Adjacency Matrix记作$\mathbf{A}$。在不考虑边权重的情况下,我们将存在节点$x_{i},x_{j}$之间的联系表示为$A_{ij}=1$,在存在权重的情况下,我们将$A_{ij}$的值记作两节点之间边的权重。值得注意的是,$\mathbf{A}$对角线上的值,即节点之间自连接的系数,在不做考虑自连接时都被记作 $0$ 。
$\mathbf{A}$。在不考虑边权重的情况下,我们将存在节点$x_{i},x_{j}$之间的联系表示为$A_{ij}=1$,在存在权重的情况下,我们将$A_{ij}$的值记作两节点之间边的权重。值得注意的是,$\mathbf{A}$对角线上的值,即节点之间自连接的系数,在不做考虑自连接时都被记作 0。
另外,我们特殊定义节点的度为该点所有连接权重之和,即$D_i=\sum_{j=0}^n A_{ij} $,使用对角矩阵$\mathbf{D}=diag(D_1,D_2,\cdots,D_n)$ 另外,我们特殊定义节点的度为该点所有连接权重之和,即$D_i=\sum_{j=0}^n A_{ij} $,使用对角矩阵$\mathbf{D}=diag(D_1,D_2,\cdots,D_n)$进行统一描述。
进行统一描述。
如此,我们便通过了两个矩阵刻画了一张图上所有节点之间的传递关系。为了方便计算,以及因为种种特性,一张图最终的传递特性,被描述成了拉普拉斯矩阵
$\mathbf{L}=\mathbf{D}-\mathbf{A}$
如此,我们便通过了两个矩阵刻画了一张图上所有节点之间的传递关系。为了方便计算,以及因为种种特性,一张图最终的传递特性,被描述成了拉普拉斯矩阵$\mathbf{L}=\mathbf{D}-\mathbf{A}$。
我们通过拉普拉斯矩阵 $L$ 来考虑图上的消息传递特性。 我们通过拉普拉斯矩阵 $L$ 来考虑图上的消息传递特性。
@@ -67,7 +60,7 @@ $$
\mathbf{L}^{sym}=\mathbf{D}^{-1}\mathbf{L}=\mathbf{I}-\mathbf{D}^{-1}\mathbf{A} \mathbf{L}^{sym}=\mathbf{D}^{-1}\mathbf{L}=\mathbf{I}-\mathbf{D}^{-1}\mathbf{A}
$$ $$
,不过我还不熟,暂时不管了 ,不过我还不熟,暂时不管了
## 图的频域表示 ## 图的频域表示
@@ -75,11 +68,10 @@ $$
为了直观地对描述信号传播的图进行直观的“卷积滤波(需要注意的是,这里的卷积就不是图像意义上的卷积了,而是信号意义的卷积。但是在实际运用中图的卷积表示的也是信号在相邻图节点上的传播,这又与图像的卷积有着异曲同工之妙,那么新的问题来了,信号卷积和图像卷积是否也存在着什么物理层面上的联系?)”我们通过特征分解,获取图的“频谱”,从这边开始,便是 Spectral Graph Convolution 的思想了。 为了直观地对描述信号传播的图进行直观的“卷积滤波(需要注意的是,这里的卷积就不是图像意义上的卷积了,而是信号意义的卷积。但是在实际运用中图的卷积表示的也是信号在相邻图节点上的传播,这又与图像的卷积有着异曲同工之妙,那么新的问题来了,信号卷积和图像卷积是否也存在着什么物理层面上的联系?)”我们通过特征分解,获取图的“频谱”,从这边开始,便是 Spectral Graph Convolution 的思想了。
我们将 L 矩阵进行特征分解,有 我们将 L 矩阵进行特征分解,有$\mathbf{L}=\mathbf{U}\boldsymbol{\Lambda}\mathbf{U}^\mathsf{T}$,其中特征值描述的是图像的频谱强度,而特征向量描述了分解的基底,即频率,对应频谱分析中的$e^{-j\omega t}$。
$\mathbf{L}=\mathbf{U}\boldsymbol{\Lambda}\mathbf{U}^\mathsf{T}$,其中特征值描述的是图像的频谱强度,而特征向量描述了分解的基底,即频率,对应频谱分析中的$e^{-j\omega t}$。 于是,我们考虑滤波和滤波器,我们设计$g\theta=diag(\theta)$,有滤波器改变了基底上信号的强度,即有$g\theta(\Lambda)$为特征值的函数。我们有$g\theta$在图$\mathbf{L}$上对输入信号$x$的卷积等于$g\theta$、$x$在频域相乘:
$g\theta\star
于是,我们考虑滤波和滤波器,我们设计$g\theta=diag(\theta)$,有滤波器改变了基底上信号的强度,即有$g\theta(\Lambda)$为特征值的函数。我们有$g\theta$在图$\mathbf{L}$上对输入信号$x$的卷积等于$g\theta$、$x$在频域相乘:$g\theta\star
x=\mathbf{U}g\theta\mathbf{U}^\mathsf{T}x x=\mathbf{U}g\theta\mathbf{U}^\mathsf{T}x
$ $
@@ -126,23 +118,31 @@ $$
,并对其中无关输入信号 $x$ 的部分进行改写 ,并对其中无关输入信号 $x$ 的部分进行改写
$$\mathbf{U}\begin{matrix}\sum_{k=0}^K $$
\mathbf{U}\begin{matrix}\sum_{k=0}^K
\beta_kT_k(\hat{\Lambda}) \beta_kT_k(\hat{\Lambda})
\mathbf{U}^\mathsf{T} \mathbf{U}^\mathsf{T}
\end{matrix}\\$$ \end{matrix}
$$
$$ $$
=\begin{matrix} \sum_{k=0}^K =\begin{matrix} \sum_{k=0}^K
\mathbf{U}\beta_k(\begin{matrix}\sum_{c=0}^k\alpha_{kc}\hat{\Lambda^k} \mathbf{U}\beta_k(\begin{matrix}\sum_{c=0}^k\alpha_{kc}\hat{\Lambda^k}
\end{matrix}\mathbf{U}^\mathsf{T}) \end{matrix}\mathbf{U}^\mathsf{T})
\end{matrix}\\ \end{matrix}
$$
$$
=\begin{matrix} \sum_{k=0}^K\beta_k(\begin{matrix}\sum_{c=0}^k\alpha_{kc}(\mathbf{U}\hat{\Lambda} =\begin{matrix} \sum_{k=0}^K\beta_k(\begin{matrix}\sum_{c=0}^k\alpha_{kc}(\mathbf{U}\hat{\Lambda}
\mathbf{U}^\mathsf{T})^k \mathbf{U}^\mathsf{T})^k
\end{matrix}) \end{matrix})
\end{matrix}\\ \end{matrix}
$$
$$
=\begin{matrix} \sum_{k=0}^K\beta_kT_k(\mathbf{U}\hat{\Lambda} =\begin{matrix} \sum_{k=0}^K\beta_kT_k(\mathbf{U}\hat{\Lambda}
\mathbf{U}^\mathsf{T}) \mathbf{U}^\mathsf{T})
\end{matrix}\\ \end{matrix}
$$
$$
=\begin{matrix} \sum_{k=0}^K\beta_kT_k(\hat{\mathbf{L}}) =\begin{matrix} \sum_{k=0}^K\beta_kT_k(\hat{\mathbf{L}})
\end{matrix} \end{matrix}
$$ $$
@@ -212,7 +212,7 @@ $$
\end{matrix} \end{matrix}
$$ $$
作为传播的预处理部分,由此得到了 GCN 的完整数学表示,有着 作为传播的预处理部分,由此得到了 GCN 的完整数学表示
### 损失函数 ### 损失函数