设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

图卷积网络到底怎么做,这是一份极简的Numpy实现(2)

发布时间:2019-02-21 13:23 所属栏目:19 来源:机器之心编译
导读:每个节点的表征(每一行)现在是其相邻节点特征的和!换句话说,图卷积层将每个节点表示为其相邻节点的聚合。大家可以自己动手验证这个计算过程。请注意,在这种情况下,如果存在从 v 到 n 的边,则节点 n 是节点 v 的

每个节点的表征(每一行)现在是其相邻节点特征的和!换句话说,图卷积层将每个节点表示为其相邻节点的聚合。大家可以自己动手验证这个计算过程。请注意,在这种情况下,如果存在从 v 到 n 的边,则节点 n 是节点 v 的邻居。

问题

你可能已经发现了其中的问题:

  • 节点的聚合表征不包含它自己的特征!该表征是相邻节点的特征聚合,因此只有具有自环(self-loop)的节点才会在该聚合中包含自己的特征 [1]。
  • 度大的节点在其特征表征中将具有较大的值,度小的节点将具有较小的值。这可能会导致梯度消失或梯度爆炸 [1, 2],也会影响随机梯度下降算法(随机梯度下降算法通常被用于训练这类网络,且对每个输入特征的规模(或值的范围)都很敏感)。

接下来,本文将分别对这些问题展开讨论。

1. 增加自环

为了解决第一个问题,我们可以直接为每个节点添加一个自环 [1, 2]。具体而言,这可以通过在应用传播规则之前将邻接矩阵 A 与单位矩阵 I 相加来实现。

  1. In [4]: I = np.matrix(np.eye(A.shape[0])) 
  2.         I 
  3. Out[4]: matrix([ 
  4.             [1., 0., 0., 0.], 
  5.             [0., 1., 0., 0.], 
  6.             [0., 0., 1., 0.], 
  7.             [0., 0., 0., 1.] 
  8.         ]) 
  9. In [8]: AA_hat = A + I 
  10.         A_hat * X 
  11. Out[8]: matrix([ 
  12.             [ 1., -1.], 
  13.             [ 6., -6.], 
  14.             [ 3., -3.], 
  15.             [ 5., -5.]]) 

现在,由于每个节点都是自己的邻居,每个节点在对相邻节点的特征求和过程中也会囊括自己的特征!

2. 对特征表征进行归一化处理

通过将邻接矩阵 A 与度矩阵 D 的逆相乘,对其进行变换,从而通过节点的度对特征表征进行归一化。因此,我们简化后的传播规则如下:

  1. f(X, A) = D⁻¹AX 

让我们看看发生了什么。我们首先计算出节点的度矩阵。

  1. In [9]: D = np.array(np.sum(A, axis=0))[0] 
  2.         D = np.matrix(np.diag(D)) 
  3.         D 
  4. Out[9]: matrix([ 
  5.             [1., 0., 0., 0.], 
  6.             [0., 2., 0., 0.], 
  7.             [0., 0., 2., 0.], 
  8.             [0., 0., 0., 1.] 
  9.         ]) 

在应用传播规则之前,不妨看看我们对邻接矩阵进行变换后发生了什么。

变换之前

  1. A = np.matrix([ 
  2.     [0, 1, 0, 0], 
  3.     [0, 0, 1, 1],  
  4.     [0, 1, 0, 0], 
  5.     [1, 0, 1, 0]], 
  6.     dtype=float 

变换之后

  1. In [10]: D**-1 * A 
  2. Out[10]: matrix([ 
  3.              [0. , 1. , 0. , 0. ], 
  4.              [0. , 0. , 0.5, 0.5], 
  5.              [0. , 0.5, 0. , 0. ], 
  6.              [0.5, 0. , 0.5, 0. ] 
  7. ]) 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读