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